The Museum of HP Calculators

HP Articles Forum

[Return to the Index ]
[ Previous | Next ]


HP-15C First Degree Runge-Kutta Order 4

Posted by Patrick on 4 Aug 2003, 2:56 p.m.


Description

Here is an HP-15C program that implements a fourth-order Runge-Kutta algorithm for a first degree ODE. It has the attributes of being somewhat miserly in its use of resources compared with routines published in HP Solutions handbooks. The program is only 45 steps long and requires the use of only 4 registers and 1 flag.


Usage

Label A
Input: h ENTER y ENTER x [A]
Output: X = new x, Y = new y, Z = delta X = h, T = delta Y

Label B
Assumes: Label A previously run.
Input: h [B]
Output: Same as for Label A

Label C
Assumes: Label A previously run.
Input: Nothing.
Output: Same as for Label A.

Label D (not provided)
This is the label under which you must code the function, f(x,y), which defines the derivative: y' = f(x,y).

Basically, Label A is used to initialize the algorithm and compute a single step. Label C is used to take additional steps with the same step size. Label B is used to take additional steps with a new step size (for use with adaptive step-size techniques).


Resources Used

R0 = h/2
R1 = x
R2 = y
R3 = Used

Flag 0 = Used, left clear


Program

001	LBL A	Main algorithm entry point specifying x, y, and h	
002	STO 1	Initialize R1 = x		
003	RDN			
004	STO 2	Initialize R2 = y		
005	RDN			
006	LBL B	Entry point for adaptive step size techniques.	
007	2			
008	/			
009	STO 0	Initialize R0 = h/2		
010	LBL C	Entry point for RK iteration using current values
011	CLx			
012	STO 3			
013	CF 0			
014	0			
015	GSB 0			
016	SF 0			
017	1
018	GSB 0
019	1
020	GSB 0
021	CF 0
022	2
023	GSB 0
024	RCL 3
025	3
026	/
027	STO+2
028	2
029	RCL*0
030	STO+1
031	RCL 2
032	RCL 1
033	RTN			
034	LBL 0	Internal label	
035	*			
036	RCL+2			
037	LAST x			
038	RCL*0			
039	RCL+1			
040	GSB D	Derivative at specified (x,y) point	
041	RCL*0			
042	STO+3			
043	FS?0			
044	STO+3			
045	RTN			
046	LBL D
	Code derivative function here			
	RTN

Password:

[ Return to the Message Index ]

Go back to the main exhibit hall