Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2010, 16:57   #1
Roman967
 
Регистрация: 12.12.2009
Сообщений: 3
Плохо Паскаль(Метод Рунге-Кутта)

Прошу помочь разобраться с задачей по методу Рунге-Кутта
program RungeKutt;
uses GraphABC,crt;
const e=2.71;
x0=0;
xk=1;
h=0.05;
kv=2;
var x,v,p,a,m:real;
i,k,t,l,r,rx,ry1,ry2:integer;
y,f,z,y0,fk1,fk2,fk3,fk4:array[1..100] of real;
xx,yy,zz:array[1..30] of real;
procedure PPCH;
begin
f[1]:=y[2];
f[2]:=2*(exp(4*x))+y[2]+6*y[1];
end;
procedure RGK;
begin
PPCH;
for i:=1 to 100 do
begin
fk1[i]:=h*f[i];
y[i]:=z[i]+fk1[i]/2;
end;
x:=x+h/2;
PPCH;
for i:=1 to 100 do
begin
fk2[i]:=h*f[i];
y[i]:=z[i]+fk2[i]/2;
end;
PPCH;
for i:=1 to 100 do
begin
fk3[i]:=h*f[i];
y[i]:=z[i]+fk3[i];
end;
x:=x+h/2;
PPCH;
for i:=1 to 100 do
begin
fk4[i]:=h*f[i];
y[i]:=z[i]+1/6*(fk1[i]+2*fk2[i]+2*fk3[i]+fk4[i]);
z[i]:=y[i];
end;
end;
begin
t:=0;
x:=x0;
y0[1]:=1.433;
y0[2]:=-0.367;
for i:=1 to 100 do
begin
y[i]:=y0[i];
z[i]:=y[i];
end;
k:=0;
repeat
RGK;
v:=0.1*exp(3*x)+exp(-2*x)+1/3*exp(4*x);
p:=y[1]-v;
k:=k+1;
if k=kv then
begin
t:=t+1;
writeln('x=',x:3:3,' y[1]=', y[1]:3:5, ' y[2]=', y[2]:3:5, ' v=',v:3:5,' p=',p:3:7);
xx[t]:=x;
yy[t]:=y[1];
zz[t]:=y[2];
k:=0;
end;
until x>xk;
writeln('Для просмотра графика нажмите ввод');
readln;
clrscr;
SetWindowCaption('График функции y=cos(a)+sin(a)+1+(1/2)*exp(a*ln(e))');
SetWindowSize(600,600);
{Ось "Y"}
line(30,30,30,600);
{Ось "X"}
line(0,570,570,570);
textout(15,30,'y');
textout(560,575,'x');
textout(15,575,'0');
a:=0;
for i:=1 to 1500 do
begin
M:=0.1*exp(3*a)+exp(-2*a)+1/3*exp(4*a);
L:=round(100*m);
putpixel(30+r,570-L,clblue);
a:=a+0.001;
r:=round(100*a);
end;
for i:=1 to 6 do
begin
rx:=round(100*xx[i]);
ry1:=round(100*yy[i]);
setpencolor(clred);
CIRCLE(30+rx,570-ry1,4);
setpencolor(clblack);
ry2:=round(100*zz[i]);
CIRCLE(30+rx,570-ry2,4);
end;
Распишите пожалуйста все по действиям, и еще один вопрос.Почему второй и третий графики(черные и красные круглешки) идут с разным шагом?)))не могу разобраться в этом методе вообще никак(((прошу помогите.Спасибо огромное!!!
end.
Roman967 вне форума Ответить с цитированием
Старый 23.05.2010, 16:58   #2
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

сделайте форматирование тегами, пожалуйста
capta1n вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Рунге - Кутта в моделировании. (Delphi) Alexandrx Помощь студентам 0 19.05.2010 23:34
Не работает метод Рунге - Кутта 2-го порядка CsandeRR Общие вопросы C/C++ 1 13.04.2010 16:27
Метод Рунге-Кутта (Си) PPPPPP Общие вопросы C/C++ 1 13.04.2010 00:55
Метод Рунге-Кутта (Си) PPPPPP Помощь студентам 2 12.04.2010 02:58