|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.05.2010, 18:22 | #1 |
Регистрация: 12.12.2009
Сообщений: 3
|
ПРОГРАММА В РУНГЕ-КУТТЕ
Помогите пожалуйста разобраться с прогой.Нужно по шагам расписать каждое действие и указать за что отвечает каждая переменная.Вот сама прога:
program RungeKutt; uses GraphABC,crt; const e=2.71; x0=0; xk=1; h=0.05; kv=1; 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]:=(exp(x*ln(e))+1)-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]:=2.5; y0[2]:=1.5; for i:=1 to 100 do begin y[i]:=y0[i]; z[i]:=y[i]; end; k:=0; repeat RGK; v:=cos(x)+sin(x)+1+(1/2)*exp(x*ln(e)); 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('Для просмотра графика нажмите "Enter"'); 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); {Стрелка на оси “Y”} line(30,30,27,40); line(30,30,33,40); {Стрелка на оси “X”} line(570,570,560,567); line(570,570,560,573); textout(15,40,'Y'); textout(560,575,'X'); a:=0; for i:=1 to 1500 do begin M:=cos(a)+sin(a)+1+(1/2)*exp(a*ln(e)); L:=round(100*m); putpixel(30+r,570-L,clred); 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(clblue); CIRCLE(30+rx,570-ry1,3); setpencolor(clgreen); ry2:=round(100*zz[i]); CIRCLE(30+rx,570-ry2,3); end; end. Помогите пожалуйста!Очень надо!В долгу не останусь.Спасибо. Последний раз редактировалось Roman967; 20.05.2010 в 18:25. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рунге- Кутта на Си | Ekатерина | Помощь студентам | 5 | 28.04.2010 19:31 |
Метод Рунге-Кутта (Си) | PPPPPP | Общие вопросы C/C++ | 1 | 13.04.2010 00:55 |
Метод Рунге-Кутта (Си) | PPPPPP | Помощь студентам | 2 | 12.04.2010 02:58 |
метод Рунге | sneZZZinka | Помощь студентам | 1 | 21.12.2009 17:31 |
Чиленное интегрирование.Метод Рунге | sneZZZinka | Помощь студентам | 0 | 20.12.2009 19:29 |