Метод хорд, Ньютона и половиного деления - VB

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

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

кто в математике силен? Нужно решить уравнение тремя способами. НА тестовом примере (а=0,001 и b=10) все более или менее работает как надо. Начинаешь пробовать другие варианты, вылазит всякое непотребство. Метод хорд - выдает практически всегда - один и тот же результат. Метод касательных - любит выкидывать переполнение. В чем я дурак?
Листинг программы
  1. Dim a, b, c, c1 As Single
  2. Dim n As Integer
  3. Private Function F(ByVal x As Double) As Double
  4. F = x - 3 - Sin(3 * x)
  5. End Function
  6. Private Function F1(ByVal x As Double) As Double
  7. F1 = 9 * Sin(3 * x)
  8. End Function
  9. Private Sub Command1_Click()
  10. 'metod polovinogo deleniya
  11. a = Val(Text1.Text)
  12. b = Val(Text2.Text)
  13. e = 0.000001
  14. Do While Abs(b - a) > e
  15. c = F(a)
  16. c1 = F((a + b) / 2)
  17. If (c > 0 And c1 > 0) Or (c < 0 And c1 < 0) Then
  18. a = a / 2 + b / 2
  19. Else
  20. b = a / 2 + b / 2
  21. End If
  22. Loop
  23. Text3.Text = Round(a / 2 + b / 2, 5)
  24. End Sub
  25. Private Sub Command2_Click()
  26. 'metod newton
  27. a = Val(Text1.Text)
  28. b = Val(Text2.Text)
  29. n = 1
  30. Do While F(c) * F(c1) > 0
  31. c = a + 3 * (b - a) / n
  32. c1 = a + (3 + 1) * (b - a) / n
  33. n = n + 1
  34. Loop
  35. If F(c) * F1(c) < 0 Then Text3.Text = Round(c1, 5) Else Text3.Text = Round(c, 5)
  36. End Sub
  37. Private Sub Command3_Click()
  38. 'metod hord
  39. a = Val(Text1.Text)
  40. b = Val(Text2.Text)
  41. e = 0.000001
  42. Do While Abs(b - a) > e
  43. c = b - F(b) * (b - a) / (F(b) - F(a))
  44. a = b
  45. b = c
  46. Loop
  47. Text3.Text = Round(b, 5)
  48. End Sub

Решение задачи: «Метод хорд, Ньютона и половиного деления»

textual
Листинг программы
  1. Private Function F1(ByVal x As Double) As Double
  2.     F1 = 9 * Sin(3 * x)
  3. End Function

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


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

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

9   голосов , оценка 4.222 из 5

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

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

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