Решение уравнения несколькими способами - VB

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

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

решить уравнение sinx + x - 1 = 0 методами половинного деления, методом хорда, методом касательных(Ньютона) и методом итераций

Решение задачи: «Решение уравнения несколькими способами»

textual
Листинг программы
  1. Function F(x As Double) As Double
  2.          F = Sin(x) + x - 1
  3. End Function
  4.  
  5. Function DF(x As Double) As Double
  6.          DF = Cos(x) + 1
  7. End Function
  8.  
  9. Function Fi(x As Double) As Double
  10.          Fi = 1 - Sin(x)
  11. End Function
  12.  
  13. Function hord(ByVal a#, ByVal b#, ByVal eps#)
  14. Dim x1#, x2#, k%
  15. eps = 10 ^ (-eps)
  16. x2 = a
  17. k = 1
  18.  Do
  19.   x1 = x2
  20.   x2 = x1 - (x1 - b) * (F(x1) / (F(x1) - F(b)))
  21.   k = k + 1
  22.  Loop While (Abs(x2 - x1) > eps)
  23. hord = x2 & "  k=" & k
  24. End Function
  25.  
  26. Function N(ByVal a#, ByVal b#, ByVal eps#)
  27. Dim x1#, x2#, k%
  28. eps = 10 ^ (-eps)
  29. x2 = (b + a) / 2
  30.  k = 1
  31.  Do
  32.   x1 = x2
  33.   x2 = x1 - (F(x1) / DF(x1))
  34.   k = k + 1
  35.  Loop While (Abs(x2 - x1) > 2 * eps)
  36. N = (x1 + x2) / 2 & "  k=" & k + 1
  37. End Function
  38.  
  39. Function bs(ByVal a#, ByVal b#, ByVal eps#)
  40. Dim c#, k%
  41. eps = 10 ^ (-eps)
  42. k = 0
  43. While Abs((b - a) / 2) >= eps
  44. c = (a + b) / 2
  45. If Sgn(F(a)) <> Sgn(F(c)) Then b = c Else a = c
  46. k = k + 1
  47. Wend
  48. bs = c & "  k=" & k + 1
  49. End Function
  50.  
  51. Function Iter(ByVal a#, ByVal b#, ByVal eps#)
  52. Dim x1#, x2#, k%
  53. eps = 10 ^ (-eps)
  54. k = 0
  55.     x2 = a
  56.     Do
  57.         x1 = x2
  58.         x2 = Fi(x1)
  59.         k = k + 1
  60.     Loop While Abs(x1 - x2) > eps
  61. Iter = x2 & "  k=" & k + 1
  62. End Function
  63.  
  64. Private Sub Command1_Click()
  65. Dim a#, b#, e#
  66. a = 0: b = 1: e = 15
  67. MsgBox "N:" & vbTab & N(a, b, e) & vbLf & _
  68. "hord:" & vbTab & hord(a, b, e) & vbLf & _
  69. "bs:" & vbTab & bs(a, b, e) & vbLf & _
  70. "Iter:" & vbTab & Iter(a, b, e)
  71. End Sub

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


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

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

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

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

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

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