
Лабораторные работы - Выполненые / Студенты всех групп / LAB_07 / МП-30 / 21_Komarov_07
.docЛабораторная работа № 7
-
Работа с функцией ode45( ). примеры из лабораторной работы
-
Функция y=t^2 ;
-
Создадим m-файл функцию yp.m, описывающую правую часть нашего дифференциального уравнения:
function yp=yp(t,y)
%
yp=2*t;
запустим процедуру решения этой задачи Коши
>> [t,Y]=ode45('yp',[0 3],0);
построим графики известной функции y=t.^2 и результата численного решения задачи Коши Y(t)
>>
plot(t,t.^2,'g+',t,Y,'r')
Рассмотрим
отличия посчитанного и реального
результатов
>> plot(t,t.^2-Y,'r')
Создадим другой m-файл (правую часть диффернциального уравнения можно записать и другим способом: 2*sqrt(y) )
function yp=yp2(t,y)
%
yp=2*sqrt(y);
снова решим задачу Коши с нулевым начальным условием
>>
[t,Y]=ode45('yp2',[0 3],0);
>> plot(t,t.^2,'g+',t,Y,'r')
решением этой задачи Коши (c таким начальным условием) может быть и функция y=0. Этот результат нам и показал Matlab
зададим другое начальное условие и получим желаемый результат
>>
[t,Y]=ode45('yp2',[1 3],1);
>> plot(t,t.^2,'g+',t,Y,'r')
-
задача Коши для дифференциального уравнения второго порядка ( y=cos(t) )
Возьмем функцию y=cos(t) ,то y'=-sin(t) ,а y''=-cos(t) или y''=-y
чтобы можно было воспользоваться MATLABом сначала сведем эту задачу к системе из двух дифференциальных уравнений первого порядка
создадим m-файл
function yp=yp3(t,y)
%
yp=[-sin(t);-y(1)];
исследуем решения
>>[t,YY]=ode45('yp3',[0 2*pi],[1 0]);
>>plot(t,cos(t),'r+',t,YY)
>>plot(t,cos(t),'r+',t,YY(:,1))
-
Собственные примеры
-
Нахождение функции x=exp(2*t) по d3x/dt3
-
Итак, у нас имеются начальные условия
x'''=8*exp(2*t) и x(0)=1 x'(0)=2 x''(0)=4
нам нужно найти функцию x(t) и ясно , что это ответом будет x=exp(2*t), но сможем ли мы справиться с задачей с помощью матлаба.
Создадим m-файл
function f=my(t,x)
f=[x(2);x(3);8*exp(2*t)];
затем исследуем решения
>> [t,X]=ode45('my',[0 2],[1;2;4]);
>> plot(t,X)
Проверим совпало ли решение
>> plot(t,X(:,1),t,exp(2*t),'*')