数值计算project——ODE求解器

一、介绍

这篇文章介绍一个ODE solver的实现思路,可用于一阶线性系统的求解。

  • 首先,找到一组ODE方程,可以从网上找算例,或者从comsol等软件中导出。
  • 其次,用matlab来求解,看计算结果。
  • 最后,自己实现一个ODE solver,并将结果与matlab的结果进行对比。

 

二、ODE方程

如何获得一组ODE系统方程?

方法1:

在comsol中建模,尝试导出原始系数矩阵,发现需要借助matlab,还可能涉及矩阵组装。用的matlab函数有mphmatrix(获取模型系统矩阵)。

具体可以参考COMSOL安装目录的doc文件夹下的案例D:\COMSOL\COMSOL60\Multiphysics\doc\pdf\LiveLink_for_MATLAB。

 

方法2:

从头开始,通过有限元方法,获得一个系统矩阵,详见我的另一篇blog: A First course in FEM —— matlab代码实现求解传热问题(瞬态)

 

三、求解ODE方程

常用的方法有欧拉法、梯形积分法和3阶/4阶龙格库塔法。

也可以对ODE的系数矩阵做模型降阶,然后求解。

新型的一些方法如指数积分方法,可以参考我的另一篇blog:指数积分方法(Exponential Integration)求解ODE/DAE问题

posted @ 2023-06-15 23:27  blogzzt  阅读(143)  评论(0编辑  收藏  举报