R
Rumit
Добрый день ) я тут новенький - но вот приперло - знакомый попросил для дочки - сам я давно не выпускник да и програмист еще тот(((
Может у вас есть кто?
есть условие:
Численное решение задачи Коши для обыкновенных дифференциальных уравнений
Написать программу (можно delphi pascal basic c++) решения дифференциальных уравнений методом Рунге-Кутта четвертого порядка точности
есть код, написанный на Pascal - можно его адаптировать под уравнение приведенное в таблице на рисунке. Или написать свой код (Pascal Delphi)!
Очень надо - хелп!
PROGRAM RKutt;
uses crt;
const
nmax=8;
type
vec=array[1..nmax] of Real;
var
h,a,b:Integer; i:Integer;
procedure der(x:Real; y:vec; var f:vec);
var
ki:array[1..4] of real;
begin
for i:=1 to 4 do
f:=(h/6)*ki+2*ki[2]+2*ki[3]+ki[4];
y[i+1]:=y[1]+h*y;
y:=x*x+5;
end;
procedure RK4(n:Integer;x,h:Real; var y:vec);
var
i,j:Integer;
h1,h2,q:Real;
y0,y1,f:Vec;
begin
h1:=0;h2:=h1/2;
for i:=1 to n do begin
y0:=y;
y1:=y;
end;
for j:=1 to 4 do begin
der(x+h1,y,f);
if j=3 then h1:=h else h1:=h2;
for i:=1 to n do begin
q:=h1*f;
y:=y0+q;
y1:=y1+q/3;
end;
end;
for i:=1 to n do
y:=y1;
end;
var
k,n:Integer;h1,y1:Real;
k1,k2,k3,k4:Integer;
x,ki:Array[1..4] of real;
y:Array[1..4] of real;
begin
writeln('Enter a=');
Readln(a);
writeln('Enter b=');
Readlno;
writeln('Enter h1=');
Readln(h1);
writeln('Enter k=');
Readln(k);
n:=3;
h1:=a;
ki[1]:=k;
for i:=1 to n do begin
y[i+1]:=y1+(h1/6)*(Ki+2*ki[2]+2*ki[3]+ki[4]);
writeln(y[i+1]);
end;
while h1<=b do begin
h1:=h1+h;
end;
Readln;
end.
Может у вас есть кто?
есть условие:
Численное решение задачи Коши для обыкновенных дифференциальных уравнений
Написать программу (можно delphi pascal basic c++) решения дифференциальных уравнений методом Рунге-Кутта четвертого порядка точности
есть код, написанный на Pascal - можно его адаптировать под уравнение приведенное в таблице на рисунке. Или написать свой код (Pascal Delphi)!
Очень надо - хелп!
PROGRAM RKutt;
uses crt;
const
nmax=8;
type
vec=array[1..nmax] of Real;
var
h,a,b:Integer; i:Integer;
procedure der(x:Real; y:vec; var f:vec);
var
ki:array[1..4] of real;
begin
for i:=1 to 4 do
f:=(h/6)*ki+2*ki[2]+2*ki[3]+ki[4];
y[i+1]:=y[1]+h*y;
y:=x*x+5;
end;
procedure RK4(n:Integer;x,h:Real; var y:vec);
var
i,j:Integer;
h1,h2,q:Real;
y0,y1,f:Vec;
begin
h1:=0;h2:=h1/2;
for i:=1 to n do begin
y0:=y;
y1:=y;
end;
for j:=1 to 4 do begin
der(x+h1,y,f);
if j=3 then h1:=h else h1:=h2;
for i:=1 to n do begin
q:=h1*f;
y:=y0+q;
y1:=y1+q/3;
end;
end;
for i:=1 to n do
y:=y1;
end;
var
k,n:Integer;h1,y1:Real;
k1,k2,k3,k4:Integer;
x,ki:Array[1..4] of real;
y:Array[1..4] of real;
begin
writeln('Enter a=');
Readln(a);
writeln('Enter b=');
Readlno;
writeln('Enter h1=');
Readln(h1);
writeln('Enter k=');
Readln(k);
n:=3;
h1:=a;
ki[1]:=k;
for i:=1 to n do begin
y[i+1]:=y1+(h1/6)*(Ki+2*ki[2]+2*ki[3]+ki[4]);
writeln(y[i+1]);
end;
while h1<=b do begin
h1:=h1+h;
end;
Readln;
end.