- •Численные методы решения нелинейных уравнений
- •Решение слау (систем линейных алгебраических уравнений)
- •Решение слау (систем линейных алгебраических уравнений)
- •Численное интегрирование
- •Решение Задачи Коши для дифференциального уравнения первого порядка.
- •Приближение функции по методу наименьших квадратов (мнк)
- •Интерполяция
- •Интерполяционный полином Лагранжа
- •Задачи линейного программирования (злп)
Численное интегрирование
Вычислить
интеграл
по квадратурным
формулам прямоугольников, трапеций,
парабол. n=6.
Вычисляем интеграл по формулам средних прямоугольников, трапеций, парабол.
a |
0 |
b |
3 |
n |
6 |
|
|
h |
0,5 |
Ср. прям |
39,23419 |
Трапеций |
53,68516 |
Симпсона |
52,63814 |
Программа
Public Function F(x)
F = 7 * x ^ 2 - 3 * Sqr(x)
End Function
Public Sub Integr()
a = Cells(1, 2)
b = Cells(2, 2)
n = Cells(4, 2)
s1 = 0: s2 = 0: s3 = 0
h = (b - a) / n
Cells(5, 2) = h
x = a
Do While x < b
s1 = s1 + F(x) * h
x = x + h
Loop
Cells(6, 2) = s1
s2 = (F(a) + F(b)) / 2
x = a + h
Do While x < b
s2 = s2 + F(x)
x = x + h
Loop
s2 = s2 * h
Cells(7, 2) = s2
h = (b - a) / 2 / n
s3 = 0
x = a
Do While x < b
s3 = s3 + h * (F(x) + 4 * F(x + h) + F(x + 2 * h)) / 3
x = x + 2 * h
Loop
Cells(8, 2) = s3
End Sub
Решение Задачи Коши для дифференциального уравнения первого порядка.
Решить задачу Коши методами Эйлера, модифицированным методом и методом Рунге-Кутты на заданном отрезке:
.
Программы
Public Function f(x, y)
f = y - 2 * x * x + 3
End Function
Public Sub Prog1() // Метод Эйлера
k = 0
x = 0
h = 0.2
y = 4
Do While x <= 1
y = y + h * f(x, y)
Cells(2 + k, 1) = k
Cells(2 + k, 2) = x
Cells(2 + k, 3) = y
k = k + 1
x = x + h
Loop
End Sub
Public Sub prog2() // Модифицированный метод Эйлера
k = 0
x = 0
h = 0.2
y = 4
Do While x <= 1
y1 = y + h * f(x, y)
y = y + h * (f(x, y) + f(x + h, y1)) / 2
Cells(2 + k, 5) = x
Cells(2 + k, 6) = y
k = k + 1
x = x + h
Loop
End Sub
Public Sub prog3() //Метод Рунге-Кутта
k = 0
x = 0
h = 0.2
y = 4
Do While x <= 1
k0 = h * f(x, y)
k1 = h * f(x + h / 2, y + k0 / 2)
k2 = h * f(x + h / 2, y + k1 / 2)
k3 = h * f(x + h, y + k2)
y = y + (k0 + 2 * k1 + 2 * k2 + k3) / 6
Cells(2 + k, 8) = x
Cells(2 + k, 9) = y
k = k + 1
x = x + h
Loop
End Sub
Результат работы программы:
k |
x |
y |
|
x |
y |
|
x |
y |
0 |
0 |
5,4 |
|
0 |
5,532 |
|
0 |
5,544187 |
1 |
0,2 |
7,064 |
|
0,2 |
7,36744 |
|
0,2 |
7,395424 |
2 |
0,4 |
9,0128 |
|
0,4 |
9,537877 |
|
0,4 |
9,58627 |
3 |
0,6 |
11,27136 |
|
0,6 |
12,08181 |
|
0,6 |
12,15649 |
4 |
0,8 |
13,86963 |
|
0,8 |
15,04621 |
|
0,8 |
15,15465 |
5 |
1 |
16,84356 |
|
1 |
18,48837 |
|
1 |
18,64008 |
Приближение функции по методу наименьших квадратов (мнк)
Приближение функции по методу наименьших квадратов (МНК).
Методом наименьших квадратов найти зависимость между x и y:
х |
-1 |
0 |
1 |
2 |
y |
-6 |
-1 |
4 |
9 |
А) Подобрать аппроксимирующий полином первой степени y=ax+b.
i |
xi |
yi |
xi2 |
xiyi |
1 |
-1 |
-6 |
1 |
6 |
2 |
0 |
-1 |
0 |
0 |
3 |
1 |
4 |
1 |
4 |
4 |
2 |
9 |
4 |
18 |
|
2 |
6 |
6 |
28 |
Ответ: y=ax+b=5x-1
Б) Подобрать аппроксимирующий полином второй степени y=ax2+bx+c.
i |
xi |
yi |
xi2 |
xi3 |
xi4 |
xiyi |
xi2yi |
1 |
-1 |
-6 |
1 |
-1 |
1 |
6 |
-6 |
2 |
0 |
-1 |
0 |
0 |
0 |
0 |
0 |
3 |
1 |
4 |
1 |
1 |
1 |
4 |
4 |
4 |
2 |
9 |
4 |
8 |
16 |
18 |
36 |
|
2 |
6 |
6 |
8 |
18 |
28 |
34 |
Эту систему решаем методом Гаусса. Получаем:
Ответ: y=ax2+bx+c=5x-1
