matlab微分方程组边值,matlab求解常微分方程边值问题的方法

41528d3028836879cd698677c3999917.gifmatlab求解常微分方程边值问题的方法

Matlab 求解常微分方程边值问题的方法:bvp4c 函数 常微分方程的边值问题,即 boundary value problems ,简称 BVP 问题,是指表达形式 为 或 ( , ) ( ( ), ( )) 0       y f x y g y a y b ( , , ) ( ( ), ( ), ) 0       y f x y p g y a y b p 的方程组(p 是未知参数) ,在 MATLAB 中使用积分器 bvp4c 来求解。 [命令函数] bvp4c [调用格式] sol=bvp4c(odefun,bcfun,solinit,options,p1,p2,…) sol 为一结构体,sol.x 、sol.y、sol.yp 分别是所选择的网格点及其对应的 y(x)与 y (x)数 值; bvp4c 为带边值条件常微分方程积分器的函数命令;odefun 为描述微分方程组的函数文件; bcfun 为计算边界条件 g(f(a),f(b),p)=0 的函数文件;solinit 为一结构体,solinit.x 与 solinit.y 分别是初始网格的有序节点与初始估计值,边界值条件分别对应 a=solinit.x(l)和 b=solinit.x(end); options 为 bvpset 命令设定的可选函数,可采用系统默认值;p1, p2…为 未知参数。 例 求常微分方程 在 与 时的数值解。 0     y y (0) 2  y (4) 2   y [解题过程] 仍使用常用方法改变方程的形式: 令 , ,则原方程等价于标准形式的方程组 ; 1  y y 2 1   y y 1 2 2 1           y y y y 将其写为函数文件 twoode.m; 同时写出边界条件函数对应文件 twobc.m; 分别使用结构 solinit 和命令 bvp4c 确定 y-x 的关系; 作出 y-x 的关系曲线图。 [算例代码] solinit =bvpinit(linspace(0,4,5),[1 0]); % linspace(0,4,5)为初始网格,[1,0]为初始估计值 sol=bvp4c(@twoode,@twobc,solinit); % twoode 与 twobc 分别为微分方程与边界条件的函数,solinit 为结构 x=linspace(0,4); % 确定 x 范围 y=d(sol,x); % 确定 y 范围 plot(x,y(1,:)); % 画出 y-x 的图形 %定义 twoode 函数(下述代码另存为工作目录下的 twoode.m 文件) function dydx= twoode(x,y) % 微分方程函数的定义 dydx =[y(2) -abs(y(1))]; %定义 twobc 函数(下述代码另存为工作目录下的 twobc.m 文件) function res= twobc(ya,yb); % 边界条件函数的定义 res=[ya(1);yb(1)+2]; [运行结果]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值