Data update
This commit is contained in:
parent
8e4e15fa56
commit
72eb4943cb
1853 changed files with 35514 additions and 9441 deletions
|
|
@ -1,21 +1,24 @@
|
|||
include c:\cxpl\stdlib;
|
||||
|
||||
func real NRoot(A, N); \Return the Nth root of A
|
||||
real A, N;
|
||||
real X, X0, Y;
|
||||
func real NRoot(A, N, Prec); \Return the Nth root of A with precision Prec
|
||||
real A;
|
||||
int N;
|
||||
real Prec;
|
||||
real X, X0, Y, NF;
|
||||
int I;
|
||||
[X:= 1.0; \initial guess
|
||||
[NF:= float(N);
|
||||
X:= 1.0; \initial guess
|
||||
repeat X0:= X;
|
||||
Y:= 1.0;
|
||||
for I:= 1 to fix(N)-1 do Y:= Y*X0;
|
||||
X:= ((N-1.0)*X0 + A/Y) / N;
|
||||
until abs(X-X0) < 1.0E-15; \(until X=X0 doesn't always work)
|
||||
for I:= 1 to N-1 do Y:= Y*X0;
|
||||
X:= ((NF-1.0)*X0 + A/Y) / NF;
|
||||
until abs(X-X0) < Prec; \(until X=X0 doesn't always work)
|
||||
return X;
|
||||
];
|
||||
|
||||
[Format(5, 15);
|
||||
RlOut(0, NRoot( 2., 2.)); CrLf(0);
|
||||
RlOut(0, NRoot( 2., 2, 1.0E-15)); CrLf(0);
|
||||
RlOut(0, Power( 2., 0.5)); CrLf(0); \for comparison
|
||||
RlOut(0, NRoot(27., 3.)); CrLf(0);
|
||||
RlOut(0, NRoot(1024.,10.)); CrLf(0);
|
||||
RlOut(0, NRoot(27., 3, 1.0E-15)); CrLf(0);
|
||||
RlOut(0, NRoot(1024., 10, 1.0E-15)); CrLf(0);
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue