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

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

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

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

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

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

(1)

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

(2)

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

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

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

, (3)

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

(4)

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

, (5)

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

(6)

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

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

, , ,

для и

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

(7)

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

, (8)

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

Вариант N8.

3

1

2

0

1

2

–1

2,5

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

clear

a=1

b=2

c=2.5

d=0.5

k1=0

k2=1

k3=2

k4=-1

tau=0.05

t=a:tau:b

p=3*t.^(0)

q=(-1)*(t.^(-1))

r=t+1

n=(b-a)/tau

m=n+1

A=zeros(n,1)

B=zeros(m,1)

C=zeros(n,1)

F=zeros(m,1)

for i=1:m

F(i)=r(i)

end

F(1)=c

F(m)=d

B(1)=k1-k2/tau

C(1)=k2/tau

B(m)=k3-k4/tau

A(n)=-k4/tau

for i=2:n

B(i)=q(i)-2/tau.^2;

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

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

end

al=zeros(n,1)

be=zeros(n,1)

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

beta=F(1)/B(1)

al(1)=alfa

be(1)=beta

for i=2:n

del=A(i)*alfa+B(i)

alfa=-C(i)/del

beta=(F(i)-A(i)*beta)/del

al(i)=alfa

be(i)=beta

end

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

for i=1:n

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

end

clc

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 = 0

eps2 = -0.7262

Соседние файлы в папке Лаба 6