- •Численные методы решения нелинейных уравнений
- •Решение слау (систем линейных алгебраических уравнений)
- •Решение слау (систем линейных алгебраических уравнений)
- •Численное интегрирование
- •Решение Задачи Коши для дифференциального уравнения первого порядка.
- •Приближение функции по методу наименьших квадратов (мнк)
- •Интерполяция
- •Интерполяционный полином Лагранжа
- •Задачи линейного программирования (злп)
Численные методы решения нелинейных уравнений
Определить корни уравнения графически и уточнить один из них итерационными методами.
,
.
График функции на отрезке [0.2, 1]. Как видно из графика, решение около 0,45.
Метод деления отрезка пополам
Исходные данные:
a |
b |
e |
x |
f(x) |
0,2 |
1 |
0,01 |
0,46875 |
0,023893 |
Программа:
Public Function F(x)
F = (x + 1) ^ 2 - 1 / x
End Function
Public Sub Popolam()
a = Cells(2, 1)
b = Cells(2, 2)
e = Cells(2, 3)
1 x = (a + b) / 2
If F(a) * F(x) < 0 Then b = x Else a = x
If (b - a) >= e Then GoTo 1
Cells(2, 4) = x
Cells(2, 5) = F(x)
End Sub
Метод Ньютона (метод касательных)
Проверяем
выполнение условия сходимости на концах
заданного интервала:
- выполняется. За начальное приближение
корня можно принять
.
Исходные данные:
x0 |
e |
x |
F(x) |
0,2 |
0,01 |
0,46557 |
-1,02E-05 |
Программа:
Public Function F(x)
F = (x + 1) ^ 2 - 1 / x
End Function
Public Function F1(x)
F1 = 2 * (x + 1) + 1 / x / x
End Function
Public Sub Nyton()
x = Cells(2, 1)
e = Cells(2, 2)
1 xk = x - F(x) / F1(x)
If Abs(xk - x) >= e Then x = xk: GoTo 1
Cells(2, 3) = xk
Cells(2, 4) = F(xk)
End Sub
Метод простой итерации
Определяем значение M:
Исходные данные:
x0 |
e |
M |
x |
F(x) |
1 |
0,001 |
6 |
0,465699 |
0,000963 |
Программа:
Function F(x)
F = (x + 1) ^ 2 - 1 / x
End Function
Sub Iter()
x = Cells(2, 1)
e = Cells(2, 2)
M = Cells(2, 3)
1 xk = x - F(x) / M
If Abs(xk - x) >= e Then x = xk: GoTo 1
Cells(2, 4) = xk
Cells(2, 5) = F(xk)
End Sub
Решение слау (систем линейных алгебраических уравнений)
Решить систему уравнений методом Гаусса:
Решение приведено в другом документе (в приложении).
Решение слау (систем линейных алгебраических уравнений)
Решить систему уравнений методом прогонки (или итерационным методом с точностью 0,01)
Метод прогонки
Исходные данные:
a |
b |
c |
d |
x |
r |
0 |
3 |
1 |
5 |
1,344086 |
-8,9E-16 |
1 |
4 |
-1 |
3 |
0,967742 |
-4,4E-16 |
-1 |
5 |
1 |
12 |
2,215054 |
1,78E-15 |
1 |
2 |
0 |
6 |
1,892473 |
0 |
Программа:
Public Sub Progonka()
Const n = 4
Dim a(n), b(n), c(n), d(n), u(n), v(n), x(n + 1), r(n)
For i = 1 To n
a(i) = Cells(i + 1, 1)
b(i) = Cells(i + 1, 2)
c(i) = Cells(i + 1, 3)
d(i) = Cells(i + 1, 4)
u(i) = -c(i) / (a(i) * u(i - 1) + b(i))
v(i) = (d(i) - a(i) * v(i - 1)) / (a(i) * u(i - 1) + b(i))
Next i
For i = n To 1 Step -1
x(i) = u(i) * x(i + 1) + v(i)
Next i
For i = 1 To n
r(i) = d(i) - a(i) * x(i - 1) - b(i) * x(i) - c(i) * x(i + 1)
Cells(i + 1, 5) = x(i)
Cells(i + 1, 6) = r(i)
Next i
End Sub
Решить систему уравнений итерационным методом с точностью 0,01
Метод Якоби
x1 |
x2 |
x3 |
x4 |
0 |
0 |
0 |
0 |
1,666667 |
0,75 |
2,4 |
3 |
1,416667 |
0,933333 |
1,95 |
1,8 |
1,355556 |
0,883333 |
2,226667 |
2,025 |
1,372222 |
0,967778 |
2,171667 |
1,886667 |
1,344074 |
0,949861 |
2,216222 |
1,914167 |
1,350046 |
0,968037 |
2,207139 |
1,891889 |
1,343988 |
0,964273 |
2,21523 |
1,896431 |
1,345242 |
0,96781 |
2,213569 |
1,892385 |
1,344063 |
0,967082 |
2,215085 |
1,893216 |
Программа
Public Sub Prog2()
Dim X1(10), X2(10), X3(10), X4(10)
X1(1) = Cells(2, 1)
X2(1) = Cells(2, 2)
X3(1) = Cells(2, 3)
X4(1) = Cells(2, 4)
For i = 2 To 10
X1(i) = (5 - X2(i - 1)) / 3: Cells(i + 1, 1) = X1(i)
X2(i) = (3 - X1(i - 1) + X3(i - 1)) / 4: Cells(i + 1, 2) = X2(i)
X3(i) = (12 + X2(i - 1) - X4(i - 1)) / 5: Cells(i + 1, 3) = X3(i)
X4(i) = (6 - X3(i - 1)) / 2: Cells(i + 1, 4) = X4(i)
Next i
End Sub
Метод Зейделя
x1 |
x2 |
x3 |
x4 |
0 |
0 |
0 |
0 |
1,666667 |
0,333333 |
2,466667 |
1,766667 |
1,555556 |
0,977778 |
2,242222 |
1,878889 |
1,340741 |
0,97537 |
2,219296 |
1,890352 |
1,341543 |
0,969438 |
2,215817 |
1,892091 |
1,343521 |
0,968074 |
2,215197 |
1,892402 |
1,343975 |
0,967805 |
2,215081 |
1,89246 |
1,344065 |
0,967754 |
2,215059 |
1,892471 |
1,344082 |
0,967744 |
2,215055 |
1,892473 |
1,344085 |
0,967742 |
2,215054 |
1,892473 |
Программа
Public Sub Prog3()
Dim X1(10), X2(10), X3(10), X4(10)
X1(1) = Cells(2, 1)
X2(1) = Cells(2, 2)
X3(1) = Cells(2, 3)
X4(1) = Cells(2, 4)
For i = 2 To 10
X1(i) = (5 - X2(i - 1)) / 3: Cells(i + 1, 1) = X1(i)
X2(i) = (3 - X1(i - 1) + X3(i - 1)) / 4: Cells(i + 1, 2) = X2(i)
X3(i) = (12 + X2(i - 1) - X4(i - 1)) / 5: Cells(i + 1, 3) = X3(i)
X4(i) = (6 - X3(i - 1)) / 2: Cells(i + 1, 4) = X4(i)
Next i
End Sub
