Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 06.03.2015, 00:02   #1 (permalink)
kot64rus
Новичок
 
Регистрация: 19.12.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Изменить программу интегрирования методом второго порядка. Pascal

Здравствуйте. Возникла проблема с задачей. Вот она и ее решение:
Const
Dt=0.1;
V=-0.5;
Q=0.0;

Var
f:Text;
V_old,V_new,Q_old,Q_new,t:Real;
i:integer;

Begin
Assign(f,'D:\Result1.txt');
Rewrite(f);
t:=0;
Q_old:=Q;
V_old:=V;
Writeln(f,t:5:1,Q:15:3,V:15:3);
for i:=1 to 350 do
begin
t:=Dt*i;
Q_new:=Q_old+V_old*Dt;
V_new:=V_old+Exp(-Q_old)*(Exp(-Q_old)-1)*Dt;
Writeln(f,t:5:1,Q_new:15:3,V_new:15:3);
Q_old:=Q_new;
V_old:=V_new;
end;
Close(f);
End.

Тут реализуется метод интегрирования даже не второго, а первого
порядка, т.е. в один шаг. Он страшно неточный, поэтому решение
раскачивается и все значения функций быстро нарастают. Поэтому
нужно использовать метод хотя бы второго порядка (в два шага),
а еще лучше - четвертого Рунге-Кутты. И шаг интегрирования должен быть примерно 0.001.
Должны быть периодические функции. Шаг задаю, получаются периодические все правильно. Вместо от 1до350 я поставил от 1до35000. Но у меня не получается преобразовать из первого порядка во второй.
Помогите пожауйста.
Миниатюры
dhenoiie1.png  
kot64rus вне форума   Ответить с цитированием

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

В данных темах наверняка есть ответы которые прояснят ситуацию

Составить программу интегрирования методом второго порядка. Pascal
Полосовой фильтр второго порядка

Старый 13.03.2015, 10:11   #2 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,347
Сказал(а) спасибо: 288
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Уважаемый kot64rus!
Извините, как-то ухитрился пропустить Ваш запрос.
По сути же - так:
1. Методы численного решения линейных дифференциальных уравнений, в том числе Рунге-Кутты четвертого порядка, у меня подробно расписаны здесь: Численные методы решения дифференциальных уравнений.
2. Как перейти от уравнения второго порядка к системе линейных уравнений и уже её решить ясно из той (моей) программы, которую Вы приводите.
Осталось соединить эти две премудрости, с чем Вы, я убежден, справитесь самостоятельно без особого труда. Было бы желание.

P.S. И совершенно ни к чему было начинать новую тему по той же задаче. Вполне можно было продолжить эту: Составить программу интегрирования методом второго порядка. Pascal.
__________________
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, время: 21:25.

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