数学建模社区-数学中国

标题: 常微分方程(ODE)组初值问题的数值解 [打印本页]

作者: 森之张卫东    时间: 2015-8-20 21:47
标题: 常微分方程(ODE)组初值问题的数值解

函数ode45ode23ode113ode15sode23sode23tode23tb

功能常微分方程(ODE)组初值问题的数值解

参数说明:

solver为命令ode45ode23,ode113,ode15s,ode23s,ode23t,ode23tb之一。

Odefun 显式常微分方程y’=f(t,y),或为包含一混合矩阵的方程M(t,y)*y’=f(t,y)。命令ode23只能求解常数混合矩阵的问题;命令ode23tode15s可以求解奇异矩阵的问题。

Tspan 积分区间(即求解区间)的向量tspan=[t0,tf]。要获得问题在其他指定时间点t0,t1,t2,…上的解,则令tspan=[t0,t1,t2,…,tf](要求是单调的)。

Y0 包含初始条件的向量。

Options 用命令odeset设置的可选积分参数。

P1,p2,… 传递给函数odefun的可选参数。

格式[T,Y] =solver(odefun,tspan,y0)%在区间tspan=[t0,tf]上,从t0tf,用初始条件y0求解显式微分方程y’=f(t,y)。对于标量t与列向量y,函数f=odefun(t,y)必须返回一f(t,y)的列向量f。解矩阵Y中的每一行对应于返回的时间列向量T中的一个时间点。要获得问题在其他指定时间点t0,t1,t2,…上的解,则令tspan=[t0,t1,t2,…,tf](要求是单调的)。

[T,Y] = solver(odefun,tspan,y0,options)%用参数options(用命令odeset生成)设置的属性(代替了缺省的积分参数),再进行操作。常用的属性包括相对误差值RelTol(缺省值为1e-3)与绝对误差向量AbsTol(缺省值为每一元素为1e-6)。

[T,Y] =solver(odefun,tspan,y0,options,p1,p2…) 将参数p1,p2,p3,..等传递给函数odefun,再进行计算。若没有参数设置,则令options=[]

1.求解具体ODE的基本过程:

1)根据问题所属学科中的规律、定律、公式,用微分方程与初始条件进行描述。

F(y,y’,y’’,…,y(n),t) = 0

y(0)=y0,y’(0)=y1,…,y(n-1)(0)=yn-1

y=[y;y(1);y(2);…,y(m-1)]nm可以不等

2)运用数学中的变量替换:yn=y(n-1),yn-1=y(n-2),…,y2=y1=y,把高阶(大于2阶)的方程(组)写成一阶微分方程组:

3)根据(1)与(2)的结果,编写能计算导数的M-函数文件odefile

4)将文件odefile与初始条件传递给求解器Solver中的一个,运行后就可得到ODE的、在指定时间区间上的解列向量y(其中包含y及不同阶的导数)。



作者: yuhuatang    时间: 2015-8-21 16:14
楼主,啦啦啦~~~





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5