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


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

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

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

Ваша тема схожа с этими, рекомендую внимательно прочитать

Полосовой фильтр второго порядка
Решение уравнения методом Рунге-Кутты 4-го порядка

Старый 19.12.2014, 21:32   #2 (permalink)
kot64rus
Новичок
 
Регистрация: 19.12.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Да в принципе можно на любом другом языке. Но желательно паскаль
kot64rus вне форума   Ответить с цитированием
Старый 20.12.2014, 11:51   #3 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,360
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от kot64rus Посмотреть сообщение
Здравствуйте.
И Вам не хворать.
Цитата:
Сообщение от kot64rus Посмотреть сообщение
Скинул рисунок с задачей.
Спасибо.
Цитата:
Сообщение от kot64rus Посмотреть сообщение
Помогите пожалуйста с ней.
Это вряд ли. Тут такой матёрый жирный курсовик на недельку работы проглядывает.
Цитата:
Сообщение от kot64rus Посмотреть сообщение
Графики я уже сам построю.
Замечательно!
Цитата:
Сообщение от kot64rus Посмотреть сообщение
Мне главное понять как программу написать
Дык... для этого надо было присутствовать на лекциях по теории колебаний, к которым Вас адресуют, или по крайней мере располагать конспектом этих лекций, да еще и разобраться в этой науке. А в лекциях наверняка прописано, как обращаться с такими вот экзотическими осцилляторами. И формулы даны.
Но если так, схематично...
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).

Вот как-то так. Там еще требуется провести исследование устойчивости равновесных точек, а вот что под этим понимается и как оно делается - извините, просто не знаю.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 20.12.2014, 15:51   #4 (permalink)
kot64rus
Новичок
 
Регистрация: 19.12.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
И Вам не хворать.Спасибо.Это вряд ли. Тут такой матёрый жирный курсовик на недельку работы проглядывает.Замечательно!Дык... для этого надо было присутствовать на лекциях по теории колебаний, к которым Вас адресуют, или по крайней мере располагать конспектом этих лекций, да еще и разобраться в этой науке. А в лекциях наверняка прописано, как обращаться с такими вот экзотическими осцилляторами. И формулы даны.
Но если так, схематично...
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).

Вот как-то так. Там еще требуется провести исследование устойчивости равновесных точек, а вот что под этим понимается и как оно делается - извините, просто не знаю.
Спасибо =). Постараюсь разобраться. Надеюсь получится
kot64rus вне форума   Ответить с цитированием
Старый 20.12.2014, 23:38   #5 (permalink)
kot64rus
Новичок
 
Регистрация: 19.12.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Блин, похоже я с математикой совсем раздружился. Я совсем не догоняю, как решать это =(
Можно как нибудь на примере. Куда что подставить надо. Весь день сижу понять не могу(
kot64rus вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 21.12.2014, 10:19   #6 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,360
Сказал(а) спасибо: 289
Поблагодарили 507 раз(а) в 165 сообщениях
Репутация: 91953
По умолчанию

Цитата:
Сообщение от kot64rus Посмотреть сообщение
Блин, похоже я с математикой совсем раздружился. Я совсем не догоняю, как решать это =( Можно как нибудь на примере. Куда что подставить надо. Весь день сижу понять не могу(
Да нет вопросов! Пожалуйста.
Одно замечание.
Чтобы осциллятор начал реально осциллировать, исходную скорость следует задавать отрицательной. В противном случае получится просто однонаправленное движение с выходом скорости на некую константу.
Итак:
Код:
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.jpg
А вот как там "исследовать точки равновесия на устойчивость" - это я не в курсе.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 21.12.2014, 14:46   #7 (permalink)
kot64rus
Новичок
 
Регистрация: 19.12.2014
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ух, спасибо большое. А то уже не знал что делать. Выручили =)
kot64rus вне форума   Ответить с цитированием
Ads

Яндекс

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

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

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

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




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

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