matlab中的微分方程.ppt

上传人:小飞机 文档编号:6511755 上传时间:2023-11-08 格式:PPT 页数:20 大小:212.49KB
返回 下载 相关 举报
matlab中的微分方程.ppt_第1页
第1页 / 共20页
matlab中的微分方程.ppt_第2页
第2页 / 共20页
matlab中的微分方程.ppt_第3页
第3页 / 共20页
matlab中的微分方程.ppt_第4页
第4页 / 共20页
matlab中的微分方程.ppt_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《matlab中的微分方程.ppt》由会员分享,可在线阅读,更多相关《matlab中的微分方程.ppt(20页珍藏版)》请在三一办公上搜索。

1、2.5 微分方程,2.5.1 常微分方程的符号解,Maltlab提供了求解线性常微分方程函数r=dsolve(eq1,eq2,.,cond1,cond2,.,v),可以有以下几种调用格式:1)r=dsolve(eqn,v):输入利用符号方程表示的微分方程eqn,v为自变量,系统缺省的自变量为t,返回方程通解;2)r=dsolve(eq1,eq2,.,v):输入量eq1,eq2,.为利用符号方程表示的常微分方程组,其它同1);3)r=dsolve(eq1,cond1,cond2,.,v):输入利用符号方程表示的微分方程eqn,而cond1,cond2,.表示初始条件;,4)r=dsolve(eq

2、1,eq2,.,cond1,cond2,.,v):输入量eq1,eq2,.为利用符号方程表示的常微分方程组,而cond1,cond2,.表示初始条件.注意:在调用此函数之前,必须首先将给定的常微分方程或方程组中的一阶导数用D表示,如 写成Dy,写成Dny.,解:1)Y,Z=dsolve(Dy=3*y-2*z,Dz=2*y-z,x)2)本题是同济大学数学教研室编写的高等数学中的例题,书中没有给出明确的通解表达式,X,Y=dsolve(D2y+Dy-x=exp(t),D2y+Dx+y=0),2.5.2 常微分方程的数值解,1、在求常微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为so

3、lver,其一般格式为:T,Y=solver(odefun,tspan,y0)该函数表示在区间tspan=t0,t f 上,用初始条件y0求解显式常微分方程,其中odefun为显式常微分方程 中的;tspan为求解区间,要获得问题在其他指定点 上的解,则令(要求ti单调)、y0初始条件.Solver可取命令ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb等.,1)T,Y=ode45(odefun,tspan,y0):大部分场合的首选算法,一步算法,4,5阶Runge-Kutta方法累积截断误差;2)T,Y=ode23(odefun,tspan,y0

4、):适用于精度较低的情形,一步算法,2,3阶Runge-Kutta方法累积截断误差;3)T,Y=ode113(odefun,tspan,y0):计算速度较快,多步算法,Adams算法,高低精度均可达到;4)T,Y=ode23t(odefun,tspan,y0):采用梯形算法,适度刚性方程情形;5)T,Y=ode15s(odefun,tspan,y0):若ode45失效时,可尝试使用其解决问题,Gears反向数值积分,精度中等;,6)T,Y=ode23s(odefun,tspan,y0):一步法,2阶Rosebrock算法,低精度.2、在求解过程中有时需要对求解算法和控制条件进行进一步设置,这是

5、可以通过求解过程中的options 变量进行修改,初始options 变量可以通过odeset()获取,该函数为创建或改写ODE选项构架参数值.1)options=odeset(name1,value1,name2,value2,.)创建ODE选项构架参数值,控制参数name1,name2,.的属性值通过value1,value2,.来设定.常用控制参数主要有:RelTol:为相对容许上限,默认0.001;AbsTol:为一个向量,其分量表示每个状态变量允许的绝对误差,其默认值为10-6;,MaxStep:为求解方程最大允许的步长;Mass:微分代数方程中的质量矩阵,可用于描述微分代数方程;2

6、)options=odeset(oldopts,name1,value1,.)改写现有oldopts 的options结构体;3)options=odeset(oldopts,newopts)通过与新newopts的options结构体合并,改写现有oldopts 的options结构体.,fun=inline(-2*y+2*x*x+2*x);x,y=ode23(fun,0,0.5,1),解:首先建立名为rigid.M的函数function dy=rigid(t,y)dy=zeros(3,1);%a column vectordy(1)=y(2)*y(3);dy(2)=-y(1)*y(3);d

7、y(3)=-0.51*y(1)*y(2);由已知得初始条件向量0 1 1,设置允许误差分别为10-4 10-5 10-6,相对容许上限10-4,然后在窗口中输入:options=odeset(RelTol,1e-4,AbsTol,1e-4 1e-4 1e-5);T,Y=ode45(rigid,0 12,0 1 1,options)plot(T,Y(:,1),-,T,Y(:,2),-.,T,Y(:,3),.);,首先建立vdp1.M文件:function dydt=vdp1(t,y)dydt=y(2);(1-y(1)2)*y(2)-y(1);然后建立M文件,并运行:t,y=ode45(vdp1,

8、0 20,2;0);plot(t,y(:,1),-,t,y(:,2),-)title(Solution of van der Pol Equation,mu=1);xlabel(time t);ylabel(solution y);legend(y_1,y_2),2.5.3 偏微分方程的解法及应用,使用GUI求解偏微分方程的一般步骤是:1、区域设置2、设置边界条件3、设置方程类型4、网格剖分5、初值和误差的设置6、数值解的输出7、解的图形,使用程序常用命令有:1、g=circleg%调用几何体函数circleg.m2、b=circleb1%调用边界条件函数circleb.m3、u=assemp

9、de(b,p,e,t,c,a,f)%解偏微分方程4、p e t=initmesh(h)%对几何区域进行初始网格剖分5、pdemesh(p,e,t,u)%绘制PDE的三角形网格图6、pdesurf(p,t,u)%绘制PDE的表面图,解决这个问题可以通过使用图形用户界面(Graphical User Interface,简记为GUI),则可通过在命令窗口键入pdetool,回车后出现PDEToolbox窗口.然后通过一系列按钮你输入命令的方式完成,这里只给出Matlab程序求解PDE问题的方法.,输入命令为:g=circleg;h=hmax;%调用已有函数p,e,t=initmesh(g,h,1)

10、;%对几何区域进行初始网格err=1;while err0.001,p,e,t=refinemesh(g,p,e,t);%加密网格 b=circleb1;%调用已有函数 u=assempde(b,p,e,t,1,0,1);%解偏微分方程exact=(1-p(1,:).2-p(2,:).2)/4;%给出精确解err=norm(u-exact,inf);endpdemesh(p,e,t)%绘制网格图figure,pdesurf(p,t,u)%新开窗口,绘制方程解的曲面图figure,pdesurf(p,t,u-exact)%新开窗口,绘制误差图,2.5.4 传染病传播问题,1、求导函数diff;2

11、、绘图函数plot;3、微分方程求解函数dsolve、ode45等.,2.5.5 人口增长的预测,1、拟合函数polyfitpolyfit(x,y,n):x,y为要拟合的数据,n为希望最佳拟合数据的多项式的次数.如果我们选择n=1,得到最简单的线性近似,通常称为线性回归.如果我们选择n=2作为阶次,得到一个2阶多项式.返回值为多项式的系数,高次在前,低次在后.2、多项式函数的预测值polyvalY=polyval(p,x):求polyfit所得的多项式在x处的预测值Y.p是polyfit函数的返回值,x和polyfit函数的x值相同.3、函数插值interp1、interp2、interp3

12、1)一维插值:interp1(x,y,cx,method),此函数对于数据分析和曲线拟合都是很重要的.它应用多项式技术用多项式函数拟合提供的已知数据,通过已知的点求出一个适当的函数,并提供理想的插值点.其中y为包含函,数值的矢量,x是与y长度相同的矢量,包含与y相对应的取值.矢量cx包含用于插值的点.第四个参数method用于指定插值方法,主要包括:邻近插值(nearest)、线性插值(linear)、样条插值(spline)、立方插值(cubic).,2)二维插值interp2(X,Y,Z,X1,Y1,method),Z为包含二维函数值的数组;数组X与Y具有相同的大小,为对应于Z的取值的自变

13、量组成的数组;X1与Y1为用于插值的数组;参数method用于指定插值方法,主要包括:邻近插值(nearest)、双线性插值(linear)、二重三次方插值(cubic).3)三维插值interp3(X,Y,Z,V,X1,Y1,Z1,method),实现三维数据插值,X1、Y1与Z1为用于确定插值点函数值的三个自变量的值的组成的数组;对于有三个自变量的函数v=f(x,y,z),任意一点x,y,z存在与之对应的值v,在插值时必须指定X、Y、Z的三个数组及其与之对应的函数值组V;method 用于指定插值方法,主要包括:邻近插值(nearest)、三次线性插值(linear)、三次立方插值(cubic).,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号