bvp4c-例3方程中有奇异项
Emden's Equation
y''+(2/x)*y'+y^5=0 自变量区间[0,1], y'(0)=0 y(1)=sqrt(3/4)
令 y(1)=y y(2)=y',不考虑奇异项,则微分方程可写成:
function dydx=ode(x,y)
dydx=[y(2)
-y(1)^5];
边界条件bc(y(a),y(b))=0
function res=bcfun(ya,yb)
res=[ya(2)
yb(1)-sqrt(3/4)];
设置奇异项:
S=[0 0;0 -2];
options=bvpset('SingularTerm',S)
初始条件估计:
solinit=bvpinit(linspace(0,1,10),[sqrt(3)/2,1])
主程序
sol=bvp4c(@ode,@bcfun,solinit,options)
plot(sol.x(:),sol.y(1,:),'red');
hold on
x = linspace(0,1);
truy = 1 ./ sqrt(1 + (x.^2)/3);
plot(x,truy,'o')% 解析解
源程序:
function example
S=[0 0;0 -2];
options=bvpset('SingularTerm',S)
solinit=bvpinit(linspace(0,1,10),[sqrt(3)/2,1])
sol=bvp4c(@ode,@bcfun,solinit,options)
plot(sol.x(:),sol.y(1,:),'red');
hold on
x = linspace(0,1);
truy = 1 ./ sqrt(1 + (x.^2)/3);
plot(x,truy,'o')% 解析解
function dydx=ode(x,y)
dydx=[y(2)
-y(1)^5];
function res=bcfun(ya,yb)
res=[ya(2)
yb(1)-sqrt(3/4)];

您当前的位置: