This program uses a 3rd Order Runge-Kutta method to assist in solving a first order-differential equation.
Given the initial condition (x0, y0) to the differential equation:
dy/dx = f(x, y)
Find the value of y1 where h is a given step size (preferably small). The value of y1 is given by the following equations:
y1 = y0 + k1/4 + (3 * k3)/4
Where:
k1 = h * f(x0, y0)
k2 = h * f(x0 + h/3, y0 + k1/3)
k3 = h * f(x0 + (2 * h)/3, y0 + (2 * k2)/3)
Error estimated on the order of h^4
Source: Smith, Jon M. Scientific Analysis on the Pocket Calculator. John Wiley & Sons, Inc.: New York 1975 pg 174
Memory Registers Used
R0 = h
R1 = x
R2 = y
R3 = x1 (result)
R4 = y1 (result)
R5 = x0 (copied from R1)
R6 = y0 (copied from R2)
R7 = k1
R8 = k2
R9 = k3
Labels Used
Label A = Main Program
Label 0 = Program where equation is maintained
Instructions
1. Store h, x0, and y0 in memory registers R0, R1, and R2 respectively.
2. Enter or edit the equation in program mode using Label 0. Use RCL 1 for x and RCL 2 for y.
3. Run Program A. The first answer is x1. Press [R/S] for y1.
4. To find (x2, y2), store x1 in R1 and y1 in R2 and run Program A again. You can do this by pressing [STO] [ 2 ] [x<>y] [STO] [ 1 ] [ f ] [ √ ] (A) immediately following program execution.
There are 59 program steps in the main program.
Key Code
LBL A 42 21 11
RCL 1 45 1
STO 5 44 5
RCL+ 0 45 40 0
STO 3 44 3
RCL 2 45 2
STO 6 44 6
GSB 0 32 0
RCLx 0 45 20 0
STO 7 44 7
RCL 5 45 5
RCL 0 45 0
3 3
÷ 10
+ 40
STO 1 44 1
RCL 6 45 6
RCL 7 45 7
3 3
÷ 10
+ 40
STO 2 44 2
GSB 0 32 0
RCLx 0 45 44 0
STO 8 44 8
RCL 5 45 5
RCL 0 45 0
2 2
x 20
3 3
÷ 10
+ 40
STO 1 44 1
RCL 6 45 6
RCL 8 45 8
2 2
x 20
3 3
÷ 10
+ 40
STO 2 44 2
GSB 0 32 0
RCLx 0 45 20 0
STO 9 44 9
RCL 3 45 3
R/S 31
RCL 6 45 6
RCL 7 45 7
4 4
÷ 10
+ 40
RCL 9 45 9
3 3
x 20
4 4
÷ 10
+ 40
STO 4 44 4
RTN 43 32
Example 1
dy/dx = x^2 + sin(x * y)
Initial Conditions: (1, 1), let h = 0.01
Program for equation:
LBL 0
RAD
RCL 1
x^2
RCL 1
RCLx 2
SIN
+
RTN
Results:
x y
1.0000 1.0000
1.0100 1.0186
1.0200 1.0375
1.0300 1.0568
Example 2
dy/dx = x^3 * y - y
Initial Condition: (1,1); Step size h = 0.01
Program for the equation:
LBL 0
RCL 1
3
y^x
RCLx 2
RCL- 2
RTN
Results:
x y
1.0000 1.0000
1.0100 1.0002
1.0200 1.0006
1.0300 1.0014
This blog is property of Edward Shore. © 2012