• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Изменить программу интегрирования методом второго порядка. Pascal

  • Автор темы Автор темы kot64rus
  • Дата начала Дата начала

kot64rus

Ученик
Регистрация
19 Дек 2014
Сообщения
6
Реакции
0
Баллы
0
Изменить программу интегрирования методом второго порядка. 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. Но у меня не получается преобразовать из первого порядка во второй.
Помогите пожауйста.:tehnari_ru_837:
 

Вложения

  • Рисунок1.png.webp
    Рисунок1.png.webp
    30.1 KB · Просмотры: 56
Уважаемый kot64rus!
Извините, как-то ухитрился пропустить Ваш запрос.
По сути же - так:
1. Методы численного решения линейных дифференциальных уравнений, в том числе Рунге-Кутты четвертого порядка, у меня подробно расписаны здесь: http://www.tehnari.ru/f41/t96417/.
2. Как перейти от уравнения второго порядка к системе линейных уравнений и уже её решить ясно из той (моей) программы, которую Вы приводите.
Осталось соединить эти две премудрости, с чем Вы, я убежден, справитесь самостоятельно без особого труда. Было бы желание.

P.S. И совершенно ни к чему было начинать новую тему по той же задаче. Вполне можно было продолжить эту: http://www.tehnari.ru/f41/t100188/.
 
Назад
Сверху