Доработать программу так, чтобы она помогала исследовать системы дифференциальных уравнений из задания:
- находить окрестность нулевого стационарного состояния;
- строить матрицу линеаризации;
- вычислять собственные значения;
- определять тип устойчивости;
- при необходимости показывать фазовый портрет и траектории.
dx/dt = 2xy - x + y
dy/dt = 5x^4 + y^3 + 2x - 3y
dx/dt = x^2 + y^2 - 2x
dy/dt = 3x^2 - x + 3y
dx/dt = e^(x + 2y) - cos(3x)
dy/dt = sqrt(4 + 8x) - 2e^y
dx/dt = ln(4y + e^(-3x))
dy/dt = 2y - 1 + cbrt(1 - 6x)
- Для каждой системы описать правую часть
f(x, y), g(x, y). - Проверить, что точка
(0, 0)является стационарной:
f(0, 0) = 0
g(0, 0) = 0
- Найти матрицу Якоби:
J = [ df/dx df/dy ]
[ dg/dx dg/dy ]
- Подставить
(0, 0)и получить матрицу линеаризации. - Найти собственные значения матрицы 2x2 через след и определитель:
lambda^2 - tr(J) lambda + det(J) = 0
- Определить устойчивость:
det < 0— седло, неустойчиво;det > 0,tr < 0, дискриминант> 0— устойчивый узел;det > 0,tr > 0, дискриминант> 0— неустойчивый узел;det > 0,tr < 0, дискриминант< 0— устойчивый фокус;det > 0,tr > 0, дискриминант< 0— неустойчивый фокус;det > 0,tr = 0, дискриминант< 0— центр в линейном приближении;- случаи с нулевыми собственными значениями требуют отдельного анализа.
- Заменить текущую демонстрационную функцию
F/G/Hна набор систем из задания. - Добавить структуру
System2D:
struct System2D {
const char* name;
RHS rhs;
matrix jacobianAtZero;
};- Добавить функции правых частей:
systemA(t, X)
systemB(t, X)
systemC(t, X)
systemD(t, X)- Добавить расчет характеристик матрицы 2x2:
- след;
- определитель;
- дискриминант;
- собственные значения;
- текстовый тип устойчивости.
- При запуске выводить в консоль список систем и результат линеаризации для каждой.
- Для графики оставить интерактивный режим:
- выбрать систему;
- кликом мыши задавать начальную точку;
- рисовать траекторию выбранной системы.
- Добавить отдельный файл с математическим отчетом или пояснительной запиской, если потребуется оформление решения.
Initial Visual Studio projectAdd implementation plan for linearization taskAdd systems and linearization analysisAdd interactive system selection and plottingDocument results for assignment systems