Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
51
Добавлен:
23.01.2015
Размер:
195.07 Кб
Скачать

Лабораторная работа №7

Изучение процедур ode.. в MATLAB.

Решение задачи Коши для дифференциального уравнения 1-го порядка

1 способ

Возьмем функцию y=t2 и будем считать ее решением задачи Коши для дифференциального уравнения первого порядка. Получим это дифференциальное уравнение y'=2*t и начальное условие y(0)=0. Изучим порядок использования процедур ode.. Создадим m-файл функцию yp.m, описывающую правую часть нашего дифференциального уравнения:

function yp=yp(t,y)

%

yp=2*t;

Данную задачу решим, пользуясь процедурой ode45:

[t,Y]=ode45('yp',[0 3],0);

Построим график известной нам функции y=t2 и результат численного решения задачи Коши Y(t):

plot(t,t.^2,'g+',t,Y,'r')

2 способ

В примере предыдущего пункта правую часть дифференциального уравнения можно записать и другим способом: 2*sqrt(y).

Создадим другой m-файл функцию yp2.m, описывающую правую часть нашего дифференциального уравнения:

function yp=yp2(t,y)

%

yp=2*sqrt(y);

Снова решим задачу Коши с нулевым начальным условием:

[t,Y]=ode45('yp2',[0 3],0);

И построим графики этих функций:

plot(t,t.^2,'g+',t,Y,'r')

При t=0 производной не существует, при t=1, результат иной:

Тестовый пример

Правая часть нашего дифференциального уравнения:

function yp=yp5(t,y)

%

yp=3*t^2-2*t;

Процедура ode45:

[t,Y]=ode45('yp5',[0 3],0);

Строим график:

plot(t,t.^2,'g+',t,Y,'r')

Решение задачи Коши для дифференциального уравнения 2-го порядка.

Постановка задачи

Возьмем известную функцию, например, y=cos(t):

y’’=-cos(t) или y’’=-y

y(0)=1

y’(0)=0

Чтобы можно было воспользоваться MATLABом сначала сведем эту задачу к системе из двух дифференциальных уравнений первого порядка. Будем считать саму функцию у первой координатной двумерной функции Y (т.е. Y(1) или на языке MATLAB Y(:,1)), а ее первую производную y’ второй (т.е. Y(2) или на языке MATLAB Y(:,2)). Тогда с учетом того, что y мы придумали сами имеем первое уравнение системы:

Y’(1)=-sin(t)

Y’(2)=-cos(t) или Y’(2)=-Y(1)

Если эту систему записать в матричной форме, то слева получим вектор-столбец из производных компонент вектор-функции Y, а справа вектор-столбец из функций [-sin(t); -cos(t)] или [-sin(t); Y(1)].

Исследования в MATLABе

Создадим m-файл функцию yp3.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) – график функции y и ее производной.

plot(t,cos(t),'r+',t,YY(:,1)) – график функции y.

Тестовый пример

Правая часть нашей системы дифференциальных уравнений:

function yp=yp6(t,y)

%

yp=[1/(1+t.^2);2*t/(1+t.^2)*y(1)];

Исследуем решения:

[t,YY]=ode45('yp6',[0 2*pi],[0 1]);

plot(t,atan(t),'r+',t,YY) – график функции и ее производной.

plot(t,atan(t),'r+',t,YY(:,1)) - график функции y.

Соседние файлы в папке МП-30