您当前的位置:matlab资源网文章中心资料 → 文章内容

bvp4c-例3方程中有奇异项

作者:mdeng1985  来源:转载http://mdeng1985.blog.163.com/blog/static/33299179200832325449417/  发布时间:2008-5-12 9:25:56

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)];

  • 上一篇文章:bvp4c--例4 持续改变末端
  • 下一篇文章:bvp4c--例2
  • 文章评论 (评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 0分

    内 容:

             (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 -