Система нелинейных уравнений, метод Ньютона - VB

Узнай цену своей работы

Формулировка задачи:

Решить систему нелинейных уравнений методом Ньютона корни найти с точностью ε=0,001 M (1;1)

Решение задачи: «Система нелинейных уравнений, метод Ньютона»

textual
Листинг программы
  1. Sub Kramer2(A() As Double, B() As Double, R() As Double)
  2.  
  3.     Det# = A(1, 1) * A(2, 2) - A(2, 1) * A(1, 2)
  4.     Det1# = B(1) * A(2, 2) - B(2) * A(1, 2)
  5.     Det2# = A(1, 1) * B(2) - A(2, 1) * B(1)
  6.  
  7.     R(1) = Det1# / Det#
  8.     R(2) = Det2# / Det#
  9.  
  10. End Sub
  11.  
  12. Function f1(x As Double, y As Double) As Double
  13.          f1 = Exp(x) - Exp(y) - 1
  14. End Function
  15.  
  16. Function Dxf1(x As Double) As Double
  17.          Dxf1 = Exp(x) - Exp(y) - 1
  18. End Function
  19.  
  20. Function Dyf1(y As Double) As Double
  21.          Dyf1 = -Exp(y)
  22. End Function
  23.  
  24. Function f2(x As Double, y As Double) As Double
  25.          f2 = x ^ 3 + y ^ 3 - 1
  26. End Function
  27.  
  28. Function DxF2(x As Double) As Double
  29.          DxF2 = 3 * x ^ 2
  30. End Function
  31.  
  32. Function DyF2(x As Double) As Double
  33.          DyF2 = 3 * y ^ 2
  34. End Function
  35.  
  36.  
  37. Sub Newton()
  38.  
  39. Dim Jac(1 To 2, 1 To 2) As Double
  40. Dim B(1 To 2) As Double
  41. Dim R(1 To 2) As Double
  42.  
  43.     x1# = 1
  44.     x2# = 1
  45.    
  46.     Do
  47.    
  48.        Debug.Print x1#; " "; x2#
  49.  
  50.        Jac(1, 1) = Dxf1(x1#)
  51.        Jac(1, 2) = Dyf1(x2#)
  52.        Jac(2, 1) = DxF2(x1#)
  53.        Jac(2, 2) = DyF2(x2#)
  54.    
  55.        B(1) = -f1(x1#, x2#)
  56.        B(2) = -f2(x1#, x2#)
  57.    
  58.        Kramer2 Jac(), B(), R()
  59.    
  60.        If Sqr(R(1) ^ 2 + R(2) ^ 2) < 0.0000001 Then Exit Do
  61.    
  62.        x1# = x1# + R(1)
  63.        x2# = x2# + R(2)
  64.    
  65.     Loop
  66.    
  67.     '::: Контрольная печать
  68.  
  69.     Debug.Print f1(x1#, x2#)
  70.     Debug.Print f2(x1#, x2#)
  71.    
  72.  
  73. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы