Matlab求解微分方程(组)及偏微分方程(组)
matlab 微分方程表达式

matlab 微分方程表达式使用Matlab求解微分方程是一种常见的数学建模方法。
微分方程在科学和工程领域中具有广泛的应用,例如描述物理系统、生物过程和经济变化等。
本文将介绍如何使用Matlab来求解微分方程,并通过一个具体的实例来说明其应用。
我们需要了解什么是微分方程。
微分方程是描述未知函数及其导数之间关系的方程。
一般来说,微分方程可以分为常微分方程和偏微分方程两种类型。
常微分方程是只含有未知函数的导数的方程,而偏微分方程是含有未知函数及其偏导数的方程。
在Matlab中,我们可以使用ode45函数来求解常微分方程。
ode45是一种常用的数值求解器,可以求解一阶或高阶常微分方程。
它的基本调用格式为:[t, y] = ode45(@f, tspan, y0)其中,@f是一个函数句柄,表示待求的微分方程。
tspan是时间范围,y0是初始条件。
ode45函数将返回时间数组t和对应的解向量y。
下面,我们通过一个具体的实例来说明如何使用Matlab求解微分方程。
假设有一个自由落体的物体,其运动方程可以用以下微分方程来描述:m*d^2y/dt^2 = -mg其中,m是物体的质量,y是物体的位移,t是时间,g是重力加速度。
我们可以将该微分方程转化为一阶微分方程组来求解:dy/dt = vdv/dt = -g其中,v是物体的速度。
现在,我们使用Matlab来求解该微分方程组。
我们定义一个函数文件,命名为free_fall.m,代码如下:function dydt = free_fall(t, y)g = 9.8; % 重力加速度dydt = zeros(2,1);dydt(1) = y(2);dydt(2) = -g;然后,我们使用ode45函数来求解微分方程组。
假设初始条件为y(0) = 0,v(0) = 0,时间范围为0到10秒。
代码如下:[t, y] = ode45(@free_fall, [0 10], [0 0]);我们可以通过绘制y随时间变化的曲线来观察物体的自由落体运动。
matlab dsolve 微分方程组

在MATLAB中,可以使用`dsolve`函数来求解微分方程组。
`dsolve`函数可以求解常微分方程(Ordinary Differential Equations,ODE)和偏微分方程(Partial Differential Equations,PDE)。
下面是一个示例,演示如何使用`dsolve`函数来求解一个简单的微分方程组:
```matlab
syms t x(t) y(t)
eq1 = @(t,x) x(t)/x(t-1) - 2; 第一个方程
eq2 = @(t,x) x(t-1)/x(t) - 3; 第二个方程
sol = dsolve({eq1, eq2}, x(t), t); 求解微分方程组
disp(sol); 显示解
```
在这个示例中,我们定义了两个方程`eq1`和`eq2`,然后使用`dsolve`函数来求解这两个方程组成的微分方程组。
注意,我们需要将方程以函数的形式传递给`dsolve`函数。
在`dsolve`函数中,第一个参数是一个包含所有方程的向量,第二个参数是要求解的未知函数。
`dsolve`函数将返回一个包含所有解的表达式。
在本例中,我们将解存储在`sol`变量中,并使用`disp`函数显示解。
请注意,在使用`dsolve`函数时,需要确保输入的方程是正确的,并且与所求解的问题相对应。
此外,还需要注意符号和函数的定义和使用方式。
用MATLAB求解微分方程及微分方程组

例 3 求微分方程组的通解. dx dt 2 x 3 y 3 z dy 4 x 5 y 3z dt dz 4 x 4 y 2 z dt
任取k1、k2的一组初始值:k0=[2,1];
输入命令: k=lsqcurvefit('curvefun1',k0,t,c) 运行结果为: k =[ 1.3240 作图表示求解结果: t1=0:0.1:18; f=curvefun1(k,t1); plot(t,c,'ko',t1,f,'r-')
90 80 70 60 50 40 30 20 10 0
0.2573]
0
2
46Leabharlann 81012
14
16
18
模型2:慢速饮酒时,体液中酒精含量的变化率
dx k2 x a dt x(0) 0
其中
M a T
M为饮酒的总量,T为饮酒的时间
则有;
a x (1 e k 2 t ) k2
5 5 ) 处时被导弹击中. 当 x 1时 y ,即当乙舰航行到点 (1, 24 24 y 5 被击中时间为: t . 若 v0=1, 则在 t=0.21 处被击中. v0 24v0
轨迹图如下
例: 饮酒模型
模型1:快速饮酒后,胃中酒精含量的变化率
dy k1 y dt y (0) M
5 5 ) 处时被导弹击中. 当 x 1时 y ,即当乙舰航行到点 (1, 24 24 y 5 被击中时间为 : t . 若 v0=1, 则在 t=0.21 处被击中. v0 24v0
matlab求解偏微分方程组

matlab求解偏微分方程组偏微分方程组是数学中的重要问题之一,它描述了自然界中许多现象的变化规律。
而matlab作为一种强大的数值计算软件,可以用来求解偏微分方程组,为科学研究和工程应用提供了便利。
在matlab中,求解偏微分方程组可以使用pdepe函数。
pdepe函数是一个用于求解偏微分方程组的通用求解器,可以处理各种类型的偏微分方程组。
它的基本用法是定义一个偏微分方程组的初始条件、边界条件和方程形式,然后调用pdepe函数进行求解。
首先,我们需要定义偏微分方程组的初始条件和边界条件。
初始条件是指在初始时刻各个变量的取值,而边界条件是指在空间上的边界上各个变量的取值。
这些条件可以是数值或函数形式的。
接下来,我们需要定义偏微分方程组的方程形式。
方程形式是指偏微分方程组的具体形式,包括方程的类型、系数和非线性项等。
在matlab中,可以使用函数句柄的形式来定义方程形式。
然后,我们可以调用pdepe函数进行求解。
pdepe函数的基本语法是:sol = pdepe(m,@pdex1,@pdex2,@pdex3,x,t)其中,m是一个表示方程个数的整数,@pdex1、@pdex2和@pdex3分别是定义初始条件、边界条件和方程形式的函数句柄,x和t分别是表示空间和时间的向量。
最后,我们可以通过sol来获取求解结果。
sol是一个包含求解结果的三维数组,其中第一维表示时间,第二维表示空间,第三维表示方程个数。
我们可以通过索引来获取特定时间和空间点的解。
总之,matlab提供了强大的工具来求解偏微分方程组。
通过定义初始条件、边界条件和方程形式,然后调用pdepe函数进行求解,我们可以得到偏微分方程组的数值解。
这为科学研究和工程应用提供了便利,使得我们能够更好地理解和预测自然界中的变化规律。
matlab偏微分方程组求解

matlab偏微分方程组求解摘要:一、引言1.介绍Matlab 在偏微分方程组求解中的应用2.阐述偏微分方程组的重要性和应用领域3.说明Matlab 在偏微分方程组求解中的优势二、Matlab 偏微分方程组求解方法1.有限差分法2.有限元法3.边界元法4.其他求解方法三、Matlab 偏微分方程组求解步骤1.准备模型和参数2.选择适当的求解方法3.编写求解脚本4.分析结果四、Matlab 偏微分方程组求解案例分析1.二维热传导方程2.二维亥姆霍兹方程3.三维波动方程五、结论1.总结Matlab 在偏微分方程组求解中的应用2.强调Matlab 在偏微分方程组求解中的重要性3.展望Matlab 在偏微分方程组求解领域的发展前景正文:一、引言Matlab 是一款功能强大的数学软件,广泛应用于科学计算、数据分析、建模等领域。
偏微分方程组是描述众多自然现象和工程问题的数学模型,求解偏微分方程组对于理解这些现象和问题具有重要意义。
Matlab 提供了丰富的工具箱和函数,可以方便地求解偏微分方程组,为科研和工程应用提供了强大的支持。
二、Matlab 偏微分方程组求解方法Matlab 提供了多种求解偏微分方程组的方法,包括有限差分法、有限元法、边界元法等。
有限差分法是一种常用的数值求解方法,通过离散化方程组,将偏微分方程转化为离散形式的代数方程组,从而求解。
有限元法和边界元法是另外两种常用的数值求解方法,分别通过将偏微分方程转化为有限个单元的加权积分和边界上的加权积分,从而求解。
除了上述方法外,Matlab 还支持其他求解方法,如有限体积法、谱方法等。
有限体积法是将偏微分方程组的控制区域划分为有限个体积单元,通过对单元内的值进行插值,得到离散形式的偏微分方程组。
谱方法则是利用傅里叶变换将偏微分方程组转化为频域问题,从而求解。
三、Matlab 偏微分方程组求解步骤求解偏微分方程组的过程主要包括准备模型和参数、选择适当的求解方法、编写求解脚本和分析结果四个步骤。
matlab 求解偏微分方程组

一、介绍Matlab是一种强大的数学计算工具,用于解决各种数学问题,包括求解偏微分方程组。
偏微分方程组是描述自然界中许多物理现象的数学模型,其求解对于科学研究和工程应用具有重要意义。
在Matlab中,可以通过多种方法来求解偏微分方程组,包括有限差分方法、有限元方法、谱方法等。
本文将对Matlab中求解偏微分方程组的方法进行介绍和讨论。
二、有限差分方法有限差分方法是一种常用的求解偏微分方程组的数值方法。
其基本思想是将连续的变量离散化为有限个点,并利用差分逼近来近似偏微分方程的导数。
在Matlab中,可以通过编写相应的差分方程组来求解偏微分方程组。
对于二维热传导方程,可以将偏导数用中心差分逼近,并构建相应的差分方程来求解温度分布。
通过循环迭代的方式,可以逐步逼近偏微分方程的解,并得到数值解。
三、有限元方法有限元方法是另一种常用的求解偏微分方程组的数值方法。
其基本思想是将求解区域离散化为有限个单元,并在每个单元内建立近似函数来逼近原始方程。
在Matlab中,可以利用有限元建模工具箱来构建离散化的网格,并编写相应的有限元方程来求解偏微分方程组。
对于弹性力学方程,可以利用有限元方法来求解结构的位移和应力分布。
通过求解线性方程组,可以得到离散化网格上的数值解。
四、谱方法谱方法是一种利用特定基函数展开偏微分方程解的方法。
其基本思想是选取适当的基函数,并通过展开系数来得到偏微分方程的数值解。
在Matlab中,可以通过谱方法工具箱来实现对偏微分方程组的求解。
对于波动方程,可以利用正交多项式展开来逼近波函数,通过选取适当的基函数和展开系数,可以得到偏微分方程的数值解。
五、总结在Matlab中,有多种方法可以用来求解偏微分方程组,包括有限差分方法、有限元方法、谱方法等。
这些方法各有特点,适用于不同类型的偏微分方程和求解问题。
通过合理地选择方法和编写相应的数值算法,可以在Matlab中高效地求解偏微分方程组,为科学研究和工程应用提供重要支持。
如何使用MATLAB求解微分方程(组)

5
10
15
20
25
t/d
其 他 组 织 内 有 机 碘 浓 度 C3(t)
5
10
15
20
25
t/d
30
30
30
14
Examples
E.g.4 求解方程y''+1000(y2-1)y'+y=0。已知初值y(0)=2,y'=0,自变量0<t<3000。 该方程为刚性方程,在使用Simulink模块求解时通过设置Configuration中solver 选项为ode15s来求解方程,并设置仿真时间为0到3000。
果有初始条件,则求出特解。 用字符串表示常微分方程,自变量缺省时为t,导数用
D表示微分。y的2阶导数用D2y表示,依此类推。
8
如何调用?
[T,Y,TE,YE,IE]=solver('odefun',tspan,y0,options)
其中solver为ode23、ode45、ode113、ode15s、ode23s、
Topic: 如何使用MATLAB求 解常微分方程(组)
TMU_BME_2013
1
a.What ?
微分方程指描述未知函数的导数与自变 量之间的关系的方程。未知函数是一元函 数的微分方程称作常微分方程。未知函数 是多元函数的微分方程称作偏微分方程。
MATLAB(matrix&laboratory)意为矩 阵工厂(矩阵实验室).MATLAB是美国 MathWorks公司出品的商业数学软件,提 供高级技术计算语言和交互式环境,主要 包括MATLAB和Simulink两大部分。
matlab偏微分方程组求解

MATLAB偏微分方程组求解介绍偏微分方程组是描述自然界中许多现象的数学模型,包括流体力学、电磁学、热传导等。
求解偏微分方程组是科学研究和工程应用中的重要问题之一。
MATLAB作为一种强大的数值计算工具,提供了丰富的函数和工具箱,可以用于求解偏微分方程组。
本文将介绍如何使用MATLAB求解偏微分方程组。
我们将从基本的概念和数学理论开始,然后介绍MATLAB中的相关函数和工具箱,最后给出一个具体的求解偏微分方程组的示例。
基本概念和数学理论偏微分方程组偏微分方程组是一个包含多个未知函数的方程组,其中每个未知函数的导数(偏导数)出现在方程中。
一般形式的偏微分方程组可以写成以下形式:F1(u1,u2,…,u n,∂u1∂x,∂u2∂x,…,∂u n∂x,∂u1∂y,∂u2∂y,…,∂u n∂y,…)=0F2(u1,u2,…,u n,∂u1∂x,∂u2∂x,…,∂u n∂x,∂u1∂y,∂u2∂y,…,∂u n∂y,…)=0⋮F m(u1,u2,…,u n,∂u1∂x,∂u2∂x,…,∂u n∂x,∂u1∂y,∂u2∂y,…,∂u n∂y,…)=0其中,u1,u2,…,u n是未知函数,∂u1∂x ,∂u2∂x,…,∂u n∂x,∂u1∂y,∂u2∂y,…,∂u n∂y,…是未知函数的偏导数。
边界条件为了求解偏微分方程组,我们需要给出适当的边界条件。
边界条件是在给定的边界上给出未知函数或其导数的值。
常见的边界条件包括:Dirichlet边界条件、Neumann边界条件和Robin边界条件。
•Dirichlet边界条件:给定未知函数在边界上的值。
•Neumann边界条件:给定未知函数的法向导数在边界上的值。
•Robin边界条件:给定未知函数和其法向导数的线性组合在边界上的值。
数值方法由于一般情况下无法找到偏微分方程组的解析解,我们需要使用数值方法来求解。
常见的数值方法包括:有限差分法、有限元法和谱方法。
•有限差分法:将偏微分方程组转化为差分方程组,通过在网格上逼近导数来近似原方程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四讲Matlab求解微分方程(组)理论介绍:Matlab求解微分方程(组)命令求解实例:Matlab求解微分方程(组)实例实际应用问题通过数学建模所归纳得到得方程,绝大多数都就是微分方程,真正能得到代数方程得机会很少、另一方面,能够求解得微分方程也就是十分有限得,特别就是高阶方程与偏微分方程(组)、这就要求我们必须研究微分方程(组)得解法:解析解法与数值解法、一.相关函数、命令及简介1、在Matlab中,用大写字母D表示导数,Dy表示y关于自变量得一阶导数,D2y 表示y关于自变量得二阶导数,依此类推、函数dsolve用来解决常微分方程(组)得求解问题,调用格式为:X=dsolve(‘eqn1’,’eqn2’,…)函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解、注意,系统缺省得自变量为t2、函数dsolve求解得就是常微分方程得精确解法,也称为常微分方程得符号解、但就是,有大量得常微分方程虽然从理论上讲,其解就是存在得,但我们却无法求出其解析解,此时,我们需要寻求方程得数值解,在求常微分方程数值解方面,MATLAB具有丰富得函数,我们将其统称为solver,其一般格式为:[T,Y]=solver(odefun,tspan,y0)说明:(1)solver为命令ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb、ode15i之一、(2)odefun就是显示微分方程在积分区间tspan上从到用初始条件求解、(3)如果要获得微分方程问题在其她指定时间点上得解,则令tspan(要求就是单调得)、(4)因为没有一种算法可以有效得解决所有得ODE问题,为此,Matlab提供了多种求解器solver,对于不同得ODE问题,采用不同得solver、表1 Matlab中文本文件读写函数说明:ode23、ode45就是极其常用得用来求解非刚性得标准形式得一阶微分方程(组)得初值问题得解得Matlab常用程序,其中:ode23采用龙格库塔2阶算法,用3阶公式作误差估计来调节步长,具有低等得精度、ode45则采用龙格库塔4阶算法,用5阶公式作误差估计来调节步长,具有中等得精度、3.在matlab命令窗口、程序或函数中创建局部函数时,可用内联函数inline,inline函数形式相当于编写M函数文件,但不需编写M文件就可以描述出某种数学关系、调用inline函数,只能由一个matlab表达式组成,并且只能返回一个变量,不允许[u,v]这种向量形式、因而,任何要求逻辑运算或乘法运算以求得最终结果得场合,都不能应用inline函数,inline函数得一般形式为:FunctionName=inline(‘函数内容’, ‘所有自变量列表’)例如:(求解F(x)=x^2*cos(a*x)b ,a,b就是标量;x就是向量)在命令窗口输入: Fofx=inline(‘x 、^2*cos(a*x)b’ , ‘x’,’a’,’b’);g= Fofx([pi/3 pi/3、5],4,1)系统输出为:g=1、5483 1、7259注意:由于使用内联对象函数inline不需要另外建立m文件,所有使用比较方便,另外在使用ode45函数得时候,定义函数往往需要编辑一个m文件来单独定义,这样不便于管理文件,这里可以使用inline来定义函数、二.实例介绍1、几个可以直接用Matlab求微分方程精确解得实例例1 求解微分方程程序:syms x y; y=dsolve(‘Dy+2*x*y=x*exp(x^2)’,’x’)例2 求微分方程在初始条件下得特解并画出解函数得图形、程序:syms x y; y=dsolve(‘x*Dy+yexp(1)=0’,’y(1)=2*exp(1)’,’x’);ezplot(y)例3 求解微分方程组在初始条件下得特解并画出解函数得图形、程序:syms x y t[x,y]=dsolve('Dx+5*x+y=exp(t)','Dyx3*y=0','x(0)=1','y(0)=0','t')simple(x);simple(y)ezplot(x,y,[0,1、3]);axis auto2、用ode23、ode45等求解非刚性标准形式得一阶微分方程(组)得初值问题得数值解(近似解)例4 求解微分方程初值问题得数值解,求解范围为区间[0,0、5]、程序:fun=inline('2*y+2*x^2+2*x','x','y');[x,y]=ode23(fun,[0,0、5],1);plot(x,y,'o')例5 求解微分方程得解,并画出解得图形、分析:这就是一个二阶非线性方程,我们可以通过变换,将二阶方程化为一阶方程组求解、令,则编写M文件vdp、mfunction fy=vdp(t,x)fy=[x(2);7*(1x(1)^2)*x(2)x(1)];end在Matlab命令窗口编写程序y0=[1;0][t,x]=ode45(vdp,[0,40],y0);或[t,x]=ode45('vdp',[0,40],y0);y=x(:,1);dy=x(:,2);plot(t,y,t,dy)练习与思考:M文件vdp、m改写成inline函数程序?3、用Euler折线法求解Euler折线法求解得基本思想就是将微分方程初值问题化成一个代数(差分)方程,主要步骤就是用差商替代微商,于就是记从而于就是例6用Euler折线法求解微分方程初值问题得数值解(步长取0、4),求解范围为区间[0,2]、分析:本问题得差分方程为程序:>> clear>> f=sym('y+2*x/y^2');>> a=0;>> b=2;>> h=0、4;>> n=(ba)/h+1;>> x=0;>> y=1;>> szj=[x,y];%数值解>> for i=1:n1y=y+h*subs(f,{'x','y'},{x,y});%subs,替换函数x=x+h;szj=[szj;x,y]; end >>szj>> plot(szj(:,1),szj(:,2))说明:替换函数subs 例如:输入subs(a+b,a,4) 意思就就是把a 用4替换掉,返回 4+b,也可以替换多个变量,例如:subs(cos(a)+sin(b),{a,b},[sym('alpha'),2])分别用字符alpha 替换a 与2替换b,返回 cos(alpha)+sin(2)特别说明:本问题可进一步利用四阶RungeKutta 法求解,Euler 折线法实际上就就是一阶RungeKutta 法,RungeKutta 法得迭代公式为001112341213243(),,(22),6(,),0,1,2,,1(,),22(,),22(,).k k k k k k k k k k k k y y x x x h h y y L L L L L f x y k n h h L f x y L h h L f x y L L f x h y hL ++=⎧⎪=+⎪⎪=++++⎪⎪=⎪=-⎨⎪=++⎪⎪⎪=++⎪⎪=++⎩L 相应得Matlab 程序为:>> clear >> f=sym('y+2*x/y^2'); >> a=0; >> b=2; >> h=0、4; >> n=(ba)/h+1; >> x=0; >> y=1;>> szj=[x,y];%数值解 >> for i=1:n1l1=subs(f, {'x','y'},{x,y});替换函数 l2=subs(f, {'x','y'},{x+h/2,y+l1*h/2}); l3=subs(f, {'x','y'},{x+h/2,y+l2*h/2});l4=subs(f, {'x','y'},{x+h,y+l3*h});y=y+h*(l1+2*l2+2*l3+l4)/6;x=x+h;szj=[szj;x,y];end>>szj>> plot(szj(:,1),szj(:,2))练习与思考:(1)ode45求解问题并比较差异、(2)利用Matlab求微分方程得解、(3)求解微分方程得特解、(4)利用Matlab求微分方程初值问题得解、提醒:尽可能多得考虑解法三.微分方程转换为一阶显式微分方程组Matlab微分方程解算器只能求解标准形式得一阶显式微分方程(组)问题,因此在使用ODE解算器之前,我们需要做得第一步,也就是最重要得一步就就是借助状态变量将微分方程(组)化成Matlab可接受得标准形式、当然,如果ODEs由一个或多个高阶微分方程给出,则我们应先将它变换成一阶显式常微分方程组、下面我们以两个高阶微分方程组构成得ODEs为例介绍如何将它变换成一个一阶显式微分方程组、Step 1 将微分方程得最高阶变量移到等式左边,其它移到右边,并按阶次从低到高排列、形式为:Step 2 为每一阶微分式选择状态变量,最高阶除外注意:ODEs中所有就是因变量得最高阶次之与就就是需要得状态变量得个数,最高阶得微分式不需要给它状态变量、Step 3 根据选用得状态变量,写出所有状态变量得一阶微分表达式练习与思考:(1)求解微分方程组其中(2)求解隐式微分方程组提示:使用符号计算函数solve求,然后利用求解微分方程得方法四.偏微分方程解法Matlab提供了两种方法解决PDE问题,一就是使用pdepe函数,它可以求解一般得PDEs,具有较大得通用性,但只支持命令形式调用;二就是使用PDE工具箱,可以求解特殊PDE问题,PDEtoll有较大得局限性,比如只能求解二阶PDE问题,并且不能解决片微分方程组,但就是它提供了GUI界面,从复杂得编程中解脱出来,同时还可以通过File—>Save As直接生成M代码、1、一般偏微分方程(组)得求解(1)Matlab提供得pdepe函数,可以直接求解一般偏微分方程(组),它得调用格式为:sol=pdepe(m,pdefun,pdeic,pdebc,x,t)pdefun就是PDE得问题描述函数,它必须换成标准形式:这样,PDE就可以编写入口函数:[c,f,s]=pdefun(x,t,u,du),m,x,t对应于式中相关参数,du就是u得一阶导数,由给定得输入变量可表示出c,f,s这三个函数、pdebc就是PDE得边界条件描述函数,它必须化为形式:于就是边值条件可以编写函数描述为:[pa,qa,pb,qb]=pdebc(x,t,u,du),其中a表示下边界,b表示上边界、pdeic就是PDE得初值条件,必须化为形式:,故可以使用函数描述为:u0=pdeic(x)sol就是一个三维数组,sol(:,:,i)表示得解,换句话说,对应x(i)与t(j)时得解为sol(i,j,k),通过sol,我们可以使用pdeval函数直接计算某个点得函数值、(2)实例说明求解偏微分其中,且满足初始条件及边界条件解:(1)对照给出得偏微分方程与pdepe函数求解得标准形式,原方程改写为可见%目标PDE函数function [c,f,s]=pdefun(x,t,u,du)c=[1;1];f=[0、024*du(1);0、17*du(2)];temp=u(1)u(2);s=[1;1]、*(exp(5、73*temp)exp(11、46*temp))end(2)边界条件改写为:下边界上边界%边界条件函数function [pa,qa,pb,qb]=pdebc(xa,ua,xb,ub,t)pa=[0;ua(2)];qa=[1;0];pb=[ub(1)1;0];qb=[0;1];end(3)初值条件改写为:%初值条件函数function u0=pdeic(x)u0=[1;0];end(4)编写主调函数clcx=0:0、05:1;t=0:0、05:2;m=0;sol=pdepe(m,pdefun,pdeic,pdebc,x,t);subplot(2,1,1) surf(x,t,sol(:,:,1))subplot(2,1,2) surf(x,t,sol(:,:,2))练习与思考: This example illustrates the straightforward formulation, putation, and plotting of the solution of a single PDE、This equation holds on an interval for times 、The PDE satisfies the initial condition and boundary conditions2、PDEtool求解偏微分方程(1)PDEtool(GUI)求解偏微分方程得一般步骤在Matlab命令窗口输入pdetool,回车,PDE工具箱得图形用户界面(GUI)系统就启动了、从定义一个偏微分方程问题到完成解偏微分方程得定解,整个过程大致可以分为六个阶段Step 1 “Draw模式”绘制平面有界区域,通过公式把Matlab系统提供得实体模型:矩形、圆、椭圆与多边形,组合起来,生成需要得平面区域、Step 2 “Boundary模式”定义边界,声明不同边界段得边界条件、Step 3 “PDE模式”定义偏微分方程,确定方程类型与方程系数c,a,f,d,根据具体情况,还可以在不同子区域声明不同系数、Step 4 “Mesh模式”网格化区域,可以控制自动生成网格得参数,对生成得网格进行多次细化,使网格分割更细更合理、Step 5 “Solve模式”解偏微分方程,对于椭圆型方程可以激活并控制非线性自适应解题器来处理非线性方程;对于抛物线型方程与双曲型方程,设置初始边界条件后可以求出给定时刻t得解;对于特征值问题,可以求出给定区间上得特征值、求解完成后,可以返回到Step 4,对网格进一步细化,进行再次求解、Step 6 “View模式”计算结果得可视化,可以通过设置系统提供得对话框,显示所求得解得表面图、网格图、等高线图与箭头梯形图、对于抛物线型与双曲线型问题得解还可以进行动画演示、(2)实例说明用法求解一个正方形区域上得特征值问题:正方形区域为:(1)使用PDE工具箱打开GUI求解方程(2)进入Draw模式,绘制一个矩形,然后双击矩形,在弹出得对话框中设置Left=1,Bottom=1,Width=2,Height=2,确认并关闭对话框(3)进入Boundary模式,边界条件采用Dirichlet条件得默认值(4)进入PDE模式,单击工具栏PDE按钮,在弹出得对话框中方程类型选择Eigenmodes,参数设置c=1,a=1/2,d=1,确认后关闭对话框(5)单击工具栏得按钮,对正方形区域进行初始网格剖分,然后再对网格进一步细化剖分一次(6)点开solve菜单,单击Parameters选项,在弹出得对话框中设置特征值区域为[20,20](7)单击Plot菜单得Parameters项,在弹出得对话框中选中Color、Height(3D plot)与show mesh项,然后单击Done确认(8)单击工具栏得“=”按钮,开始求解。