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

Лабораторная работа N6

Решение краевой задачи для ОДУ

Краткие теоретические сведения.

Обыкновенными дифференциальными уравнениями (ОДУ) описывается множество физических явлений: задачи движения системы взаимодействующих материальных точек, химической кинетики, электрических цепей, сопротивления материалов и многие другие. Некоторые важные задачи также сводятся к уравнениям в частных производных. Таким образом, решение ОДУ занимает важное место среди прикладных задач физики, химии и техники.

Конкретная прикладная задача может приводить к дифференциальному уравнению любого порядка, однако ОДУ -го порядка

(1)

можно привести к эквивалентной системе дифференциальных уравнений первого порядка путем введения новых переменных :

(2)

где . Поэтому очень важно уметь решать ОДУ первого порядка.

Различают три основных типа задач для обыкновенных дифференциальных уравнений: задачи Коши (задача с начальными условиями), краевые задачи и задачи на собственные значения. Ограничимся рассмотрением методов только первых двух задач. При этом будем предполагать, что решение существует, единственно и обладает необходимым свойством гладкости, т.е. искомая функция столько раз может быть продифференцирована, сколько это необходимо.

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

, (3)

на отрезке , которое удовлетворяет краевым условиям:

(4)

Построим сетку на отрезке , на которой определим сеточные функции , и , приближенное решение в виде сеточной функции будем, как и прежде, обозначать через . Аппроксимируем производные, входящие в уравнения (3)-(4), со вторым порядком точности в результате получим разностную схему для краевой задачи:

, (5)

с краевыми условиями

(6)

где . Отметим без доказательства тот факт, что данная схема является устойчивой.

Введем обозначения

, , ,

для и

для и . Тогда система линейных алгебраических уравнений (5) – (6) запишется в виде:

(7)

или в матричном виде:

, (8)

где – трехдиагональная матрица, а и – вектор столбцы. Решение этой системы осуществляется, как правило, методом прогонки. Численная реализация метода полностью основывается на решении СЛАУ с трехдиагональной матрицей коэффициентов.

Вариант N7.

p(t)

q(t)

r(t)

a

b

k1

k2

k3

k4

c

d

1/t

–0,4

t+1

0,5

1,5

1

0,3

0

1

0,6

1,8

Текст программы.

clear;

clc;

%----------- Данные Задания

a=0.5;

b=1.5;

k1=1;

k2=0.3;

k3=0;

k4=1;

c=0.6;

d=1.8;

tau=0.05;

t=a:tau:b;

p=t.^(-1);

q=(-0.4)*(t.^0);

r=t+1;

n=(b-a)/tau;

m=n+1;

%----------- Создание Векторов

A=zeros(m,1);

B=zeros(m,1);

C=zeros(m,1);

F=zeros(m,1);

%----------- Заполнение 1 и m Координат Векторов

A(1)=0;

A(m)=(-1*k4)/tau;

B(1)=k1-(k2/tau);

B(m)=k3+(k4/tau);

C(1)=k2/tau;

C(m)=0;

F(1)=c;

F(m)=d;

%----------- Заполнение Остальных Координат Векторов

for i=2:n

A(i)=1/(tau*tau)-p(i)/(2*tau);

B(i)=q(i)-2/(tau*tau);

C(i)=1/(tau*tau)+p(i)/(2*tau);

F(i)=r(i);

end;

%----------- Метод Прогонки

al=zeros(n,1);

be=zeros(n,1);

alfa=-1*C(1)/B(1);

beta=F(1)/B(1);

al(1)=alfa;

be(1)=beta;

for i=2:n

zn=A(i)*alfa+B(i);

alfa=-1*C(i)/zn;

beta=(F(i)-A(i)*beta)/zn;

al(i)=alfa;

be(i)=beta;

end;

y(m)=(F(m)-A(m)*be(n))/(A(m)*al(n)+B(m));

for i=1:n

y(m-i)=y(m+1-i)*al(m-i)+be(m-i);

end;

%----------- Вывод Результатов

plot(t,y)

eps1=(k1*y(1)+k2*(y(2)-y(1))/tau)-c

eps2=(k3*y(m)+k4*(y(m)-y(m-1))/tau)-d

После выполнения программы получим:

eps1 = 1.1102e-016

e ps2 = 1.5543e-015

Соседние файлы в папке lab06(var7)