编写方程代码
创建一个函数以编写方程代码。此函数应具有签名 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 的网格不需要有很多点,但