.


:




:

































 

 

 

 





y=f(x,y), y(a)=y0 - [a,b] h. y(x) :

Y [i+1]=y[1]+h/6(K[i]+2K[2]+2K[3]+K[4]), i=0,1,2,

K[1]=f(x[i],y[i]);

K[2]=f(x[i]+h/2, y[i]+h/2K[1]);

K[3]=f(x[i]+h/2, y[i]+h/2K[2]);

K[4]=f(x[i]+h, y+hK[3]).

 


           
 
 
   
     
 

 


Procedure RK4

 
 

 


Procedure der

       
 
 
   

 

 


(Enter = a, b, h1,k). y () h.

 


.

 

- :

1. - Intel 166.

2. 16, 8.

3. MS DOS.

4. ( )-1.

 

 


.

 

(floppy disk).

floppy disk .

, , Rkutt.exe


 

Turbo Pascal 7.0, -.

- . , , . , , - - .

- . . , . , , , , , , . , .

-. (a,b,h1,k) ( 1).


: y=f(x,y), y(a)=y0 - [a,b] h. y(x) :

Y [i+1]=y[1]+h/6(K[i]+2K[2]+2K[3]+K[4]), i=0,1,2,

K[1]=f(x[i],y[i]);

K[2]=f(x[i]+h/2, y[i]+h/2K[1]);

K[3]=f(x[i]+h/2, y[i]+h/2K[2]);

K[4]=f(x[i]+h, y+hK[3]).

Turbo Pascal . , , , , , .


1. .. ., , 1978

2. .. .. : ., 1987

3. .. .. ., , 1970

4. . ., , 1998

5. .. Turbo Pascal., , , .-., . 2003.

6. .. Turbo Pascal. . , . .., , 2003.

7. . . .-., 2001.

8. .. .. Turbo Pascal 7.0 .: - BHV, 1996 448 .: .

9. .. ., , 1987

10. .. ( 3- ). 2. Turbo Vision.-.: - - , 1993.


:

Borland Pascal Version 7.0 Copyright (c) 1983,92 Borland International

 

.
:

PROGRAM RKutt;

uses crt;

const

nmax=8;

type

vec=array[1..nmax] of Real;

var

h,a,b:Integer; i:Integer;

procedure der(x:Real; y:vec; var f:vec);

var

ki:array[1..5] of real;

begin

for i:=1 to 5 do

f[i]:=(h/6)*ki[i]+2*ki[2]+2*ki[3]+ki[4];

y[i+1]:=y[1]+h*y[i];

y[i]:=x*x+5;

end;

procedure RK4(n:Integer;x,h:Real; var y:vec);

var

i,j:Integer;

h1,h2,q:Real;

y0,y1,f:Vec;

begin

h1:=0;h2:=h1/2;

for i:=1 to n do begin

y0[i]:=y[i];

y1[i]:=y[i];

end;

for j:=1 to 4 do begin

der(x+h1,y,f);

if j=3 then h1:=h else h1:=h2;

for i:=1 to n do begin

q:=h1*f[i];

y[i]:=y0[i]+q;

y1[i]:=y1[i]+q/3;

end;

end;

for i:=1 to n do

y[i]:=y1[i];

end;

var

k,n:Integer;h1,y1:Real;

k1,k2,k3,k4:Integer;

x,ki:Array[1..5] of real;

y:Array[1..5] of real;

begin

writeln('Enter a=');

Readln(a);

writeln('Enter b=');

Readln(b);

writeln('Enter h1=');

Readln(h1);

writeln('Enter k=');

Readln(k);

n:=3;

h1:=a;

ki[1]:=k;

for i:=1 to n do begin

y[i+1]:=y1+(h1/6)*(Ki[i]+2*ki[2]+2*ki[3]+ki[4]);

writeln(y[i+1]);

end;

while h1<=b do begin

h1:=h1+h;

end;

Readln;

end.

 





:


: 2015-11-23; !; : 612 |


:

:

: , .
==> ...

1824 - | 1428 -


© 2015-2024 lektsii.org - -

: 0.017 .