1.了解Euler算法求解微分方程的原理
2.了解Runge-Kutta算法原理及MATLAB实现
3.学会使用Runge-Kutta等算法对一阶微分方程组进行求解
4.学会对带有参数的微分方程的求解
本节引入了数值解的概念,并以最简单的一阶微分方程的Euler算法为例,介绍了一般数值解法的思路并介绍了变步长求解的概念,还介绍了MATLAB下微分方程是实用数值求解函数,通过例子演示该函数在一般一阶显式常微分方程初值函数能直接求解的方程是一阶显式微分方程组,若给出的方程不是这类函数,则需要首先将其变换成一阶显式微分方程组,然后使用常规方法对其求解。
前面介绍了微分方程的解析解方法,同时也指出很多非线性微分方程是不存在解析解法的,需要使用数值解法对之进行研究。从本节开始着重讨论基于MATLAB/Simulink语言的各类微分方程的数值解方法。包括:
微分方程问题算法概述
微分方程求解的误差与步长问题
四阶定步长Runge-Kutta算法及MATLAB实现
四阶定步长的Runge-Kutta算法是传统数值分析课程和系统仿真课程中最常介绍的算法,被认为是求解微分方程最有效的一种方法。
该算法看似简单,然而从求解数值问题的效果看,该算法不是一个较好的方法。
一阶微分方程组的数值解
四阶五级Runge-Kutta-Felhberg算法
基于MATLAB的微分方程求解函数
MATLAB下求解微分方程组初值问题数值解最常用的是ode45()函数:
[t,x] = ode45(Fun, [t0,tf], x0) %直接求解
[t,x] = ode45(Fun, [t0,tf], x0, option) %带有控制选项
[t,x] = ode45(Fun, [t0,tf], x0, option, p1, p2, …) %带有附加参数
2.3.3 MATLAB下带有附加参数的微分方程求解
在基于MATLAB语言的微分方程求解中,引入附加参数的目的是,若微分方程的某些参数可以选择不同的值,对不同值得求解时考虑附加参数可以避免每次修改模型文件。
微分方程数值解的验证