Решение системы диффуров - VB

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

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

Доброго времени суток! Я не сильно опытный пользователь VB6, задача выполнения дипломного проекта именно в нем создала необходимость изучить его практически с нуля. В ходе выполнения диплома возникла необходимость написать прогу, решающую дифур неким методом Рунге-Кутта в VB и я написал, чему несказанно рад)) Но теперь возникла необходимость решить систему из 2х дифуров с 3мя неизвестными(желательно этим же методом), с чем как оказалось не так просто справиться! Может кто-то из людей, хоро сведующих в математике и в VB одновременно поможет мне в моем начинании? Буду крайне признателен! вот текст моей проги, решающей дифур:
Листинг программы
  1. Dim x() As Single
  2. Dim y() As Single
  3. Dim g() As Single
  4. Dim T() As Single
  5. Private n, i As Integer
  6. Private xk, x0, kx, ky As Single
  7. Private k, k1, k2, k3, k4 As Single
  8. Private h, max, min, y0 As Single
  9. Private shel As Single ' øèðèГ*Г* ùåëè ГЄГ*ìåðû
  10. Private Hsum As Single 'Г*Г*ïðÿæåГ*Г*îñòü ïîëÿ ñóììГ*Г°Г*Г*Гї
  11. Private aa, bb, hh As Single 'äëèГ*Г* øèðèГ*Г* âûñîòГ* Г*Г*ГЄГ«Г*äêè
  12. Private dd As Single 'äèГ*ìåòð äóãè
  13. Private Vk As Single 'ñêîðîñòü äâèæåГ*ГЁГї ГЄГ®Г*ГІГ*êòîâ
  14. Private alpha, beta, epselo, gamma As Single 'êîýôôèöèåГ*ГІГ», Г§Г*ГўГЁГ±ГїГ№ГЁГҐ îò Г¬Г*òåðèГ*Г«Г* ГЄГ®Г*ГІ.Г*Г*ГЄГ«Г*äêè
  15. Private tau As Single 'ïîñòîÿГ*Г*Г*Гї âðåìåГ*ГЁ Г¶ГҐГЇГЁ = L/R
  16.  
  17. Private Function f(a, b As Single) As Single
  18. ta = 0.0005 '((alpha * (1 ^ epselo)) / ((Hsum ^ beta) * (Vk ^ gamma)))
  19. ld1 = ta * Vk
  20. ld3 = 3.14 * (Vk * a + hh) * 0.5
  21. ld2 = 3.14 * Vk * a * 0.5
  22. Vd = 0.0141 * (((Abs(b) * (Hsum ^ 2)) / ((1 + 0.1075 * (Hsum ^ 0.3)) ^ 2)) ^ (1 / 3))
  23. Ed1 = (92 / Sqr(Abs(b)) + 0.312 * Sqr(Abs(b)) / (shel ^ 0.66666) + 0.15 * ((Vd ^ 2 * Abs(b) / (shel ^ 2)) ^ (1 / 3)))
  24. Ed2 = 9.2 * (Vd + 10) / Sqr(Abs(b))
  25. If Option1.Value = True Then Ed = Ed2
  26. If Option2.Value = True Then Ed = Ed1
  27. ld = ld1
  28. 'If Vd > 0 Then ld = 333
  29. Vda = Vd * a
  30. If a = ta Then ld12 = a
  31. If a > ta Then ld = ld2
  32. Text21.Text = ta
  33. Ud = 25 + Ed * ld
  34. MSFlexGrid1.TextMatrix(i + 2, 2) = Str(Ud)
  35. MSFlexGrid1.TextMatrix(i + 2, 4) = Str(ld)
  36. f = (2242 - Ud) * 400 / (2242 * tau) - b / tau
  37.  
  38. End Function
  39.  
  40. Private Sub Rynge_Kytt()
  41. ReDim g(n)
  42. Dim epe As Integer
  43. g(0) = y0
  44. For i = 0 To n
  45. x(i) = x0 + h * i
  46. Next i
  47. For i = 0 To n - 1
  48. k1 = h * f(x(i), g(i))
  49. k2 = h * f(x(i) + h / 2, g(i) + k1 / 2)
  50. k3 = h * f(x(i) + h / 2, g(i) + k2 / 2)
  51. k4 = h * f(x(i) + h, g(i) + k3)
  52. k = (k1 + 2 * k2 + 2 * k3 + k4) / 6
  53. g(i + 1) = g(i) + k
  54. MSFlexGrid1.TextMatrix(i + 2, 1) = Str(g(i + 1))
  55. MSFlexGrid1.TextMatrix(1, 1) = Str(g(0))
  56. ep = Val(MSFlexGrid1.TextMatrix(i + 2, 2))
  57. pe = Val(MSFlexGrid1.TextMatrix(i + 2, 1))
  58. MSFlexGrid1.TextMatrix(i + 2, 3) = Str(Abs(ep * pe))
  59. Next i
  60. End Sub
  61. Private Sub Command1_Click()
  62. x0 = Val(Text1.Text)
  63. xk = Val(Text2.Text)
  64. h = Val(Text3.Text)
  65. y0 = Val(Text4.Text)
  66. n = (xk - x0) / h
  67. MSFlexGrid1.Rows = n + 2
  68. MSFlexGrid1.TextMatrix(0, 0) = "x"
  69. MSFlexGrid1.TextMatrix(0, 1) = "ГђГіГ*ГЈГҐ-ГЉГіГІГІ"
  70. MSFlexGrid1.TextMatrix(0, 2) = "Ud"
  71. MSFlexGrid1.TextMatrix(0, 3) = "Wd"
  72. Label6.Caption = Str(x0)
  73. Label5.Caption = Str(xk)
  74.  
  75. Rynge_Kytt
  76.  
  77. max = y0
  78. min = y0
  79. For i = 0 To n
  80. If y(i) > max Then
  81. max = y(i)
  82. End If
  83. If y(i) < min Then
  84. min = y(i)
  85. End If
  86. If g(i) > max Then
  87. max = g(i)
  88. End If
  89. If g(i) < min Then
  90. min = g(i)
  91. End If
  92. If T(i) > max Then
  93. max = T(i)
  94. End If
  95. If T(i) < min Then
  96. min = T(i)
  97. End If
  98. ttt = g(i)
  99. If g(i) < 0 Then g(i) = 0
  100. Next i
  101. Label4.Caption = Str(max)
  102. Label7.Caption = Str(min)
  103. kx = (6600 - 960) / (xk - x0)
  104. ky = (5160 - 240) / (max - min)
  105. Picture1.Cls
  106. For i = 1 To n - 1
  107.  
  108. X1 = 960 + Round(kx * (x(i - 1) - x0))
  109. X2 = 960 + Round(kx * (x(i) - x0))
  110. Y1 = 5160 - Round(ky * (g(i - 1) - min))
  111. Y2 = 5160 - Round(ky * (g(i) - min))
  112. Picture1.Line (X1, Y1)-(X2, Y2), RGB(400, 100, 500)
  113. Picture1.Print g(i)
  114. Picture1.Line (0, 0)-(0, y0 + 0.1 * y0)
  115. Picture1.PSet (0, 0)
  116. Picture1.Line (0, 0)-(xk, 0)
  117. Picture1.Print 1
  118. Next i
  119. End Sub
а вот 2 дифура, которые надо решитьв системе: Давление в камере: ________ dP/dt = (Rг/V)∙{(10,2∙C∙W(t))/Cp) – 6469,53∙S∙P∙Ψ∙√2/(Rг∙T)∙[(ξ+1)∙T - ξ∙ T0]} Температура газа в камере: ________ dT/dt = (Rг∙T)/(P∙V)∙ {(10,2∙C∙W(t))/Cv) – 6469,53∙S∙P∙Ψ∙√2/(Rг∙T)∙(T - T0)} температура и давление по времени, в каждом уравнении присутствуют и то и другое, остальное-константы. Заранее благодарен!

Решение задачи: «Решение системы диффуров»

textual
Листинг программы
  1. Private Sub Command1_Click()
  2. x0 = Val(Text1.Text)
  3. xk = Val(Text2.Text)
  4. h = Val(Text3.Text)
  5. y0 = Val(Text4.Text)

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


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

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

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

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

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

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