Учитывая дифференциальное уравнение в матричной форме:
f = @(t,y) [(a*y(1) + b*y(2)); (c*y(1) + d*y(2))];
a=-2; b=-1; c=1; d=-4
Решения моей задачи дифференциального уравнения:
x(t)= e^(-3t) (t+1)
y{t)= e^(-3t) *t
Общее решение:
Y(t)= e^(-3t) (xo,yo)' + t * e^(-3t) (xo-yo,xo-yo)'
Исходное условиеis (xo, yo) = (1,0) = (e; g)
Matlab Code:
syms xSol ySol ran with and without this statement with same error msg
t=-1.1:0.1:2.1;
plot(t,xSol) error occurs here
hold on
plot(t,ySol)
hold off
Сообщение об ошибке:
Error using plot
Data must be numeric, datetime, duration or an array convertible to double.
Дальнейшее изучениебудет означать, что xSol и ySol должны быть числовыми числами.У меня в исходном состоянии (1; 0);
xSol(t) = exp(-3*t) + t*exp(-3*t)
ySol(t) = t*exp(-3*t)
Мне нужно изменить xSol (t) и ySol (t) на xSol и ySol без (t).Как исправить?Коррекция должна работать с комплексными числами.
Примеры онлайн использования fplot.Это лучшая функция для использования в этом приложении?Мне нужно будет определить две функции для xSolv и ySolv.Мой код работает для общего дифференциального уравнения с двумя переменными.
Пример в сети:
f = @(x) sin(1/x);
Предположим, что мы хотим построить график от 0,01 до 1:
lims = [.01 1];
fplot(f, lims, '.-')
Iпробовал
xSolvpa = vpa(xSol)
ySolvpa = vpa(ySol)
fplot(xSolvpa,[-2.1 1.5])
hold on
fplot(t,ySolvpa,[-2.1 1.5])
но получил неправильный сюжет.Это сбивает с толку.Нет ошибок.
Как это сделать?
MM