
Лабораторные работы - Выполненые / Студенты всех групп / LAB_07 / МП-30 / 28_Роенко_07
.doc-
Решение задачи коши для дифференциального уравнения первого порядка
-
Задание производной независимым значением
-
function yp = yp(t, y)
yp = 2 * t;
end
[t,Y] = ode45('yp', [0 3], 0);
plot(t, t.^2, 'g+', t, Y, 'r')
-
Задание производной предыдущим значением
function yp = yp(t, y)
yp = 2 * sqrt(y);
end
[t,Y] = ode45('yp', [0 3], 0);
plot(t, t.^2, 'g+', t, Y, 'r')
Такой результат получается потому что y(0) = 0, следовательно следующее значения y будет вычисляться как 2*sqrt(0) = 0. Что бы избежать этой проблемы можно задать ненулевое начальное значение:
[t,Y] = ode45('yp', [1 4], 1);
plot(t, t.^2, 'g+', t, Y, 'r')
-
Решение задачи коши для дифференциалого уравнения больших порядков
Функция и ее производные в матлабе представляются как многомерная функция: Y(1) – сама ф-ция, Y(n) – ее (n-1) производная
Возьмем для примера уравнение второго порядка:
y’’(x) = -cos(x)
y’’ = -y
y(0) = 1
y’(0) = 0
Y'(1)=-sin(t)
Y'(2)=-Y(1)
function yp = yp3(t,y)
yp = [-sin(t); -y(1)];
end
[t,YY]=ode45('yp3',[0 2*pi],[1 0]);
plot(t,cos(t),'r+',t,YY)
plot(t,cos(t),'r+',t,YY(:,1))