Система нелинейных уравнений, метод Ньютона - VB
Формулировка задачи:
Решить систему нелинейных уравнений методом Ньютона корни найти с точностью ε=0,001
M (1;1)
Решение задачи: «Система нелинейных уравнений, метод Ньютона»
textual
Листинг программы
Sub Kramer2(A() As Double, B() As Double, R() As Double) Det# = A(1, 1) * A(2, 2) - A(2, 1) * A(1, 2) Det1# = B(1) * A(2, 2) - B(2) * A(1, 2) Det2# = A(1, 1) * B(2) - A(2, 1) * B(1) R(1) = Det1# / Det# R(2) = Det2# / Det# End Sub Function f1(x As Double, y As Double) As Double f1 = Exp(x) - Exp(y) - 1 End Function Function Dxf1(x As Double) As Double Dxf1 = Exp(x) - Exp(y) - 1 End Function Function Dyf1(y As Double) As Double Dyf1 = -Exp(y) End Function Function f2(x As Double, y As Double) As Double f2 = x ^ 3 + y ^ 3 - 1 End Function Function DxF2(x As Double) As Double DxF2 = 3 * x ^ 2 End Function Function DyF2(x As Double) As Double DyF2 = 3 * y ^ 2 End Function Sub Newton() Dim Jac(1 To 2, 1 To 2) As Double Dim B(1 To 2) As Double Dim R(1 To 2) As Double x1# = 1 x2# = 1 Do Debug.Print x1#; " "; x2# Jac(1, 1) = Dxf1(x1#) Jac(1, 2) = Dyf1(x2#) Jac(2, 1) = DxF2(x1#) Jac(2, 2) = DyF2(x2#) B(1) = -f1(x1#, x2#) B(2) = -f2(x1#, x2#) Kramer2 Jac(), B(), R() If Sqr(R(1) ^ 2 + R(2) ^ 2) < 0.0000001 Then Exit Do x1# = x1# + R(1) x2# = x2# + R(2) Loop '::: Контрольная печать Debug.Print f1(x1#, x2#) Debug.Print f2(x1#, x2#) End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д