matlab bvp4c猜测解,对具有两个解的 BVP 求解

编写方程代码创建一个函数以编写方程代码。此函数应具有签名 dydx = bvpfun(x,y) 或 dydx = bvpfun(x,y,parameters),其中:x 是自变量。y 是解(因变量)。parameters 是未知参数值的向量(可选)。求解器会自动将这些输入传递给该函数,但是变量名称决定如何编写方程代码。在本例中,可以将二阶方程重写为一阶方程组y1′=y2,y2′=-ey1。用于编写...
摘要由CSDN通过智能技术生成

编写方程代码

创建一个函数以编写方程代码。此函数应具有签名 dydx = bvpfun(x,y) 或 dydx = bvpfun(x,y,parameters),其中:

x 是自变量。

y 是解(因变量)。

parameters 是未知参数值的向量(可选)。

求解器会自动将这些输入传递给该函数,但是变量名称决定如何编写方程代码。在本例中,可以将二阶方程重写为一阶方程组

y1′=y2,

y2′=-ey1。

用于编写这些方程代码的函数为

function dydx = bvpfun(x,y)

dydx = [y(2)

-exp(y(1))];

end

编写边界条件代码

对于像此问题中的两点边界值条件,边界条件函数应该具有签名 res = bcfun(ya,yb) 或 res = bcfun(ya,yb,parameters),具体取决于是否涉及未知参数。ya 和 yb 是求解器自动传递给函数的列向量,bcfun 返回边界条件中的残差。

对于边界条件 y(0)=y(1)=0,bcfun 函数指定两个边界上的残差值都为零。在您的初始估计值中,这些残差值会强制应用于您指定给 bvpinit 的第一个和最后一个网格点。此问题的初始网格应该有 x(1) = 0 和 x(end) = 1。

function res = bcfun(ya,yb)

res = [ya(1)

yb(1)];

end

获取初始估计值

调用 bvpinit 以生成解的初始估计值。x 的网格不需要有很多点,但

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值