Технический форум купить трафик таргетированный
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 16.05.2014, 12:17   #1 (permalink)
Victor81
Новичок
 
Регистрация: 16.05.2014
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Решение уравнения методом Рунге-Кутты 4-го порядка

Владимир, помогите и мне пожалуйста, готов выслать n-е кол-во шоколадок по любому адресу) Задача похожа, но...
совсем не соображу, как сделать решение 4-го порядка, буду очень признателен за решение!
Миниатюры
1.jpg   2.jpg  
Victor81 вне форума   Ответить с цитированием

Старый 16.05.2014, 12:17
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Если воспользоваться поиском, то можно найти много полезного по вашему запросу

Метод Рунге-Кутта 2-го порядка, Паскаль
Решение нелинейного уравнения методом деления отрезка пополам

Старый 16.05.2014, 12:44   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 24,724
Сказал(а) спасибо: 197
Поблагодарили 367 раз(а) в 120 сообщениях
Репутация: 73797
По умолчанию

Цитата:
Сообщение от Victor81 Посмотреть сообщение
совсем не соображу, как сделать решение 4-го порядка, буду очень признателен за решение!
К сожалению, сейчас очень занят, поэтому ограничусь советами. Начните с изучения сути метода: Метод Рунге — Кутты — Википедия, а что касается программы, так делал я парочку. Вот Решить дифференциальное уравнение в Паскале и вот Методом Рунге-Кутта найти решение дифференциальных уравнений. Так что "по образу и подобию".
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 16.05.2014, 13:29   #3 (permalink)
Victor81
Новичок
 
Регистрация: 16.05.2014
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
К сожалению, сейчас очень занят, поэтому ограничусь советами. Начните с изучения сути метода: [Метод Рунге — Кутты — Википедия, а что касается программы, так делал я парочку. Вот и . Так что "по образу и подобию".

Эх, жаль..
Пробовал я, но что то не получается, видимо плохо пробовал..
Время поджимает, а разобраться не получается, чтож мне вариант со вторым порядком то не достался..
Спасибо за ссылки, глазами вижу, что ответ на экране, а собрать все вместе не получается..
Victor81 вне форума   Ответить с цитированием
Старый 17.05.2014, 12:06   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 24,724
Сказал(а) спасибо: 197
Поблагодарили 367 раз(а) в 120 сообщениях
Репутация: 73797
По умолчанию

Так, ну если еще приговор Святейшей Инкпреподии не приведен в исполнение, то, возможно, этот листинг поможет Вам избежать ужасной участи:
Код:
Const
 h=0.1;
 N=10;

Var
 X,Y:Array[0..N] of Real;
 K1,K2,K3,K4,Sum:Real;
 i:Word;

Function F(Xf,Yf:Real):Real;
begin
 F:=Cos(Xf*4+Yf)+(Xf-Yf)*7;
end;

Function fK1(Xk,Yk:Real):Real;
begin
 fK1:=F(Xk,Yk);
end;

Function fK2(Xk,Yk,Hk,Q:Real):Real;
begin
 fK2:=F(Xk+Hk/2,Yk+Hk/2*Q);
end;

Function fK3(Xk,Yk,Hk,Q:Real):Real;
begin
 fK3:=F(Xk+Hk/2,Yk+Hk/2*Q);
end;

Function fK4(Xk,Yk,Hk,Q:Real):Real;
begin
 fK4:=F(Xk+Hk,Yk+Hk*Q);
end;

BEGIN
 X[0]:=0;
 Y[0]:=0;
 WriteLn(' X           Y');
 Writeln(X[0]:4:2,Y[0]:15:5);
 For i:=1 to N do
  begin
   X[i]:=X[i-1]+h;
   K1:=fK1(X[i-1],Y[i-1]);
   K2:=fK2(X[i-1],Y[i-1],h,K1);
   K3:=fK3(X[i-1],Y[i-1],h,K2);
   K4:=fK4(X[i-1],Y[i-1],h,K3);
   Y[i]:=Y[i-1]+h/6*(K1+2.0*K2+2.0*K3+K4);
   Writeln(X[i]:4:2,Y[i]:15:5);
  end;
 Sum:=(Sqr(Y[0])+Sqr(Y[N]))/3*h;
 for i:=1 to (N div 2) do
  Sum:=Sum+4.0*h/3.0*Sqr(Y[2*i-1]);
 for i:=2 to (N div 2) do
  Sum:=Sum+2.0*h/3.0*Sqr(Y[2*i-2]);
 Writeln('Heat: ', Sum:0:5);
 Readln
End.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 01:53.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.