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

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

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

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

Возьмем функцию y=t.^2 и будем считать ее решением задачи Коши для дифференциального уравнения первого порядка.

Получим это дифференциальное уравнение y'=2*t и начальное условие y(0)=0. Изучим порядок использования процедур ode.. (например, help ode45) и другие сопутствующие команды.

    1. Объект исследования

Объектом исследования является решение задачи Коши для дифференциальных уравнений первого/второго порядка в системе MATLAB при помощи процедур ode...

  1. Решение задачи

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

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

function yp=yp(t,y)

%

yp=2*t;

Запустим процедуру решения этой задачи Коши, и построим график функции y=t.^2 и результата численного решения задачи Коши Y(t).

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

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

Рис1. График функции y=t.^2 и результата численного решения задачи Коши Y(t)

    1. Решение задачи Коши для дифференциального уравнения первого порядка с вариантом записи правой части в виде 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')

Рис2. График функции y=t.^2 и результата численного решения задачи Коши Y(t) с правой частью в виде 2*sqrt(y) и нулевыми начальными условиями.

Нетрудно увидеть, что судя по графику мы получили неверный результат. Это связано с некорректно заданными начальными условиями. Зададим следующие начальные условия: t=1, y(1)=1 и построим график той же зависимости.

Изменив начальные условия, мы получили верный результат.

    1. Решение задачи Коши для дифференциального уравнения второго порядка. Функция y=cos(t).

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

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

y(0)=1

y'(0)=0

Чтобы можно было воспользоваться MATLAB сначала сведем эту задачу к системе из двух дифференциальных уравнений первого порядка. Будем считать саму функцию y первой координатой двумерной функции 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)].

Создадим 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(:,1))

Полученный результат:

Решение задачи Коши найдено верно.

    1. Решение задачи Коши для дифференциального уравнения первого порядка порядка. Функция y=1/2*(t+sin(t).*cos(t)).

Возьмем функцию y=1/2*(t+sin(t).*cos(t)).и будем считать ее решением задачи Коши для дифференциального уравнения первого порядка.

Получим это дифференциальное уравнение y'=(cos(t))^2 и начальное условие y(0)=0.

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

function yp=yp1(t,y)

%

yp=(cos(t))^2;

Запустим процедуру решения этой задачи Коши, и построим график функции y=1/2*(t+sin(t).*cos(t)).и результата численного решения задачи Коши Y(t).

[t,Y]=ode45('yp1',[0 30],1);

plot(t,1/2*(t+sin(t).*cos(t)),'g+',t,Y,'r')

В итоге мы получили верное решение задачи Коши для нашей функции.

  1. Вывод

Процедуры ode.. являются мощным инструментом для решения задачи Коши для дифференциальных уравнений первого/второго порядка

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