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

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

Доброго времени суток форумчане! Я не сильно опытный пользователь VB6, задача выполнения дипломного проекта именно в нем создала необходимость изучить его практически с нуля. В ходе выполнения диплома возникла необходимость написать прогу, решающую дифур неким методом Рунге-Кутта в VB и я написал, чему несказанно рад)) Но теперь возникла необходимость решить систему из 2х дифуров с 3мя неизвестными(желательно этим же методом), с чем как оказалось не так просто справиться! Может кто-то из людей, хоро сведующих в математике и в VB одновременно поможет мне в моем начинании? Буду крайне признателен! вот текст моей проги, решающей дифур:
Dim x() As Single
Dim y() As Single
Dim g() As Single
Dim T() As Single
Private n, i As Integer
Private xk, x0, kx, ky As Single
Private k, k1, k2, k3, k4 As Single
Private h, max, min, y0 As Single
 
Private shel As Single ' øèðèГ*Г* ùåëè ГЄГ*ìåðû
Private Hsum As Single 'Г*Г*ïðÿæåГ*Г*îñòü ïîëÿ ñóììГ*Г°Г*Г*Гї
Private aa, bb, hh As Single 'äëèГ*Г* øèðèГ*Г* âûñîòГ* Г*Г*ГЄГ«Г*äêè
Private dd As Single 'äèГ*ìåòð äóãè
Private Vk As Single 'ñêîðîñòü äâèæåГ*ГЁГї ГЄГ®Г*ГІГ*êòîâ
Private alpha, beta, epselo, gamma As Single 'êîýôôèöèåГ*ГІГ», Г§Г*ГўГЁГ±ГїГ№ГЁГҐ îò Г¬Г*òåðèГ*Г«Г* ГЄГ®Г*ГІ.Г*Г*ГЄГ«Г*äêè
Private tau As Single 'ïîñòîÿГ*Г*Г*Гї âðåìåГ*ГЁ öåïè = L/R
 
 
 
 
Private Function f(a, b As Single) As Single
ta = 0.0005 '((alpha * (1 ^ epselo)) / ((Hsum ^ beta) * (Vk ^ gamma)))
 
ld1 = ta * Vk
ld3 = 3.14 * (Vk * a + hh) * 0.5
ld2 = 3.14 * Vk * a * 0.5
 
Vd = 0.0141 * (((Abs(b) * (Hsum ^ 2)) / ((1 + 0.1075 * (Hsum ^ 0.3)) ^ 2)) ^ (1 / 3))
Ed1 = (92 / Sqr(Abs(b)) + 0.312 * Sqr(Abs(b)) / (shel ^ 0.66666) + 0.15 * ((Vd ^ 2 * Abs(b) / (shel ^ 2)) ^ (1 / 3)))
Ed2 = 9.2 * (Vd + 10) / Sqr(Abs(b))
If Option1.Value = True Then Ed = Ed2
If Option2.Value = True Then Ed = Ed1
ld = ld1
'If Vd > 0 Then ld = 333
Vda = Vd * a
 
If a = ta Then ld12 = a
If a > ta Then ld = ld2
Text21.Text = ta
Ud = 25 + Ed * ld
 
MSFlexGrid1.TextMatrix(i + 2, 2) = Str(Ud)
MSFlexGrid1.TextMatrix(i + 2, 4) = Str(ld)
 
f = (2242 - Ud) * 400 / (2242 * tau) - b / tau
 
 
End Function
 
 
Private Sub Rynge_Kytt()
ReDim g(n)
Dim epe As Integer
g(0) = y0
For i = 0 To n
x(i) = x0 + h * i
Next i
For i = 0 To n - 1
k1 = h * f(x(i), g(i))
k2 = h * f(x(i) + h / 2, g(i) + k1 / 2)
k3 = h * f(x(i) + h / 2, g(i) + k2 / 2)
k4 = h * f(x(i) + h, g(i) + k3)
k = (k1 + 2 * k2 + 2 * k3 + k4) / 6
g(i + 1) = g(i) + k
MSFlexGrid1.TextMatrix(i + 2, 1) = Str(g(i + 1))
MSFlexGrid1.TextMatrix(1, 1) = Str(g(0))
 
ep = Val(MSFlexGrid1.TextMatrix(i + 2, 2))
pe = Val(MSFlexGrid1.TextMatrix(i + 2, 1))
MSFlexGrid1.TextMatrix(i + 2, 3) = Str(Abs(ep * pe))
 
Next i
End Sub
 
Private Sub Command1_Click()
x0 = Val(Text1.Text)
xk = Val(Text2.Text)
h = Val(Text3.Text)
y0 = Val(Text4.Text)
n = (xk - x0) / h
 
MSFlexGrid1.Rows = n + 2
MSFlexGrid1.TextMatrix(0, 0) = "x"
 
MSFlexGrid1.TextMatrix(0, 1) = "ГђГіГ*ГЈГҐ-ГЉГіГІГІ"
MSFlexGrid1.TextMatrix(0, 2) = "Ud"
MSFlexGrid1.TextMatrix(0, 3) = "Wd"
Label6.Caption = Str(x0)
Label5.Caption = Str(xk)
 
 
Rynge_Kytt
 
 
max = y0
min = y0
For i = 0 To n
If y(i) > max Then
max = y(i)
End If
If y(i) < min Then
min = y(i)
End If
If g(i) > max Then
max = g(i)
End If
If g(i) < min Then
min = g(i)
End If
If T(i) > max Then
max = T(i)
End If
If T(i) < min Then
min = T(i)
End If
ttt = g(i)
If g(i) < 0 Then g(i) = 0
 
Next i
Label4.Caption = Str(max)
Label7.Caption = Str(min)
kx = (6600 - 960) / (xk - x0)
ky = (5160 - 240) / (max - min)
Picture1.Cls
For i = 1 To n - 1
 
 
X1 = 960 + Round(kx * (x(i - 1) - x0))
X2 = 960 + Round(kx * (x(i) - x0))
Y1 = 5160 - Round(ky * (g(i - 1) - min))
Y2 = 5160 - Round(ky * (g(i) - min))
Picture1.Line (X1, Y1)-(X2, Y2), RGB(400, 100, 500)
Picture1.Print g(i)
Picture1.Line (0, 0)-(0, y0 + 0.1 * y0)
Picture1.PSet (0, 0)
Picture1.Line (0, 0)-(xk, 0)
Picture1.Print 1
 
Next i
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)} температура и давление по времени, в каждом уравнении присутствуют и то и другое, остальное-константы. Заранее благодарен!

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

textual
Private Sub Command1_Click()
x0 = Val(Text1.Text)
xk = Val(Text2.Text)
h = Val(Text3.Text)
y0 = Val(Text4.Text)

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


СОХРАНИТЬ ССЫЛКУ