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

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

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

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

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

kot64rus

Ученик
Регистрация
19 Дек 2014
Сообщения
6
Реакции
0
Баллы
0
Составить программу интегрирования методом второго порядка. Pascal

Здравствуйте. Скинул рисунок с задачей. Помогите пожалуйста с ней. Графики я уже сам построю. Мне главное понять как программу написать
 

Вложения

  • Рисунок1.png.webp
    Рисунок1.png.webp
    30.1 KB · Просмотры: 115
Да в принципе можно на любом другом языке. Но желательно паскаль
 
И Вам не хворать.
Скинул рисунок с задачей.
Спасибо.
Помогите пожалуйста с ней.
Это вряд ли. Тут такой матёрый жирный курсовик на недельку работы проглядывает.
Графики я уже сам построю.
Замечательно!
Мне главное понять как программу написать
Дык... для этого надо было присутствовать на лекциях по теории колебаний, к которым Вас адресуют, или по крайней мере располагать конспектом этих лекций, да еще и разобраться в этой науке. А в лекциях наверняка прописано, как обращаться с такими вот экзотическими осцилляторами. И формулы даны.
Но если так, схематично...
1. Имеем существенно-нелинейное дифференциальное уравнение второго порядка с граничными условиями, каковое нужно решить.
2. Решение сводится прежде всего к преобразованию уравнения второго порядка к системе уравнений первого порядка. Делается это так.
а) Исходное уравнение:
d²q/dt² = exp(-q)(exp(-q)-1)
б) Вводим новую переменную v = dq/dt
в) Записываем систему
dv/dt = exp(-q)(exp(-q)-1) = f(q)
dq/dt = v = g(v)

3. Решаем систему численно. Поскольку Вам предлагается использовать простой метод второго порядка, то воспользуемся простым (немодифицированным) методом Эйлера. Тут так.
а) Задаем шаг по времени Δt.
б) Допустим, мы знаем значения функций q(t) и v(t) для какого-то i-того значения t, т.е. мы знаем q(ti) и v(ti). Тогда мы определяем значения q(ti+Δt) и v(ti+Δt), как
v(ti+Δt) = v(ti) + f(q(ti))*Δt
q(ti+Δt) = q(ti) + g(v(ti))*Δt
в) Стартуя от данных начальных условий, строим функции и графики q(t) и v(t).

Вот как-то так. Там еще требуется провести исследование устойчивости равновесных точек, а вот что под этим понимается и как оно делается - извините, просто не знаю.
 
И Вам не хворать.Спасибо.Это вряд ли. Тут такой матёрый жирный курсовик на недельку работы проглядывает.Замечательно!Дык... для этого надо было присутствовать на лекциях по теории колебаний, к которым Вас адресуют, или по крайней мере располагать конспектом этих лекций, да еще и разобраться в этой науке. А в лекциях наверняка прописано, как обращаться с такими вот экзотическими осцилляторами. И формулы даны.
Но если так, схематично...
1. Имеем существенно-нелинейное дифференциальное уравнение второго порядка с граничными условиями, каковое нужно решить.
2. Решение сводится прежде всего к преобразованию уравнения второго порядка к системе уравнений первого порядка. Делается это так.
а) Исходное уравнение:
d²q/dt² = exp(-q)(exp(-q)-1)
б) Вводим новую переменную v = dq/dt
в) Записываем систему
dv/dt = exp(-q)(exp(-q)-1) = f(q)
dq/dt = v = g(v)

3. Решаем систему численно. Поскольку Вам предлагается использовать простой метод второго порядка, то воспользуемся простым (немодифицированным) методом Эйлера. Тут так.
а) Задаем шаг по времени Δt.
б) Допустим, мы знаем значения функций q(t) и v(t) для какого-то i-того значения t, т.е. мы знаем q(ti) и v(ti). Тогда мы определяем значения q(ti+Δt) и v(ti+Δt), как
v(ti+Δt) = v(ti) + f(q(ti))*Δt
q(ti+Δt) = q(ti) + g(v(ti))*Δt
в) Стартуя от данных начальных условий, строим функции и графики q(t) и v(t).

Вот как-то так. Там еще требуется провести исследование устойчивости равновесных точек, а вот что под этим понимается и как оно делается - извините, просто не знаю.

Спасибо =). Постараюсь разобраться. Надеюсь получится
 
Блин, похоже я с математикой совсем раздружился. Я совсем не догоняю, как решать это =(
Можно как нибудь на примере. Куда что подставить надо. Весь день сижу понять не могу(
 
Блин, похоже я с математикой совсем раздружился. Я совсем не догоняю, как решать это =( Можно как нибудь на примере. Куда что подставить надо. Весь день сижу понять не могу(
Да нет вопросов! Пожалуйста.
Одно замечание.
Чтобы осциллятор начал реально осциллировать, исходную скорость следует задавать отрицательной. В противном случае получится просто однонаправленное движение с выходом скорости на некую константу.
Итак:
Код:
Const
 Dt=0.1;
 V=-0.5;
 Q=0.0;

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

Begin
 Assign(f,'D:\Result1.dat');
 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.
Естественно, имя файла и путь к нему поставьте свои.
Результат:
Result_1.webp
А вот как там "исследовать точки равновесия на устойчивость" - это я не в курсе.
 
ух, спасибо большое. А то уже не знал что делать. Выручили =)
 
Назад
Сверху