<div align="center">一、Matlab求解二阶偏微分方程(ODE)的基本步骤</div> 1. 数学模型:首先要确定求解的方程是哪一类的偏微分方程(ODE),然后建立其对应的数学模型,使其符合这类微分方程的形式;
2. 确定边界条件:确定迭代范围$[a,b]$,边界条件函数 $y(a)=\alpha$ 、$y(b)=\beta$; 3. 写出Matlab程序:在该类ODE中,通常会有某一种常用的数值求解方法,一般使用微分方程求解器(ODE),如ode45等; 4. 获得实际结果:开始编写Matlab程序,完成参差和参数的输入以后,可以运行Matlab程序,然后求得结果,再用图像表示出来。 <div align="center">二、具体求解</div>
$$
\frac{d^2y}{dx^2}+y=6sin(2x)
$$
微分方程为二阶常微分方程,求解条件如下:
$[a,b]=[0,\pi], y(0)=1,y(\pi)=3.$
(1)Matlab函数表达式
首先建立与二阶非齐次线性常微分方程相符合的数学模型,其Matlab函数表达式为
$$ f(x,y,y')=\frac{dy}{dx}-y'-6sin2x $$
其中,$y=y(x)$;
(2)函数程序
在Matlab中,定义函数程序 $myode.m$ ,此程序返回右端函数 $f(x,y,y')$ 的值表达式,程序内容如下。
```MATLAB
% 右端函数程序
function dy=myode(x,y)
dy=[y(2);-y(2)-6*sin(2*x)];
end
maxstep
```
(3)调用Matlab函数olvede45
调用Matlab函数 solvede45 求解二阶ODN,程序内容如下:
```MATLAB
% 主程序求解
% maxstep表示分裂的步长大小
% Tolerence表示误差,控制求解精度
Maxstep=0.25;Tolerence=1e-4;
a=0;b=pi;
y0=[1;0];
[x,y] = ode45('myode',[a,b],y0,options);
```
(4)结果展示
输入参数之后,运行Matlab程序,得到如下图:
![](../images/matlab_2_diff.png)
此图为$y(x)$随$x$变化的曲线,可以看出,二阶偏微分的求解结果满足了边界条件,即$y(0)=1,y(\pi)=3$ ,如图中红圆点所示。