matlab解常微分方程——数值解法
由于一些数学方程,如果用符号表示很复杂或者根本用现有的数学符号无法给出解析解。而且人们往往关心的只是某些具体值的解。于是数值解应运而生,而matlab中可以很好地给出数值解。你只需要知道怎么用就行,不需要知道用什么方法解决的。毕竟人们只有站在巨人的肩膀上,才能看得更远。
操作方法
- 01
matlab中解常微分方程的数值解常用的命令有两个,一个是ode23,一个是ode45.两个解法都是基于龙格-库塔公式。详细的就不说了,否则有点显得喧宾夺主了。其中常用的是ode23命令。
- 02
命令形式为[t,y]=ode23('fun',ts,y0,options)。 其中[t,y]为输出矩阵,分别表示自变量t和因变量y的取值。 fun为待解方程写成的m函数文件名。 ts为自变量的取值范围。 y0为函数的初值。 options用于设定误差限,可以缺省。
- 03
下面用一个实例说明。初始条件为y(0)=1.
- 04
首先建立m函数文件。 该文件的输入为自变量与因变量,输出为因变量的一阶导数。(如果方程中有二阶导数及以上的,需要增加变量转换为一阶导数)
- 05
然后再主程序中调用已有的数值积分函数进行积分。
赞 (0)