Post Reply 
(48) Complex Roots Of Multiple Non-Linear Equations (Newton-Raphson Method)
03-13-2018, 02:47 PM (This post was last modified: 03-14-2018 10:20 PM by gerry_in_polo.)
Post: #1
(48) Complex Roots Of Multiple Non-Linear Equations (Newton-Raphson Method)
Complex Roots of Multiple Non-Linear Equations Via Newton-Raphson Method, HP-48
Gerardo V. Lozada, M.S., P.E.E., May 12, 2015

Computes the real and complex roots of a system of simultaneous non-linear equations using the Newton-Raphson Method utilizing the forward difference method to approximate the Jacobian matrix.

Input parameters on the stack:

MQ - A list containing the simultaneous non-linear equations, each enclosed in single quotes ' ', the number n of variables should equal the number of equations. Variables are denoted as X(1), X(2), X(3) ...... X(n).

X0 - Array containing the initial estimate of the roots, may be real or complex.

Example: Find the roots of the three simultaneous equations X1^2 - 2*X1*X2 + X2^2 - ln(X3) = 16, X1^2 - X2^2 + 20*sin(X3) = 9 and X1^3 + X2^2 + X3^2 = -27 using initial estimates of X1=1-j7, X2=2+j10 and X3=-4-j11.

Enter {'X(1)^2-2*X(1)*X(2)+X(2)^2-LN(X3)-16' 'X(1)^2-X(2)^2+20*SIN(X)-9' 'X(1)^3+X(2)^2+X(1)^2+27'} and [(1,-7) (2,10) (-4,-11)] on the stack and then run the program NR.

The resulting complex roots are: X = [(1.1215, 4.0809) (5.313, 3.7512) (-3.9988, -1.588) ] converged in
15 iterations. Final estimate error is 4.5802e-7. Other root combinations may be found depending on the initial root estimates used.


Program NR

<< -> MQ X0 <<
1e-6 'TL' STO
MQ SIZE 'N' STO
X0 'X' STO
IF X0 TYPE 4 == THEN
(0.01,0.01) 'D' STO ELSE
0.01 'D' STO
END
0 'ITER' STO
DO
0 'YM' STO
1 N FOR I
MQ I GET ->NUM
NEXT
N ->ARRY
'Y' STO
1 N FOR I
Y I GET
ABS 'YI' STO
IF YI YM > THEN
YI 'YM' STO
END
NEXT
IF YM TL >= THEN
1 N FOR I
1 N FOR J
X J GET
D +
X J 3 ROLL
PUT
'X' STO
MQ I GET
->NUM
Y I GET -
D /
X J GET
D -
X J 3 ROLL
PUT
'X' STO
NEXT
N ->ARRY
NEXT
N ROW-> 'JAC' STO
Y JAC /
'DX' STO
X DX -
'X' STO
END
ITER 1+
'ITER' STO
UNTIL YM TL < END
MQ
X "X" ->TAG
ITER "ITER" ->TAG
YM "YM" ->TAG
>> >>
Find all posts by this user
Quote this message in a reply
03-13-2018, 03:01 PM
Post: #2
RE: (48) Complex Roots Of Multiple Non-Linear Equations (Newton-Raphson Method)
Request. Could you put the code within "code" tags? It gets more readable.

Code tags are the following: <code></code> substituting '<' with '[' and '>' with ']'

Wikis are great, Contribute :)
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)