Краевая задача в среде matlab
Краевую задачу в
среде MATLAB
рассмотрим на примере решения уравнения
(76)
Решение задачи
(76) предполагает переход от уравнения
шестого порядка к представлению его в
виде соответствующей системы уравнений
шестого порядка. На листинге_№13 приведен
код программы решения задачи (76). На
рис.11 приведен итог работы кода
листинга_№13. Помимо самой функции y(x),
на рис.11 приведены также ее первые пять
производных.
Листинг_№13
%Программа решения
краевой задачи для уравнения
%y''''''+y=0 с
краевыми
условиями
%y(0)=y'(0)=y''(0)=-1,y'''(pi)=y''''(pi)=y'''''(pi)=1
function bvp
%задаем отрезок
интегрирования
a=0; b=pi;
%определяем структуру
начальных данных для функции bvp4c
solinit=bvpinit(linspace(a,b,15),[1
1 1 1 1 1]);
%решаем
краевую задачу
sol=bvp4c(@f,@bound,solinit);
x = linspace(0,pi,30);
y = deval(sol,x);
%рисуем
решение и
пять первых его производных
plot(x,y(1,:),'-o',x,y(2,:),'-p',x,y(3,:),'-+',...
x,y(4,:),'-*',x,y(5,:),'-v',x,y(6,:),'-h');
%вычисление
правой части системы
уравнений
function dydx=f(x,y)
dydx=[y(2) y(3) y(4) y(5) y(6)
-y(1)];
%определение
краевых условий
function bnd=bound(ya,yb)
bnd=[ya(1)+1;
ya(2)+1;ya(3)+1;yb(4)-1;yb(5)-1;yb(6)-1];
Рис.11. Решение краевой задачи (76)
1
Самарский А.А., Гулин А.В.
Численные методы. — М.: Наука, 1989. 430с.
— 32 —