编写方程代码
创建一个函数以编写方程代码。此函数应具有签名 dydx = mat4ode(x,y,lambda),其中:
x 是自变量。
y 是因变量。
lambda 是表示特征值的未知参数。
您可以用代换法 y1=y 和 y2=y′ 将马蒂厄方程写成一阶方程组,
y1′=y2,
y2′=-(λ-2qcos(2x))y1。
则对应的函数是
function dydx = mat4ode(x,y,lambda) % equation being solved
dydx = [y(2)
-(lambda - 2*q*cos(2*x))*y(1)];
end
注意:所有函数都作为局部函数包含在示例的末尾。
编写边界条件代码
现在,编写一个函数,该函数返回在边界点处的边界条件的残差值。此函数应具有签名 res = mat4bc(ya,yb,lambda),其中:
ya 是在区间 [a,b] 开始处的边界条件的值。
yb 是在区间 [a,b] 结束处的边界条件的值。
lambda 是表示特征值的未知参数。
此问题在区间 [0,π] 内有三个边界条件。要计算残差值,您需要将边界条件设置为 g(x,y)=0 形式。在此形式中,边界条件是
y′(0)=0,
y′(π)=0,
y(0)-1=0。
则对应的函数是
function res = mat4bc(ya,yb,lambda) % boundary con