0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 7
|
||||||||||||||||
1 | ||||||||||||||||
Решение краевой задачи (bvp4c matlab)28.06.2020, 13:24. Показов 963. Ответов 7
Метки нет (Все метки)
Имеется система дифференциальных уравнений. Необходимо решить краевую задачу - заданы некоторые начальные и некоторые конечные значения. Использую функцию bvp4c, задача решается, получаю набор начальных значений. НО! Если подставить полученные начальные значения и проинтегрировать систему ДУ с помощью ode45, результат получается другим. Код программы прилагаю. В чем может быть ошибка?
Кликните здесь для просмотра всего текста
Так выглядит решение при использовании bvp4c и ode45
0
|
28.06.2020, 13:24 | |
Ответы с готовыми решениями:
7
Решение краевой задачи (bvp4c) Решение Краевой задачи Решение краевой задачи Численное решение линейной краевой задачи для обыкновенного дифференциального уравнения второго порядка |
Модератор
1700 / 1552 / 520
Регистрация: 13.09.2015
Сообщений: 5,370
|
|
28.06.2020, 16:52 | 2 |
Rose12345, ode45 не используется для решения краевых задач.
0
|
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 7
|
|
28.06.2020, 17:07 [ТС] | 3 |
Centurio, С помощью ode45 я проинтегрировала уравнения, используя начальные значения, которые получила из bvp4c
0
|
Модератор
1700 / 1552 / 520
Регистрация: 13.09.2015
Сообщений: 5,370
|
|
29.06.2020, 11:36 | 4 |
Rose12345, вы написали бы лучше саму систему уравнений и краевые условия. А то по коду разбирать, что вы решаете, тяжело, а если код у вас ещё и с ошибкой, то вообще бессмысленно.
0
|
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 7
|
|
03.07.2020, 15:46 [ТС] | 5 |
Имеется система из 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 | 6 | |||||
Нужно использовать bvp4c как сказал выше Centurio
Простой пример: Уравнение: Перепишем его в виде: Граничные и начальтные условия:
0
|
0 / 0 / 0
Регистрация: 09.07.2016
Сообщений: 7
|
|
05.07.2020, 14:24 [ТС] | 7 |
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 | 8 | ||||||||||
ВОт мои рекомендации:
рекомендация 1
Пробовал уменьшать шаг интеграции, но безуспешно. Может кто-нибудь из экспертов заинтересуется?
0
|
05.07.2020, 19:54 | |
05.07.2020, 19:54 | |
Помогаю со студенческими работами здесь
8
Решение задачи в Matlab Решение задачи в MatLab Решение задачи Линейного программирования в Matlab Решение задачи об отражении в МП заряженной частицы (matlab) Решение системы дифференциальных уравнений решателем bvp4c Решение задачи Коши методом Рунге-Кутта 4 порядка в MatLab Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |