Как считать интеграл и сохранять его в "таблицу"? - Visual Basic .NET

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

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

Ситуация такая: есть функция рисования графиков на оси координат, есть функция подсчета интеграла (код прикреплен). У нас есть t(можно считать как x) от 0 до 2*пи с шагом 0,1. Есть w1 = 2*пи/T, T=Пи, и есть k = от 0 до 60 (это максимум). Нужно посчитать интеграл при k = 1, t раз(формула будет прикреплена). После чего нужно как - то построить график при первом k, при втором k и т.д. (там будет синусоида). Как это сделать? И в конце концов нам нужно будет выполнить одно выражение (формула тоже прикреплена). Кто может помочь? Я не могу понять как это реализовать и как потом выводить эти коэффициенты на экран и графики. Буду рад любым советам и ответам!
Листинг программы
  1. Public Class Form1
  2. Private xmin, xmax, ymin, ymax, w, h As Integer
  3. Private bmp As Bitmap
  4. Private g As Graphics
  5. Private pnAxis, pnGraphics As Pen
  6. Private pnt As List(Of PointF), pp As PointF
  7. Private isDraw As Boolean
  8. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  9. xmin = -7 : xmax = 7 : ymin = -2 : ymax = 2
  10. w = PictureBox1.Width
  11. h = PictureBox1.Height
  12. bmp = New Bitmap(w, h, PictureBox1.CreateGraphics())
  13. PictureBox1.Enabled = False
  14. pnAxis = New Pen(Brushes.Blue, -1)
  15. pnGraphics = New Pen(Brushes.Red, 2)
  16. Button1.Enabled = False
  17. Label2.Text = "min = " & xmin.ToString
  18. Label3.Text = "max = " & xmax.ToString
  19. Label5.Text = "min = " & ymin.ToString
  20. Label4.Text = "max = " & ymax.ToString
  21. Label1.Text = "X"
  22. Label6.Text = "Y"
  23. Label7.Text = "Интегралл"
  24. Label8.Text = ""
  25. End Sub
  26. Private Sub CreateGraphics_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  27. PictureBox1.Enabled = True
  28. gettingStartedCanvas()
  29. Button1.Enabled = True
  30. Label8.Text = ""
  31. End Sub
  32. Private Sub GetIntegral_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  33. Dim kx As Double = w / 2 / xmax
  34. Dim ky As Double = h / 2 / ymax
  35. Dim p As PointF
  36. For i = 0 To pnt.Count - 1
  37. p = pnt(i)
  38. p.X -= w / 2
  39. p.Y -= h / 2
  40. p.Y = -p.Y
  41. p.X /= kx
  42. p.Y /= ky
  43. pnt(i) = p
  44. Next
  45. 'вычисляем приближенно по методу трапеций
  46. Dim sum As Double = 0.0
  47. For i = 1 To pnt.Count - 1
  48. sum += (pnt(i - 1).Y + pnt(i).Y) / 2 * (pnt(i).X - pnt(i - 1).X)
  49. Next
  50. Label8.Text = sum.ToString
  51. Button1.Enabled = False
  52. PictureBox1.Enabled = False
  53. End Sub
  54. Private Sub gettingStartedCanvas()
  55. g = Graphics.FromImage(bmp)
  56. g.Clear(PictureBox1.BackColor)
  57. g.DrawLine(pnAxis, New Point(w / 2, 0), New Point(w / 2, h))
  58. g.DrawLine(pnAxis, New Point(0, h / 2), New Point(w, h / 2))
  59. PictureBox1.Image = bmp
  60. g.Dispose()
  61. End Sub
  62. Private Sub PictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
  63. Dim x As Integer = e.Location.X
  64. Dim y As Integer = e.Location.Y
  65. If x <> 0 Then x = 0
  66. pnt = New List(Of PointF)
  67. pp = New PointF(x, y)
  68. pnt.Add(pp)
  69. isDraw = True
  70. g = Graphics.FromImage(bmp)
  71. End Sub
  72. Private Sub PictureBox1_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
  73. If Not isDraw Then Exit Sub
  74. Dim x As Integer = e.Location.X
  75. Dim y As Integer = e.Location.Y
  76. If x <> w Then x = w
  77. pnt.Add(New PointF(x, y))
  78. g.DrawLine(pnGraphics, pp, pnt(pnt.Count - 1))
  79. isDraw = False
  80. g.Dispose()
  81. PictureBox1.Image = bmp
  82. End Sub
  83. Private Sub PictureBox1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
  84. If isDraw Then
  85. Dim x As Integer = e.Location.X
  86. Dim y As Integer = e.Location.Y
  87. If x <= pp.X Then Exit Sub
  88. Dim p As PointF = New PointF(x, y)
  89. g.DrawLine(pnGraphics, pp, p)
  90. pnt.Add(p)
  91. pp = p
  92. PictureBox1.Image = bmp
  93. End If
  94. End Sub
  95. End Class

Решение задачи: «Как считать интеграл и сохранять его в "таблицу"?»

textual
Листинг программы
  1. For i = 0 To nn - 1
  2.             x(i) = pnt(ii(i)).X
  3.             y(i) = pnt(ii(i)).Y
  4.         Next

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


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

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

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

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

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

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