Форум программистов, компьютерный форум, киберфорум
Численные методы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 735

Найти численное решение системы нелинейных неоднородных дифференциальных уравнений

22.03.2021, 12:24. Показов 1238. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Прошу помощи в отыскании решения приведённой ниже системы диф. уравнений. Это, так скажу, "ответвление" от основной темы по методу Драгилёва (или ДрАгилева - поправьте, если ошибаюсь), созданной мной же некоторое время назад (вопрос о решении системы нелинейных уравнений).
Итак, к конкретике. Если я правильно понял и применил метод Драгилёва, то для решения моей исходной СНУ необходимо решить такую СДУ (вид после подстановки всех константных переменных (в универсальном виде - тьма - выкладывать не буду, наверное)):
Необходимо решить такую СДУ
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases} & \text{\frac{dx1}{dt} = 1195320000*x4 - 5976600000*x3 - 1643700000*x2 - x1*(8965200*x2 + 4483200*x4 + 59760*x2*x4 - 4183620000) + 28389600*x2*x3 + 41834400*x2*x4 - 19423200*x3*x4 + 59760*x2^2*x3 - 26893200*x2^2 - 19423200*x4^2 + 537894000000 } \\  & \text{ \frac{dx2}{dt} = 2091720000*x4 - 10458600000*x3 - 5229300000*x2 + 22411200*x2*x3 + 19423200*x3*x4 + x1^2*(59760*x4 + 8965200) - x1*(23906400*x3 - 26893200*x2 + 64245600*x4 + 59760*x2*x3 - 5976420000) + 19423200*x3^2 + 941274000000 }\\  & \text{ \frac{dx3}{dt} = 4332900000*x4 - 4183620000*x3 - 4781280000*x2 + 8965200*x2*x3 - 41834400*x2*x4 + 4483200*x3*x4 + x1*(- 59760*x4^2 - 32871600*x4 + 14941200*x2 + 2390640000) + 14941200*x2^2 + 22411200*x4^2 + 59760*x2*x3*x4 + 537894000000 }\\  & \text{ \frac{dx4}{dt} = 5229300000*x4 - 8665620000*x3 - 8366880000*x2 + x1*(23906400*x3 - 14941200*x2 - 26893200*x4 + 59760*x3*x4 + 4183440000) + 68727600*x2*x3 - 22411200*x3*x4 - 59760*x2*x3^2 - 14941200*x1^2 - 4483200*x3^2 + 941274000000 }\\  & \text{ \frac{dv}{dt}  = 18000000*x4 - 90000000*x3 - 72000000*x2 + x1*(60000*x2 - 540000*x4 - 600*x2*x3 + 600*x2*x4 + 600*x3*x4 + 600*x4^2 + 36000000) + 540000*x2*x3 + 120000*x3*x4 + x1^2*(600*x4 - 60000) - 600*x2*x3^2 - 600*x2^2*x3 + 120000*x2^2 + 150000*x3^2 - 30000*x4^2 - 600*x2*x3*x4 + 8100000000 }  \end{cases}

Я довольно хорошо понимаю, что аналитического решения у ЭТОГО нет (нет, ну, оно всегда есть, но найти его мы точно не сможем). Я попытался решить сие численным методом Эйлера (с постоянным шагом), однако "всё" уходит в бесконечность уже через пару-тройку итераций. Даже с выставкой шага, равного 1e-16, система далеко не уезжает (на некоторой итерации скорость изменения переменных становится слишком большой и система снова "уходит в бесконечность"; на графике же видно что-то похожее на резонанс). Кроме того, что 1e-16 - это очень и очень долго, так оно ещё и не сходится.
Коллеги напомнили мне, что определённые методы поиска решений порою неприменимы в принципе, какой шаг ни бери. Я подозреваю, что метод Эйлера здесь как раз таки и неприменим.
На реализацию других методов интегрирования уйдёт время, а результат может оказаться тем же, поэтому задам главный вопрос темы: какой метод решения СДУ можно применить для быстрого и относительно точного решения в данном случае?
P.S. Отмечу, что эти диффуры, возможно, являются неправильными, но это неточно. Я строил их по отработанному и проверенному на корректном примере методу и склонен полагать, что всё верно, но Вы сами видите длину строк системы (проверить тяжеловасто).
P.P.S. Оставлю в приложении код (матлабовский, но текст есть текст, по сути), содержащий в себе линейную запись приведённой системы (на случай, если кто-нибудь захочет потестировать сие дело).
Матлабовский код
Matlab M
1
2
3
4
5
dx1 = 1195320000*x4 - 5976600000*x3 - 1643700000*x2 - x1*(8965200*x2 + 4483200*x4 + 59760*x2*x4 - 4183620000) + 28389600*x2*x3 + 41834400*x2*x4 - 19423200*x3*x4 + 59760*x2^2*x3 - 26893200*x2^2 - 19423200*x4^2 + 537894000000;
dx2 = 2091720000*x4 - 10458600000*x3 - 5229300000*x2 + 22411200*x2*x3 + 19423200*x3*x4 + x1^2*(59760*x4 + 8965200) - x1*(23906400*x3 - 26893200*x2 + 64245600*x4 + 59760*x2*x3 - 5976420000) + 19423200*x3^2 + 941274000000;
dx3 = 4332900000*x4 - 4183620000*x3 - 4781280000*x2 + 8965200*x2*x3 - 41834400*x2*x4 + 4483200*x3*x4 + x1*(- 59760*x4^2 - 32871600*x4 + 14941200*x2 + 2390640000) + 14941200*x2^2 + 22411200*x4^2 + 59760*x2*x3*x4 + 537894000000;
dx4 = 5229300000*x4 - 8665620000*x3 - 8366880000*x2 + x1*(23906400*x3 - 14941200*x2 - 26893200*x4 + 59760*x3*x4 + 4183440000) + 68727600*x2*x3 - 22411200*x3*x4 - 59760*x2*x3^2 - 14941200*x1^2 - 4483200*x3^2 + 941274000000;
dv  = 18000000*x4 - 90000000*x3 - 72000000*x2 + x1*(60000*x2 - 540000*x4 - 600*x2*x3 + 600*x2*x4 + 600*x3*x4 + 600*x4^2 + 36000000) + 540000*x2*x3 + 120000*x3*x4 + x1^2*(600*x4 - 60000) - 600*x2*x3^2 - 600*x2^2*x3 + 120000*x2^2 + 150000*x3^2 - 30000*x4^2 - 600*x2*x3*x4 + 8100000000;

Добавлено через 16 минут
Забыл добавить - начальные условия:
https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases} & \text{ x1(0) = 0 }  \\  & \text{ x2(0) = 0 }   \\  & \text{ x3(0) = 0 }   \\  & \text{ x4(0) = 0 }   \\  & \text{ v(0) = 1 }   \end{cases}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2021, 12:24
Ответы с готовыми решениями:

Найти численное решение задачи Коши для системы дифференциальных уравнений
Добрые день.Дана вот такая задача: Электронная схема во временном интервале описана задачей Коши. Нужно решить задачу Коши для системы...

Решение системы нелинейных дифференциальных уравнений
Здравствуйте! Есть система нелинейных дифференциальных уравнений-хотелось бы ее решить. Сразу скажу это упрощенный вариант с тем что надо...

Численное решение нелинейных уравнений
1)решить уравнение lnx-x+18=0 методом итераций на отрезке 2) решить уравнение xlgx-1/3=0 Методом Ньютона на отр. 3) решить ур-ние ...

13
Эксперт по математике/физике
11079 / 7379 / 3991
Регистрация: 14.01.2014
Сообщений: 16,813
22.03.2021, 12:39
Если Вы хотите, чтобы кто-то решил Вашу систему в Matlab, тогда Вам нужно туда
https://www.cyberforum.ru/matlab/
0
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 735
22.03.2021, 15:36  [ТС]
mathmichel, нет, этого не требуется; мне просто нужно понимать, что делать с этим монстром
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,283
Записей в блоге: 3
23.03.2021, 03:33
Промежуток интегрирования какой?

Можно пробовать решать методами для решения жестких систем ДУ. Неявные методы, метод Розенброка, Гира и т.п.
0
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 735
23.03.2021, 09:55  [ТС]
Цитата Сообщение от WH Посмотреть сообщение
Промежуток интегрирования какой?
А это очень хороший вопрос. Теоретически, должна получиться пятимерная пространственная кривая, которая рано или поздно должна замкнуться. Возврат всех координат к начальным значениям, таким образом, будет являться критерием остановки расчёта. С другой стороны, я знаю, что корней в исходной системе уравнений четыре, поэтому знаю, что интересуют нас первые четыре перехода переменной V через ноль, после чего расчёт можно останавливать за ненадобностью его продолжения. Какой конкретно там будет промежуток - а кто ж его знает
Цитата Сообщение от WH Посмотреть сообщение
Неявные методы, метод Розенброка, Гира и т.п.
Сегодня я попробовал использовать SimInTech (аналог Simulink - он удобнее) для создания блок-схемы для решения этой системы, и там есть и адаптивные, и неявные методы, и метод Гира, но даже при точности 1e-16 на начальном этапе расчётов переменные уходят в бесконечность ("плюс" или "минус" зависит от метода, как ни удивительно).
Вот я и думаю - всё же, неверна система, или существуют такие системы диффуров, найти решение которых невозможно?
0
Эксперт по математике/физике
11079 / 7379 / 3991
Регистрация: 14.01.2014
Сообщений: 16,813
23.03.2021, 10:27
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
или существуют такие системы диффуров, найти решение которых невозможно?
Численными методами можно решить любую систему дифуров, если корректно заданы начальные условия Коши. Речь идёт о явно заданных уравнениях выражениями для производных, что имеет место в Вашем случае. Если решения быстро разгоняются до бесконечности, то это говорит о некорректности математической модели (если она должна описывать устойчивую систему).
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,283
Записей в блоге: 3
23.03.2021, 16:53
Ромуальд_7, в Вашей системе переменная https://www.cyberforum.ru/cgi-bin/latex.cgi?v (из 5-го уравнения) кроме как в дифференциале более нигде не встречается. Не уверен, что это правильно, да и начальное условие https://www.cyberforum.ru/cgi-bin/latex.cgi?v(0)=1 при этом теряет смысл. Неявный метод Эйлера выдал ошибку на стадии решения СЛАУ.
0
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 735
23.03.2021, 18:52  [ТС]
WH, ненене, здесь работает алгоритм Драгилёва. Переменная https://www.cyberforum.ru/cgi-bin/latex.cgi?v была фиктивно добавлена в исходную СНЛАУ, и именно благодаря её существованию производные по переменным имеют именно такой вид.
Общий смысл метода в целом и фиктивного ввода https://www.cyberforum.ru/cgi-bin/latex.cgi?v в частности в том, чтобы по завершении (или даже в процессе) расчётов анализировать поведение только этой переменной и в моменты её "перехода" через ноль выписывать текущие значения всех прочих переменных (по сути, решения исходной СНЛАУ). Без этой переменной не будет ясно, какие же именно значения нам нужны, да и критерия остановки расчёта диффуров тогда не будет.
В общем, в происходящем затаился глубокий смысл
Цитата Сообщение от WH Посмотреть сообщение
начальное условие
По методу Драгилёва начальное значение для https://www.cyberforum.ru/cgi-bin/latex.cgi?v может колебаться в пределах https://www.cyberforum.ru/cgi-bin/latex.cgi?(0;1] (ноль не приводит к отысканию решения; более единицы - бессмысленно).
Цитата Сообщение от WH Посмотреть сообщение
Неявный метод Эйлера выдал ошибку
Да вот то-то и оно. Я не понимаю, откуда там берётся бесконечность, но в какой-то момент расчёта она вылезает и всё портит.
0
WH
1589 / 817 / 192
Регистрация: 10.09.2013
Сообщений: 3,283
Записей в блоге: 3
24.03.2021, 15:00
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
ненене, здесь работает алгоритм Драгилёва.
Насколько я понял в этой теме Вы хотели решить систему ДУ методом Эйлера или каким-то другим классическим методом. Бесконечность в такой системе, на мой взгляд, может вырасти даже из вычислительной погрешности и вряд ли здесь виноват метод. Возможно Вы чего то просто не учли.
0
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 735
24.03.2021, 16:56  [ТС]
Цитата Сообщение от WH Посмотреть сообщение
может вырасти даже из вычислительной погрешности и вряд ли здесь виноват метод. Возможно Вы чего то просто не учли.
А действительно - вычислительная погрешность может всё поломать. Нужно подумать об этом, спасибо! Ну, и, конечно же, я действительно мог чего-то не учесть, но я всё ещё в процессе разбирательства по этому вопросу.
0
212 / 352 / 62
Регистрация: 09.06.2015
Сообщений: 1,462
27.03.2021, 23:40
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
Прошу помощи в отыскании решения приведённой ниже системы диф. уравнений.
Случайно наткнулся на эту тему. Чего было не спросить в той же теме про нелинейные уравнения? Тем более, я там сказал, где находятся тексты по методу. (И пишите фамилию правильно – мы же говорили об этом.)
Вот для проверки картинка правых частей Вашей системы с начальными данными 0,0,0,0,1

Система автономных дифф уравнений. Повторюсь, она решается, и находятся все корни, но нули за начало лучше не брать.
0
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 735
28.03.2021, 01:10  [ТС]
Цитата Сообщение от one man Посмотреть сообщение
Чего было не спросить в той же теме про нелинейные уравнения?
Чтобы не мешать темы и не грузить Вас ВСЕМ
Цитата Сообщение от one man Посмотреть сообщение
Вот для проверки картинка правых частей
Да, цифры те же. Я обязательно разберусь с тем, как правильно нужно решать такие системы, если в лоб их решить не получается. Ещё раз - большое спасибо!
0
212 / 352 / 62
Регистрация: 09.06.2015
Сообщений: 1,462
28.03.2021, 23:46
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
Я обязательно разберусь с тем, как правильно нужно решать такие системы
Свои алгоритмы изобретать, что ли? Коллективный разум не переплюнуть, поэтому только Maple, чтобы не отвлекаться от самой задачи. Там dsolve при подборе опций справляется очень хорошо, точнее, великолепно справляется. У меня были примеры с 15-ю переменными, и то хватало возможностей Maple в деле символьного раскрытия определителей. Хотя и поступать так очень неправильно, но лень реализовывать проверенный чисто численный алгоритм, потому что Maple очень избаловал своими функциями.
0
194 / 29 / 5
Регистрация: 11.04.2015
Сообщений: 735
29.03.2021, 08:51  [ТС]
one man, да, Maple действительно довольно хорош. Попробовал я на нём всякое-разное, и был изрядно удивлён — он влёт справляется с тем, на что матлаб говорит «не шмоглосъ» («cannot find solution» и подобное).
Да и зачем изобретать свои методы — я просто изучу материалы, которые Вы советовали, по решению задачи Коши. Мэпл как-то это делает, и я узнаю, как именно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.03.2021, 08:51
Помогаю со студенческими работами здесь

Численное решение системы уравнений
Здравствуйте! Есть задача: Численно решите систему дифференциальных уравнений. В самой программе записаны функции производных от x, y1,...

Решение системы дифференциальных уравнений
Привет!) У меня проблемка, не могу решить системы дифуров численно. Система: dx/dt=a1*x-b1*x*y dy/dt=-a2*x+b2*x*y где...

Решение системы нелинейных уравнений
Здравствуйте, в книге "Самоучитель - Алексеев Е., Чеснокова О. - Решение задач вычислительной математики в пакетах Mathcad 12, MATLAB 7,...

Решение неоднородных дифференциальных уравнений 2 го порядка
Проверьте правильность пожалуйста. y''-4y'=2Cos3x] при y(0)=0 и y'(0)=4 y''-4y'=0 Составим характеристическое уравнение ...

Решение системы неоднородных диф. уравнений
Добрый день! Есть система уравнений для U(x) и I(x), где x-расстояние (см. картинку 1). Эту систему я решил двумя способами -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru