|
1 / 1 / 0
Регистрация: 15.07.2015
Сообщений: 60
|
|||||||||||
Дифференциальное неоднородное уравнение второго порядка с постоянными коэффициентами30.07.2018, 22:43. Показов 3135. Ответов 14
Метки нет (Все метки)
доброго времени суток!)
уже пару недель бьюсь над очередным куском программы моей и что-то мне подсказывает что вполне вероятно ответ очевиден, вот только у меня уже глаз замылился и я не вижу ошибки((( есть диф ур: M*q''+K*q+C*q'=-P я это пытаюсь решить в следующем виде: основной скрипт
1я функция::: (для поиска частного решения) 1я функция
0
|
|||||||||||
| 30.07.2018, 22:43 | |
|
Ответы с готовыми решениями:
14
Линейное неоднородное уравнение второго порядка Дифференциальное уравнение второго порядка
|
|
1 / 1 / 0
Регистрация: 15.07.2015
Сообщений: 60
|
||||||
| 30.07.2018, 22:44 [ТС] | ||||||
|
2я функция:::
(для поиска общего решения) 2я функция
т.е. по факту получается что этим кодом решается диф ур M*q''+K*q+C*q'=-P НО абсолютно без учета правой части. т.е. как будто M*q''+K*q+C*q'=0 использовала тот же алгоритм для другой задачи ранее там тоже было неоднородное диф ур - и там все прошло гладко подскажите пожалуйста, где я ошибаюсь?? я просто уже на миллиард раз все просмотрела и не вижу где именно ошибка? заранее спасибо!))))
0
|
||||||
|
|
|
| 02.08.2018, 14:17 | |
Сообщение было отмечено belan_es как решение
Решение
belan_es, друг мой, между нами говоря матлаб не очень хорош в символьных вычислениях, для решения ОДУ в нем лучше использовать численные решатели, ode45 например.
Уравнение представляется в виде: q'' = (P - K*q - C*q')/M задаются начальные условия и интервал времени, и относительно спокойно решается, причем M, P, K, C могут быть векторами и матрицами. Или тут вся загвоздка получить результат именно в аналитическом виде (формулой)? *спинным мозгом чувствую (и мои скромные музыкальные познания), что идет расчет колебаний пианино, основной тон и обертоны, а это интересно
2
|
|
|
1 / 1 / 0
Регистрация: 15.07.2015
Сообщений: 60
|
||||||||||||||||
| 03.08.2018, 13:16 [ТС] | ||||||||||||||||
|
спасибо за отклик!)
увы и ах все не так поэтично) но оттого не менее интересно (по крайней мере для меня))) речь тут не про колебания конкретно пианино - хотя тоже про колебания) это основное уравнение равновесия в динамике сооружений/конструкций (для модального анализа) - хотя и в обычном динамическом расчете уравнение выглядит примерно так же и соответственно q - это основная модальная координата (модальное перемещение) Р - это внешняя прикладываемая к конструкции модальная сила (в моем случае это сила инерции от землетрясения) М, К, С - это модальные масса, жесткость и вязкость соответственно я уже слышала что матлаб не очень силен в символьных вычислениях, но проблема в том что решение нужно в том числе и в символьном виде + к тому же мне нужно видеть отдельно две части решения (т.е. однородное решение и частное решение по отдельности) - т.к. они представляют разные модальные величины которые мне интересны и которые мне необходимо так же выделить и найти к тому же этот алгоритм все с теми же символьными вычислениями я уже использовала в предыдущей задаче и там все нашлось и сошлось как надо я уже переписала код, облегчив его по максимуму (чтобы на максимально простом примере найти ошибку) и мне кажется что моя логика правильная, т.е. последовательность действий для решения диф ур, но все равно не получается то что надо( основной код: Кликните здесь для просмотра всего текста
1я функция: Кликните здесь для просмотра всего текста
2я фунция: Кликните здесь для просмотра всего текста
и после вызова этих двух функций в основной скрипт я делаю 3 проверки правильности нахождения констант интегрирования: а именно EQS1_3 для частного решения и ff1 и ff2 для общего решения и эти три условия выполняются может у меня закралась какая то ошибка в коде??( спасибо!)
0
|
||||||||||||||||
|
|
|
| 03.08.2018, 14:09 | |
|
belan_es, врядли я смогу разобраться и найти ошибку
я правильно понял, что ты задаешь решение в общем виде Qperm=AAAA*exp(1i*omega*tt);, вычисляются производные и коэффициенты находятся из уравнения и условий?А можно где-то посмотреть математическую модель?
1
|
|
|
1 / 1 / 0
Регистрация: 15.07.2015
Сообщений: 60
|
|
| 03.08.2018, 15:10 [ТС] | |
|
прикрепила модель
Qperm=AAAA*exp(1i*omega*tt) - это как раз частное решение) общее ищется потом в функции tes_1001
0
|
|
|
1 / 1 / 0
Регистрация: 15.07.2015
Сообщений: 60
|
|
| 03.08.2018, 21:31 [ТС] | |
|
ок, вопрос закрыт) разрешила проблему) она была не в матлабе и не в ходе решения диф ур - там все правильно
я ошиблась в самом начале при вычислении внешних сил)
1
|
|
|
1 / 1 / 0
Регистрация: 15.07.2015
Сообщений: 60
|
|
| 05.08.2018, 15:48 [ТС] | |
|
да, это можно сказать исходники. а вообще все исходные я задаю в начале скрипта
там где написано "INPUT"
0
|
|
|
|
|||||||||||
| 07.08.2018, 14:23 | |||||||||||
|
belan_es, пробовал решить твое уравнение численно:
функция системы (с коэффициентами) dsys.m:
*кстати, хотел спросить, почему в качестве решения ты берешь просто гармоническое колебание a*exp(i*w*t)? В природе они обычно затухающие, т.е. a*exp(-b*t)*exp(i*w*t) = a*exp( (-b+i*w)*t ) или имеют несколько гармонических составляющих ( a0 + a1*exp(i*w1*t) + a2*exp(i*w2*t) + ... )
1
|
|||||||||||
|
|
||||||
| 07.08.2018, 15:36 | ||||||
Сообщение было отмечено belan_es как решение
Решение
Стало мне любопытно, что там за колебания и какая собственная частота, поэтому добавил преобразование Фурье
![]() *также поменял знак коэфф-та С, чтобы колебания не были возрастающими и немного исправил скрипт: Кликните здесь для просмотра всего текста
PS: чтобы посмотреть собственные колебания, нужно натянуть струну, т.е. поставить начальные условия q0 = [1, 0]; и в системе Р домножить на ноль. Получим красивую затухающую косинусоиду. (Максимум спектра также на 0.622 рад/с)
1
|
||||||
| 07.08.2018, 15:56 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 15.07.2015
Сообщений: 60
|
|
| 19.08.2018, 22:36 [ТС] | |
|
да да) это именно то чем я и занимаюсь)))
собственные частоты колебаний + собственные формы при свободных колебаниях. и далее законы движения в вынужденных колебаниях. и вынуждающая сила - землетрясение. ну в моем случае упрощенный вариант так сказать с землятрясением в форме гармонического колебания по синусу. хотя могло бы быть и по другому закону) я надеюсь в скорости завершить скрипт - так что если все еще будет интересно могу скинуть - хотя объём там не маленький) (виной тому вполне вероятно мое не совершенное владение матлабом - возможно многие вещи можно было сделать через циклы, но там суть еще в том что нужны были и символьные решения)
0
|
|
|
|
||||||
| 20.08.2018, 10:27 | ||||||
|
belan_es, слушай, я совсем забыл, в матлабе есть замечательная функция dsolve (описание) как раз для аналитического решения диффуров:
0
|
||||||
| 20.08.2018, 10:27 | |
|
Помогаю со студенческими работами здесь
15
Решить дифференциальное уравнение второго порядка Нелинейное дифференциальное уравнение второго порядка И опять дифференциальное уравнение второго порядка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|