Лабораториялык иш №19
Тема: Кадимки дифференциaлдык теңдемелерди сандык чыгаруу. Рунге – Кутта методу
Ишти аткарууга көрсөтмө:
Төмөнкү формуланы пайдаланып калькулятордун жардамы менен эсептөө.
2. Программасын түзүү жана ЭММде реализациялоо;
3. Алынган эки жыйынтыкты салыштыруу.
1– мисал. Рунге – Кутта методу боюнча жоопту болжолду аныктагыла:
y′=x2+y2 , y0=1, x0=0, h=0.1
Чыгаруу: y′=x2+y2 , y0=1, x0=0, h=0.1
1)
2)
3)
4)
5)
Программасы
Program RungeKutta;
Uses crt;
var x0,y0,h,k1,k2,k3,k4,dy0,yi,xi:real; i:integer;
function f(x,y:real):real;
begin f:=sqr(x)+sqr(y); end;
beginclrscr;
writeln('x0,y0,h kirgiz');
read(x0,y0,h);
yi:=y0;
xi:=x0;
for i:=1 to 5 do
begin
k1:=h*f(xi,yi);
k2:=h*f(xi+h/2,yi+k1/2);
k3:=h*f(xi+h/2,yi+k2/2);
k4:=h*f(xi+h,yi+k3);
dy0:=1/6*(k1+2*k2+2*k3+k4);
yi:=yi+dy0;
writeln('x=',xi:2,2,' ','y=',yi:2:3);
xi:=xi+h; end;
end.
Паскаль программасында алынган жообу:
x0,y0,h kirgiz
0 1 0.1
x= 0.0E+002 y=1.111
x= 1.0E-012 y=1.253
x= 2.0E-012 y=1.440
x= 3.0E-012 y=1.696
x= 4.0E-012 y=2.067
2 – мисал. Рунге – Кутта методу боюнча жоопту болжолду аныктагыла: y′=y-x, y0=1.5, x0=0, h=0.1
Чыгаруу: y′=y-x, y0=1.5, x0=0, h=0.1
1)
2)
3)
4)
5)
Программасы:
Program RungeKutta;
Uses crt;
var x0,y0,h,k1,k2,k3,k4,dy0,yi,xi:real; i:integer;
function f(x,y:real):real;
begin f:=1+x+sqr(y); end;
beginclrscr;
writeln('x0,y0,h kirgiz');
read(x0,y0,h);
yi:=y0;
xi:=x0;
for i:=1 to 5 do
begin
k1:=h*f(xi,yi);
k2:=h*f(xi+h/2,yi+k1/2);
k3:=h*f(xi+h/2,yi+k2/2);
k4:=h*f(xi+h,yi+k3);
dy0:=1/6*(k1+2*k2+2*k3+k4);
yi:=yi+dy0;
writeln('x=',xi:2,2,' ','y=',yi:2:3);
xi:=xi+h; end;
end.
Паскаль программасында алынган жообу:
x0,y0,hkirgiz
0 1 0.1
x= 0.0E+002 y=1.228
x= 1.0E-012 y=1.533
x= 2.0E-012 y=1.959
x= 3.0E-012 y=2.608
x= 4.0E-012 y=3.731
3 – мисал. Рунге – Кутта методу боюнча жоопту болжолду аныктагыла:
h=0.2
Чыгаруу:
h=0.2
Программасы
Program Runge Kutta;
Var x0,y0,h,k1,k2,k3,k4,dy0,yi,xi:real; i:integer;
Function f(x,y:real):real;
Begin f:=sqr(y)-sqr(x); end;
Begin writeln(‘x0,y0,h ty kirgiz’);
Read(x0,y0,h); yi:=y0; xi:=x0;
For I;=1 to 5 do
Begin
K1;=h*f(xi,yi);
K2;=h
(xi+h/2,yi+k1/2);
K3:=h*f(xi+h/2)yi+k2/2);
K4:=h*f(xi+h, yi+k3);
Dy0:=1/6*(k1+2*k2+2*k3+k4);
Yi:=yi+dy0;
Writeln(‘x=’ xi:2.2, ‘ ‘, ‘y=’yi:2:3);
Xi:=x+h;
End;
End.
4 – мисал. Рунге – Кутта методу боюнча жоопту болжолду аныктагыла:
Чыгаруу:
1)
y1=1+0,218=1,218
y2=1,218+0,267=1,485
3)
y3=1,485+0,348=1,833
4)
y4=1,833+0,494=2,325
5)
y5=2,325+0,778=3,103 Жооп:3,103