Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Uses crt;

Var

x0,y0,a1,a2,x,y,xk,k1,k2,k3,k4:real;

h,polh,rez,r,eps,n:real;

my: array[1..2] of real;

k,i: byte;

f: file of real;

function fn(x1,x2:real):real;

var absx2, expx3:real;

Begin

fn:=a1*x1+a2*x2*x2;

End;

Begin

ClrScr;

writeln('введи x0,y0,h,xk,eps');

Readln(x0,y0,h,xk,eps);

writeln(' x0=',x0:6:2,' y0=',y0:6:2,' h=',h:6:2,

' xk=',xk:6:2, ' eps=',eps:7:4);

writeln('введите a1, a2');

Read(a1,a2);

writeln('a1=',a1:4:2, ' a2=',a2:4:2);

x:=x0; y:=y0;

Repeat

for i:=1 to 2 do

begin{for}

if i=1 then writeln('i=',i:4,' h=',h:6:3)

else writeln('i=',i:4,' h/2=',h:6:3);

Repeat

k1:=h*fn(x,y);

x:=x+0.5*h;

y:=y0+0.5*k1;

k2:=h*fn(x,y);

y:=y0+0.5*k2;

k3:=h*fn(x,y);

x:=x+0.5*h;

y:=y0 + k3;

k4:=h*fn(x,y);

y:=y0+1/6*(k1+2*k2+2*k3+k4);

my[i]:=y;

writeln(x:9:5, y:9:5, k1:9:5, k2:9:5, k3:9:5, k4:9:5);

if x<=xk then y0:=y;

until x > xk;

if i=1 then

Begin

h:=h/2; x:=x0; y:=y0; readln

End;

if i=2 then

Begin

r:=abs(my[2] - my[1])/15;

writeln(' h/2=',h:6:3);

writeln(' my[1]=',my[1]:10:6,' my[2]=',my[2]:10:6,

' Погрешность по Рунге =',R:10:8);

Readln;

End;

end;{for}

until r<eps;

polh:=h;

h:=h*2;

writeln('h=',h:6:3,' h/2=',polh:6:3);

writeln(' my[1]=',my[1]:10:6,' my[2]=',my[2]:10:6,

' Погрешность по Рунге =',R:10:8);

x:=x0;

y:=y0;

writeln('-----------------------------------------------------------');

writeln(' x ',' y ','k1 ','k2 ','k3 ','k4 '

writeln('-----------------------------------------------------------');

Repeat

k1:=h*fn(x,y);

x:=x+0.5*h;

y:=y0+0.5*k1;

k2:=h*fn(x,y);

y:=y0+0.5*k2;

k3:=h*fn(x,y);

x:=x+0.5*h;

y:=y0+0.5*k3;

k4:=h*fn(x,y);

y:=y0+1/6*(k1+2*k2+2*k3+k4);

writeln(x:9:5,y:9:5,k1:9:5,k2:9:5,k3:9:5,k4:9:5);

{readln;}

if x<=xk then y0:=y;

until x>xk;

Readkey

End.

Варианты индивидуальных заданий


Дата добавления: 2015-07-11; просмотров: 90 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Program Runge_K2;| Программа на С

mybiblioteka.su - 2015-2024 год. (0.005 сек.)