Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [Paskal] решение систем дифференциальных уравнений методом Эйлера( доработка) (http://forum.oszone.net/showthread.php?t=194401)

Killer92 19-12-2010 13:21 1569497

[Paskal] решение систем дифференциальных уравнений методом Эйлера( доработка)
 
Вложений: 1
помогите, мне нужно из этой программы сделать программу для решения систем дифференциальных уравнений методом Эйлера на Турбо Паскале. Или напишите пожалуйста другую программу для решения систем дифференциальных уравнений методом Эйлера на Турбо Паскале.
Program Kurovaya;
{ ********************************************************
Решение задачи Коши для дифференциального уравнения
первого порядка методами:
Эйлера, Эйлера-Коши
******************************************************** }
uses Crt;
const c:array[1..4] of real = (0,0.5,0.5,1);
type
coef=array[0..4] of real;
var
i,j,m:integer;
a,b,h,x,y,y1,y2:real;
k0,k:coef;
ch:char;
{ ------------------------------------------------
Подпрограммы }
{ Правая часть дифференциального уравнения функции- f(x,y)}
function f(x,y:real):real;
begin
f:= x+y;
end;
{ -------------------------------------------------------- }
procedure Pausa;
begin
writeln;
writeln (' Для продолжения нажмите любую клавишу...');
repeat ch:=readkey
until ch <> '';
end;
{ ------------------------------------------------
Общая программа }

begin
clrscr;
writeln ('Введите значения концов отрезка* [a,b]');
read (a,b);
writeln ('Введите начальное значение функции y0 при x=x0');
read (y);
writeln (' Введите число значений функции на промежутке [a,b]');
read (m);
x:=a;
h:=(b-a)/m;
y1:=y;
y2:=y;
writeln (' Метод Эйлера, Метод Эйлера-Коши');
writeln ('x=',x:5:2,'y1=',y1:9:6,'y2=',y2:9:6');
for i:=1 to m do
begin
y1:=y1+h*f(x,y); { <-----------| Metod Eilera}
for j:=1 to 2 do
k0[j]:=h*f(x+2*c[j]*h, y2+2*c[j]*k0[j-1]);
y2:=y2+(k0[1]+k0[2])/2; { <-----------| Metod Eilera-Koshi}
x:=x+h;
writeln ('x=',x:5:2,' y1=',y1:9:6,' y2=',y2:9:6');
end;
pausa;
end.


Время: 14:29.

Время: 14:29.
© OSzone.net 2001-