Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.02.2013
Сообщений: 22
1

Решение дифференциального уравнения методом Рунге-Кутта-Мерсона

09.04.2014, 15:54. Показов 489. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне дана функция y^n=f*(y^n-1,...,t), n=от 1 до 3. Нужно ее решить при заданых начальных условиях методом Рунге-Кутта-Мерсона.

У меня есть похожая функция только там метод рунге-кутта и функция без изменения порядка - y'=f(y,t). Можете помочь переделать под мой вариант?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
uses crt,graph;
var x0,y0,gm,gd,i,n:integer;
mx,my,s,h,a,b:real;
x,y:array[0..100] of real;
function f(y,x:real):real;
begin
f:=x+y;
end;
begin
writeln('Vvedit interval [a;b]');
readln(a,b);
writeln('Vvedit po4atkovi umovy');
readln(y[0]);
x[0]:=a;
writeln('Vvedit krok h');
readln(h);
n:=round((b-a)/h);
for i:=1 to n do
begin
s:=h*f(y[i-1],x[i-1]);
y[i]:=s;
s:=h*f(y[i-1]+s/2,x[i-1]+h/2);
y[i]:=y[i]+2*s;
s:=h*f(y[i-1]+s/2,x[i-1]+h/2);
y[i]:=y[i]+2*s;
s:=h*f(y[i-1]+s,x[i-1]+h/2);
y[i]:=y[i]+s;
y[i]:=y[i-1]+y[i]/6;
x[i]:=x[i-1]+h;
end;
for i:=0 to n do
writeln(x[i]:2:3,' ',y[i]:2:3);
readln;
gd:=detect;
initgraph(gd,gm,'');
if graphresult<>grok then halt(1);
a:=y[0];
b:=y[0];
for i:=1 to n do
begin
if a<y[i] then a:=y[i];
if b>y[i] then b:=y[i];
end;
mx:=(getmaxx-20)/(x[n]-x[0]);
my:=(getmaxy-20)/(a-b);
y0:=round(a*my+10);
x0:=round(-x[0]*mx+10);
line(x0,0,x0,getmaxy);
line(0,y0,getmaxx,y0);
setcolor(red);
for i:=1 to n do
line(round(x[i]*mx-x0),round(-y[i]*my+y0),round(x[i-1]*mx-x0),round(-y[i-1]*my+y0));
readln;
closegraph;
writeln(b);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2014, 15:54
Ответы с готовыми решениями:

Программа для решения дифференциального уравнения второго порядка методом Рунге-Кутта-Мерсона
Программа в Turbo Pascal для решения диференциального уравнения второго порядка методом...

Решение дифференциального уравнения методом Рунге-Кутты
Используя метод Рунге-Кутты решить дифференциальное уравнение y'=cos(8y)*sin(9x) в интервале при...

Решение систем ОДУ методом Кутта-Мерсона
Помогите реализовать программу по методу кутта-мерсона...

Решение ОДУ: задача Коши методом Рунге-Кутта
Всем доброго времени суток! Помогите,пожалуйста,реализовать на паскале решение задачи. ...

0
09.04.2014, 15:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2014, 15:54
Помогаю со студенческими работами здесь

Численное решение дифференциального уравнения методом Эйлера
Нужно разработать алгоритм и составить программу для численного решения дифференциального уравнения...

Решение дифференциального уравнения методом Рунге-Кутта четвертого порядка
Решить дифференциальное уравнение y'-(y/x) = x*sin(x) X принадлежит y(пи/2)= пи y= 2x-x*cos(x)

Решение диф. уравнения 1-го порядка методом Рунге-Кутта
Здраствуйте, извините за обращение, задание поди пустяковое, но и с ним мне нужна помощь(...

Метод Рунге - Кутта - Мерсона
Я написала из книги программу по методу Рунге - Кутты - Мерсона. Выдает ошибки. Я уже не знаю, что...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru