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

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

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

    1. Способ №1

Возьмем функцию y=t.^2 и будем считать ее решением задачи Коши для дифференциального уравнения первого порядка. Создадим m-файл функцию right_part.m, описывающую правую часть нашего дифференциального уравнения:

function right_part=right_part(t,y)

%

right_part=2*t;

Чтобы решить задачу Коши, используем процедур ode45:

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

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

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

    1. Способ №2

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

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

function right_part2=right_part2(t,y)

%

right_part2=2*sqrt(y);

Снова решим задачу Коши с нулевым начальным условием. Построим соответствующие графики.

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

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

Подобное происходит так как в точке 0 производная функции y не существует.

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

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

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

y(0)=1;

y'(0)=0;

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

Y'(1)=-sin(t),

второе:

Y'(2)=-cos(t) или Y'(2)=-Y(1);

Если эту систему записать в матричной форме, то слева получим вектор-столбец из производных компонент вектор-функции Y, а справа вектор-столбец из функций:

[-sin(t); -cos(t)];

Создадим функцию right_part3, описывающую правую часть нашей системы дифференциальных уравнений:

function right_part3=right_part3(t,y)

%

right_part3=[-sin(t);-y(1)];

Исследуем решения, например так:

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

plot(t,cos(t),'r+',t,YY);

figure;

plot(t,cos(t),'r+',t,YY(:,1));

Первый вызов plot строит графики функции y и её производной, второй – только функции y.

  1. ПРимеры решения дифференциальных уравнений.

    1. Функция y=exp(t^2).

y’=2*t*exp(t^2);

Создадим .m-файл со следующим содержанием:

function expon=expon(t,y)

%

expon=2*t*exp(t.^2);

Решим дифференциальное уравнение с помощью функции ode23 и сравним полученный результат с функцией y:

[t,Y]=ode23('expon',[0 3],1);

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

    1. Функция y=ln(t^2).

y’=2/t;

y’’=-2/t^2;

Создадим .m-файл со следующим содержанием:

function logor=logor(t,y)

%

logor=[2/.t -2/.(t.^2)]’;

Решим дифференциальное уравнение с помощью функции ode23 и сравним полученный результат с функцией y:

[t,Y]=ode23('logor',[1 10],[0 2]);

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

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