![]() |
[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-