Решить нелинейное уравнение и построить график - VB

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

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

Доброго времени суток. Есть такое задание: Решить нелинейное уравнение и построить график Ln(x)-x+1.8=0 [2;3]. VB знаю не очень хорошо. Мат.Решение:
Спойлер
Нелинейное уравнение решил
Листинг программы
  1. Dim x0 As Double, x1 As Double
  2. Private Sub Command1_Click()
  3. Dim x0 As Double, x1 As Double, a As Double, b As Double, e As Double
  4. Dim iteraz As Integer, s As String, s1 As String
  5. Me.Height = 7800
  6. x1 = InputBox("Введите приближённое(1) значение X=", , 2)
  7. e = InputBox("Введите точность(0.0001) e=", , 0.0001)
  8. iteraz = 0
  9. Do
  10. iteraz = iteraz + 1
  11. x0 = x1
  12. x1 = fun(x0)
  13. Picture1.Print Format(x0, "##.000")
  14. Picture2.Print Format(x1, "##.000")
  15. Loop Until (Abs(x1 - x0) <= e)
  16. s = s & "Вычисленное значение корня:" & x1 & vbCrLf
  17. s = s & "Число итераций:" & iteraz
  18. Picture3.Print Format(s, "##.000")
  19. End Sub
  20. Private Function fun(X As Double) As Double
  21. fun = Log(X) + 1.8
  22. End Function
Объясните/помогите: как мне построить график с выводом результата итерации График Excele:

Решение задачи: «Решить нелинейное уравнение и построить график»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Private Sub Command1_Click()
  4.      Dim x As Double, x0 As Double, x1 As Double, a As Double, b As Double, e As Double
  5.      Dim iteraz As Integer, s As String, s1 As String, i As Integer
  6.      Me.Height = 7800
  7.      x1 = InputBox("Введите приближённое(1) значение X=", , 2)
  8.      e = InputBox("Введите точность(0.0001) e=", , 0.0001)
  9.      Picture1.Cls: Picture2.Cls: Picture3.Cls: Picture4.Cls
  10.      Picture4.AutoRedraw = True: Picture4.FillStyle = 0
  11.      iteraz = 0: x = x1
  12.      Do
  13.           iteraz = iteraz + 1
  14.           x0 = x1
  15.           x1 = fun(x0)
  16.           Picture1.Print Format(x0, "##.00000")
  17.           Picture2.Print Format(x1, "##.00000")
  18.      Loop Until (Abs(x1 - x0) <= e)
  19.      
  20.      Picture4.DrawStyle = 0: Picture4.DrawWidth = 2
  21.      Picture4.Scale (-1, x + 2)-(iteraz + 1, -1)
  22.      Picture4.Line (-1, 0)-(iteraz + 1, 0), vbBlue
  23.      Picture4.Line (0, -1)-(0, x + 2), vbBlue
  24.      
  25.      For i = 0 To iteraz
  26.           Picture4.DrawStyle = 0: Picture4.DrawWidth = 3
  27.           Picture4.Line (i, -(x / 100))-(i, (x / 100)), 0
  28.           Picture4.DrawStyle = 2: Picture4.DrawWidth = 1
  29.           Picture4.Line (i, -1)-(i, x + 2), 0
  30.           Picture4.CurrentY = -0.1: Picture4.CurrentX = i: Picture4.Print i
  31.      Next i
  32.      
  33.      For i = 1 To x + 2
  34.            Picture4.DrawStyle = 0: Picture4.DrawWidth = 3
  35.            Picture4.Line (-(iteraz / 100), i)-((iteraz / 100), i), 0
  36.            Picture4.DrawStyle = 2: Picture4.DrawWidth = 1
  37.            Picture4.Line (-1, i)-(iteraz + 2, i), 0
  38.            Picture4.CurrentX = -0.5: Picture4.CurrentY = i: Picture4.Print i
  39.      Next i
  40.      
  41.      Picture4.DrawStyle = 0: Picture4.DrawWidth = 3
  42.      For i = 1 To iteraz
  43.            x0 = x: x = fun(x0)
  44.            Picture4.Line (i - 1, x0)-(i, x), vbRed
  45.            Picture4.Circle (i, x), 0.1, vbBlue
  46.            Picture4.Print Round(x, 3)
  47.      Next i
  48.      
  49.      s = s & "Вычисленное значение корня:" & x1 & vbCrLf
  50.      s = s & "Число итераций:" & iteraz
  51.      Picture3.Print s
  52. End Sub
  53.  
  54. Private Function fun(x As Double) As Double
  55.     fun = Log(x) + 1.8
  56. End Function

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


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

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

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

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

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

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