📄 form1.frm
字号:
VERSION 5.00
Begin VB.Form Form1
Caption = "龙格库塔"
ClientHeight = 2445
ClientLeft = 2625
ClientTop = 3450
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 2445
ScaleWidth = 4680
Begin VB.TextBox Text5
Height = 615
Left = 3480
TabIndex = 11
Text = "2.999"
Top = 1800
Width = 1215
End
Begin VB.TextBox Text4
Height = 735
Left = 2520
TabIndex = 9
Text = "1"
Top = 480
Width = 855
End
Begin VB.CommandButton Command3
Caption = "About"
Height = 615
Left = 4080
TabIndex = 5
Top = 480
Width = 615
End
Begin VB.CommandButton Command2
Caption = "End"
Height = 615
Left = 3480
TabIndex = 4
Top = 480
Width = 615
End
Begin VB.CommandButton Command1
Caption = "Ok"
Height = 495
Left = 3480
TabIndex = 3
Top = 0
Width = 1215
End
Begin VB.TextBox Text3
Height = 735
Left = 1680
TabIndex = 2
Text = "30"
Top = 480
Width = 855
End
Begin VB.TextBox Text2
Height = 735
Left = 840
TabIndex = 1
Text = "3"
Top = 480
Width = 855
End
Begin VB.TextBox Text1
Height = 735
Left = 0
TabIndex = 0
Text = "0"
Top = 480
Width = 855
End
Begin VB.Label Label6
Caption = "本程序中的微分函数需要在公共模块的f函数的定植中修改。"
BeginProperty Font
Name = "楷体_GB2312"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 1095
Left = 0
TabIndex = 13
Top = 1560
Width = 3375
End
Begin VB.Label Label5
Caption = " 待计算 点的值"
BeginProperty Font
Name = "楷体_GB2312"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 615
Left = 3480
TabIndex = 12
Top = 1200
Width = 1215
End
Begin VB.Label Label4
Caption = "初始值 yo "
BeginProperty Font
Name = "楷体_GB2312"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 2640
TabIndex = 10
Top = 0
Width = 735
End
Begin VB.Label Label3
Caption = " 细分点 数目"
BeginProperty Font
Name = "楷体_GB2312"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 1680
TabIndex = 8
Top = 0
Width = 855
End
Begin VB.Label Label2
Caption = "区间上界 b"
BeginProperty Font
Name = "楷体_GB2312"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 840
TabIndex = 7
Top = 0
Width = 855
End
Begin VB.Label Label1
Caption = "区间下界 a"
BeginProperty Font
Name = "楷体_GB2312"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 0
TabIndex = 6
Top = 0
Width = 855
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Dim t1, t2 As Double
Dim m As Integer
Dim sum, h As Double
Dim t(Max) As Double
t1 = Time
m = 1
a = CDbl(Text1.Text)
b = CDbl(Text2.Text)
N = CInt(Text3.Text)
y(0) = CDbl(Text4.Text)
zz = CDbl(Text5.Text)
z0 = zz
Debug.Print f(1.2, 2.1)
Call Runge_kutta
Call Lagrange
t2 = Time
Tm = CDbl(t2 - t1) * 24 * 2600
Form1.Hide
Form2.Show
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Command3_Click()
temp = MsgBox("理学院一队:王元", 64, "关于:作者")
End Sub
Public Sub Runge_kutta()
h = (b - a) / N
Dim k1, k2, k3, k4, s As Double
Dim p, q As Double
t(0) = a
For j = 0 To N - 1
p = t(j)
q = y(j)
k1 = h * f(CDbl(p), q)
k2 = h * f(p + h / 2, q + 0.5 * k1)
k3 = h * f(p + h / 2, q + 0.5 * k2)
k4 = h * f(p + h, q + k3)
s = k1 + 2 * k2 + 2 * k3 + k4
y(j + 1) = q + s / 6
t(j + 1) = a + h * (j + 1)
Next j
End Sub
Private Sub Lagrange()
Dim k, j As Integer
Dim z As Double
y0 = 0
For k = 0 To N
z = y(k)
For j = 0 To N
If j <> k Then
z = z * (zz - t(j)) / (t(k) - t(j))
End If
Next j
y0 = y0 + z
Next k
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -