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

bvp4c--例2

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

Mathieu's equation

y''+(a-2qcos2x)y=0  q=5, a为未知参数

边界条件:y'(0)=0 y'(pi)=0 y(0)=1

首先令y(1)=y y(2)=y' ,则微分方程为:

function dydx=ode(x,y,a,q)
dydx=[y(2)
    -y(1)*(a-2*q*cos(2*x))]; %a为未知参数,q为已知参数

边界条件bcfun(y(a),y(b))=0

function res=bcfun(ya,yb,a,q)
res=[ya(1)-1
    ya(2)
    yb(2)]; %yb(2)表示自变量为b的时候y(2)=0,也就是y'(pi)=0

主程序

q=5
solinit=bvpinit(linspace(0,pi,10),[1,0],5)%5为未知参数a的初始假设
sol=bvp4c(@ode,@bcfun,solinit,[],q)%q为传递参数,已知
plot(sol.x(:),sol.y(1,:),'red');
hold on
plot(sol.x(:),sol.y(2,:),'green');

源文件:

function example
q=5
solinit=bvpinit(linspace(0,pi,10),[1,0],5)%5为未知参数a的初始假设,对于存在未知参数的情况下,必须提供
sol=bvp4c(@ode,@bcfun,solinit,[],q)%q为传递参数,已知
plot(sol.x(:),sol.y(1,:),'red');
hold on
plot(sol.x(:),sol.y(2,:),'green');

function dydx=ode(x,y,a,q)
dydx=[y(2)
    -y(1)*(a-2*q*cos(2*x))]; %a为未知参数,q为已知参数

function res=bcfun(ya,yb,a,q)
res=[ya(1)-1
    ya(2)
    yb(2)];

  • 上一篇文章:bvp4c-例3方程中有奇异项
  • 下一篇文章:bvp4c--TWOBVP
  • 文章评论 (评论内容只代表网友观点,与本站立场无关!)

    用户名: 查看更多评论

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

    内 容:

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

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