Anonymous user
Runge-Kutta method: Difference between revisions
m
→{{header|REXX}}: added/changed whitespace and comments, changed format of some comments.
m (→{{header|REXX}}: added/changed whitespace and comments, changed format of some comments.) |
|||
Line 1,655:
=={{header|REXX}}==
<lang rexx>/*REXX program uses the
/*
/* y'(t)═t² √ y(t) ══════════════════════════════════════════*/
numeric digits 40; d=digits()%2 /*use
x0=0; x1=10; dx=.1; n=1
do m=1 for n-1; mm=m-1
Line 1,666:
end /*m*/
say center(x,13,'─') center(y,d,'─') ' ' center('relative error',d,'─')
do i=0 to n-1 by 10;
relE=format(y.i/y2-1,,13)/1;
say center(x,13) right(format(y.i,,12),d) ' ' left(relE,d)
end /*i*/
exit /*stick a fork in it, we're all done. */
/*────────────────────────────────────────────────────────────────────────────*/
rate: return arg(1)*sqrt(arg(2))
/*────────────────────────────────────────────────────────────────────────────*/
Runge_Kutta: procedure;
return y + (k1
/*────────────────────────────────────────────────────────────────────────────*/
sqrt:
g=g*.5'E'_%2; m.=11; do j=0 while p>9; m.j=p; p=p%2+1;
do k=j+5 to 0 by -1; if m.k>11 then numeric digits m.k; g=.5*(g+x/g); end
numeric digits
{{out}}
<pre>
|