四阶龙格库塔 步长求解步长h怎么确定?选取多少结果才比较精确?
1个回答

假设求解初值问题:

y'=y-2x/y (0

y(0)=1

设步长h=0.2,从x=0直到x=1用四阶龙格库塔法:

Private Sub Form_click()

Dim x As Single, y As Single

Dim k1 As Single, k2 As Single, k3 As Single, k4 As Single

Dim y1 As Single, y2 As Single, y3 As Single, y4 As Single

x = 0

y = 1

h = 0.2

For i = 0 To 1 Step 0.2

k1 = f(x, y)

y1 = y + h / 2 * k1

x = x + h / 2

k2 = f(x, y1)

y2 = y + h / 2 * k2

k3 = f(x, y2)

y3 = y + h * k3

x = x + h / 2

k4 = f(x, y3)

y = y + h / 6 * (k1 + 2 * k2 + 2 * k3 + k4)

Print "x="; x; " y="; y

Next

End Sub

Private Function f(a As Single, b As Single) As Single

f = b - 2 * a / b

End Function