|
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 7
|
||||||||||||||||
Решение краевой задачи (bvp4c matlab)28.06.2020, 13:24. Показов 1390. Ответов 7
Метки нет (Все метки)
Имеется система дифференциальных уравнений. Необходимо решить краевую задачу - заданы некоторые начальные и некоторые конечные значения. Использую функцию bvp4c, задача решается, получаю набор начальных значений. НО! Если подставить полученные начальные значения и проинтегрировать систему ДУ с помощью ode45, результат получается другим. Код программы прилагаю. В чем может быть ошибка?
Кликните здесь для просмотра всего текста
Так выглядит решение при использовании bvp4c и ode45
0
|
||||||||||||||||
| 28.06.2020, 13:24 | |
|
Ответы с готовыми решениями:
7
|
|
Модератор
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
|
|
| 28.06.2020, 16:52 | |
|
Rose12345, ode45 не используется для решения краевых задач.
0
|
|
|
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 7
|
|
| 28.06.2020, 17:07 [ТС] | |
|
Centurio, С помощью ode45 я проинтегрировала уравнения, используя начальные значения, которые получила из bvp4c
0
|
|
|
Модератор
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
|
|
| 29.06.2020, 11:36 | |
|
Rose12345, вы написали бы лучше саму систему уравнений и краевые условия. А то по коду разбирать, что вы решаете, тяжело, а если код у вас ещё и с ошибкой, то вообще бессмысленно.
0
|
|
|
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 7
|
|
| 03.07.2020, 15:46 [ТС] | |
|
Имеется система из 13 ДУ.
P = 0.03; W = 0.53. Время интегрирования t = 7.17. В начальный момент времени известны: y1(0) = 1.002972; y2(0) = 0.018841; y3(0) = -0.7333937*(10^-5); y4(0) = -0.035064; y5(0) =0.996249; y6(0) = -0.653687*(10^-4); y13(0) = 1. Необходимо найти такие y7(0), y8(0) ,y9(0), y10(0), y11(0), y12(0), чтобы выполнялись конечные условия: y1(t) = 1.183485; y2(t) = -0.712992; y3(t) = -0.0439577; y4(t) = 0.4505997; y5(t) =0.766424; y6(t) = 0.00501665. Как это можно сделать? Какие функции использовать?
0
|
|
|
483 / 427 / 205
Регистрация: 04.03.2011
Сообщений: 1,259
|
||||||
| 05.07.2020, 13:25 | ||||||
|
Нужно использовать bvp4c как сказал выше Centurio
Простой пример: Уравнение: Перепишем его в виде: Граничные и начальтные условия:
0
|
||||||
|
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 7
|
|
| 05.07.2020, 14:24 [ТС] | |
|
nuHrBuH, если использовать тот код, который вы прислали, то используя bvp4c получили решение краевой задачи (графики) и начальные условия (s.y(:,1) = [0 0.2607]) . Так как это система ДУ, то зная начальные условия (s.y(:,1) = [0 0.2607]), можно проинтегрировать систему ДУ и тоже получить решение. Если можно так сказать, выполнить проверку, правильно ли использовали bvp4c. Если воспользоваться полученным приближением - (s.y(:,1) = [0 0.2607]) и использовать ode45 для интегрирования ДУ - fode на интервале [0 5] как и прежде, то в Вашем случае получится, что графики "сойдутся" - значит, что bvp4c использовали верно и верно нашли начальное приближение и, следовательно, нашли верное решение краевой задачи (прикрепляю полученные графики). В моем коде (самое первое сообщение) я решила систему ДУ (краевую задачу), используя bvp4c, нашла начальные значения и, используя эти значения как начальные условия для интегрирования уравнений (с помощью ode45), получила совершенно другое решение. В моем случае, графики не сошлись. Так как вероятность совершить ошибку в использовании ode 45 гораздо ниже, чем в bvp4c, то скорее всего ошиблась в bvp4c. Я делала по аналогии с Вашим примером. Но результат другой. Мне как раз нужно получить начальные значения, т.е. y7,y8,y9,y,10,y11,y12. Где в моем коде может быть ошибка? Или может быть в матлабе есть еще функции, позволяющие найти "неизвестные" начальные условия?
0
|
|
|
483 / 427 / 205
Регистрация: 04.03.2011
Сообщений: 1,259
|
|||||||||||
| 05.07.2020, 19:54 | |||||||||||
|
ВОт мои рекомендации:
рекомендация 1
Пробовал уменьшать шаг интеграции, но безуспешно. Может кто-нибудь из экспертов заинтересуется?
0
|
|||||||||||
| 05.07.2020, 19:54 | |
|
Помогаю со студенческими работами здесь
8
Численное решение линейной краевой задачи для обыкновенного дифференциального уравнения второго порядка Решение задачи в Matlab Решение задачи в MatLab Решение задачи Линейного программирования в Matlab Решение задачи об отражении в МП заряженной частицы (matlab) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
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
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|