MATLAB常微分方程(ODE)解算
(copyright:lishuxingok@http://www.doczj.com/doc/799f0030f242336c1eb95eff.html)
一ODE解算指令
MATLAB解算ODE方程一共有三方面的协调:
一个是ODE文件;
一个是主程序中的solver解算指令,用来调用ODE文件;
一个是解算选项options的设置;
前两个东西一定要区分他们的格式。
关于以上两个函数格式,在这里列举一下二者的主要不同,以免用错: 1.1.ODE文件:
MATLAB用专门名称“ODE文件”称呼被微分方程解算指令调用的M函数。ODE文件的功能很多,其中最基本的、最必不可少的功能是:计算每一步的导数。此外,还有一些常用的功能,如解算指令中options的参数设置,事件设置等。
MATLAB给ODE文件制订了严格的格式和规定,而且也提供了一个模板文件。 function varagout = odefile (t,y,flag,p1,p2)
1. varargout 是MATLAB专门设计的"变长度"输出宗量。它由元胞数组构成,
因此可适应任意多个、任意形式的输出宗量,也就是说MATLAB对ODE文件的输出没有要求,可以是任意的东西。当然,最简单的情形就是以dy/dt作为输出宗量,这点要牢记,而且一般情况下会用这种情形就行了,更复杂的编写方法还可以包含其他有用信息,这个可见参考MATLAB自带的odefile;
2.自变量t,不管在下面指令中是否出现,自变量t必须作为第一输入宗量(牢
记),任何调用格式都必须服从此规则;
3.因变量y,一阶微分方程组的列向量形式函数。它必须作为第二输入宗量(牢
记),任何调用格式都必须服从此规则;
4.Flag,切换变量。它必须处在第三输入宗量位置(牢记),任何调用格式都必
须服从此规则,除非在只有两个输入宗量的最简洁格式中。用户无须也不要对它直接赋值,直接写flag就行,它的赋值由微分方程解算指令(solver)自动产生;
5.被传递的参数要位于第四、五、六、七分量上,而且要注意的是这些分量的
参数性质、数目和排列次序应该与solver解算器中第五、六、七、八分量相