Program R_Kutta;
const n=7;
var
i : integer;
dy,x0,y0,x,y,K1,K2,K3,K4,h,y2 : real; txt1 : text;
Function F(x1:real; y1:real) : real; Begin
F:=x1+y1;
End;
BEGIN
x0:=0; y0:=1; h:=0.075;
assign(txt1,'R_K.otv'); rewrite(txt1); Writeln(txt1,' Runge-Kutta usuli');
Writeln(txt1,' X Taqr.echim Aniq echim'); For i:=1 to n do begin
K1:=h*F(x0,y0); K2:=h*F(x0+h/2,y0+K1/2); K3:=h*F(x0+h/2,y0+K2/2); K4:=h*F(x0+h,y0+K3); dy:=(K1+2*K2+2*K3+K4)/6;
y2:=2*exp(x0)-x0-1;
Writeln(txt1,x0:8:4,' ',y0:10:6,' ',y2:10:6);
y:=y0+dy; x0:=x0+h;y0:=y;
End; close(txt1);
END.
Program P1; Uses Crt; Const n=10;
Var
i,j : integer;
A,B,A0,B0,Al0,Al1,Bet0,Bet1,h : real; M,K,C,D,Y,P,q,f,x : array[0..100] of real; f1 : text;
Procedure progonka; BEGIN
for i:=0 to n-2 do Begin M[i]:=-2+h*p[i];
K[i]:=1-h*p[i]+h*h*q[i]; End;
c[0]:=(al1-al0*h)/(M[0]*(al1-al0*h)+K[0]*al1); d[0]:=k[0]*A0*h/(al1-al0*h)+f[0]*h*h;
for i:=1 to n-2 do Begin c[i]:=1/(m[i]-k[i]*c[i-1]);
d[i]:=f[i]*h*h-k[i]*c[i-1]*d[i-1]; End;
y[n]:=(B0*h-Bet1*c[n-2]*d[n-2])/(Bet0*h+Bet1*(1+c[n-2])); for j:=1 to n-1 do Begin
i:=n-j; y[i]:=c[i-1]*(d[i-1]-y[i+1]); End; y[0]:=(al1*y[1]-A0*h)/(al1-al0*h);
END;
BEGIN {Asosiy qism} ClrScr;
assign(f1,'c:Progonka.txt'); rewrite(f1);
a:=0; b:=1; h:=(b-a)/n; Al0:=1; Al1:=-1; Bet0:=1; Bet1:=0; A0:=0; B0:=3.718;
for i:=0 to n do Begin
x[i]:=a+i*h; p[i]:=-2*x[i]; q[i]:=-2; f[i]:=-4*x[i]; End; Progonka;
for i:=0 to n do Begin
writeln(f1,'i=',i:2,' x=',x[i]:6:4,' M=',M[i]:6:4,' K=',k[i]:6:4); End;
writeln(f1);
for i:=0 to n do Begin
writeln(f1,'i=',i:2,' c=',c[i]:6:4,' d=',d[i]:6:4,' y=',y[i]:6:4); End;
Close(f1);
END.
Do'stlaringiz bilan baham: |