Нахождение границы устойчивости нелинейного дифференциального уравнения с помощью Matlab

Я застрял в этой проблеме в течение нескольких недель. Как найти область устойчивости (или притяжения) нелинейного дифференциального уравнения с помощью Matlab.

Скажем, у меня есть это уравнение:

x' = y;
y' = -10*sin(x)  - y + 9;

Точка равновесия для этого уравнения: [x, y] = [1,1198, 0]. Я хотел провести границу устойчивости этого нелинейного дифференциального уравнения. Под этим я подразумеваю, что хочу найти область, в которой любая начальная точка будет сходиться к точке равновесия, а любая точка вне этой области будет расходиться. См. прикрепленное изображение по адресу http://www.mathworks.com/matlabcentral/answers/146562-finding-the-stability-boundary-or-attraction-region-of-a-nonlinear-Differential-Equation

Прямо сейчас я запускаю следующий код Matlab:

f = @(t , x)[x(2) ; -10 * sin(x(1)) - x(2) + 9];
[T , X] = ode45(f , Tint , X0);

Для некоторого оттенка я рисую результат в виде фазового портрета (т. е. x против y) и меняю начальное условие (X0), пока оно не сработает (т. е. методом проб и ошибок).

Мне нужно найти область устойчивости для многих различных вариантов этого дифференциального уравнения. Мой вопрос: как мне найти этот регион автоматически?

Спасибо за помощь


person Abdallah    schedule 06.08.2014    source источник


Ответы (1)


При очень высоких вычислительных затратах вы можете выполнить поиск методом грубой силы: дискретизировать пространство поиска, выбрать длинный оттенок (чтобы учесть решения, которые сходятся за очень долгое время) и интегрировать для каждого начального значения. точка.
Чтобы немного ускорить процесс, вы можете реализовать некоторые условия остановки для интегрирования и обрезать ветви, которые уходят слишком далеко от вашей точки равновесия, а также те, которые приближаются к точке равновесия.

Конечно, таким образом вы получите только приблизительное значение границы устойчивости из-за 1. шага дискретизации, выбранного для вашего пространства поиска, и 2. возможной «неправильной обрезки», если решение сходится после того, как оно уходит от точки равновесия дальше, чем вы условие остановки или расходится после приближения к равновесию, чем ваше условие остановки.

Чтобы получить помощь в реализации условий остановки, просмотрите часть функций событий в документе ode45, а также этот пример или этот

person Etienne Pellegrini    schedule 12.08.2014