文档详情

matlab中的 微分方程matlab中的 微分方程.ppt

发布:2017-12-16约4.49千字共20页下载文档
文本预览下载声明
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(eq1,eq2,..., cond1,cond2,..., v):输入量eq1,eq2,...为利用符号方程表示的常微分方程组,而cond1,cond2,...表示初始条件. 注意:在调用此函数之前,必须首先将给定的常微分方程或方程组中的一阶导数用D表示, 如 写成Dy, 写成Dny. 2.5.2 常微分方程的数值解 1、在求常微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为:[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):适用于精度较低的情形,一步算法,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失效时,可尝试使用其解决问题,Gear’s反向数值积分,精度中等; 6)[T,Y]= ode23s (odefun,tspan,y0):一步法,2阶Rosebrock算法,低精度. 2、在求解过程中有时需要对求解算法和控制条件进行进一步设置,这是可以通过求解过程中的options 变量进行修改,初始options 变量可以通过odeset?( )获取,该函数为创建或改写ODE选项构架参数值. 1)options = odeset(name1,value1,name2,value2,...) 创建ODE选项构架参数值,控制参数name1,name2,...的属性值通过value1,value2,...来设定.常用控制参数主要有: ①RelTol:为相对容许上限,默认0.001; ②AbsTol:为一个向量,其分量表示每个状态变量允许的绝对误差,其默认值为10-6; 2.5.3 偏微分方程的解法及应用 使用GUI求解偏微分方程的一般步骤是: 1、区域设置 2、设置边界条件 3、设置方程类型 4、网格剖分 5、初值和误差的设置 6、数值解的输出 7、解的图形 使用程序常用命令有: 1、g=circleg %调用几何体函数circleg.m 2、b=circleb1 %调用边界条件函数circleb.m 3、u=assempde (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的表面图 2.5.4 传染病传播问题 1、求导函数diff; 2、绘图函数plot; 3、微分方程求解函数dsolve 、ode45等. 2.5.5 人口增长的预测 1、拟合函数polyfit polyfit(x,y,n):x, y为要拟合的数据,n为希望最佳拟合数据的多项式的
显示全部
相似文档