声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2505|回复: 7

[其他相关] 有没有自动求解刚性和非刚性方程的程序

[复制链接]
发表于 2009-1-18 23:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
如标题所示,如果某个常微分方程组在求解过程中有时是刚性的,有时是非刚性的,也就是要求求解微分方程组的数值方法能够根据方程组的“刚”性自动判别所的数值方法并且可以自动切换,以适应求解要求。我收集到的一个程序 LSODA.F 即满足这个要求,只可惜是fortran的,我在想有没有简单的matlab程序可供借用,后附 lsoda.f 程序,仅供参考!(将lsoda.f.doc改为lsoda.f 即可)

LSODA.f.doc

79.38 KB, 下载次数: 28

回复
分享到:

使用道具 举报

发表于 2009-1-22 12:56 | 显示全部楼层
:funk: 不会……我都是用matlab编程实现的。
发表于 2009-1-22 17:43 | 显示全部楼层
可以用matlab来调用fortran呀,混合编程可以实现的。
 楼主| 发表于 2009-1-22 22:53 | 显示全部楼层

回复 板凳 zhoulon 的帖子

matlab是可以调用fortran来运算,关键是fortran的这个求解程序及算法相当长,里面还涉及不少未找到的子程序,且暂时没有时间仔细阅读,如果不通读的话就不可能正确调用,话又说回来,如果会正确调用,当然可以将其修改成matlab程序,何必麻烦互相调用,有那个必要吗?
  matlab提供了求解一般方程的 ode45 和刚性方程的 ode15s,实际上只要能实时的判断方程“刚性”与否,再选择不同的求解方程求解即可,编这么个小程序没什么困难。难的地方是:如我前面所述,常微分方程组在求解过程中有时是刚性的,有时是非刚性的,那么如何判断此时方程是否是“刚”性的,请大家详细说明一下判别方法的相关理论或文献都可。
  
发表于 2009-1-24 23:42 | 显示全部楼层
这个“有时”是指什么?定义域或是参数?
发表于 2009-2-12 18:02 | 显示全部楼层

回复 5楼 logxing 的帖子

这里的有时应该是不同的方程
发表于 2009-3-5 15:58 | 显示全部楼层
我也碰到了这种情况,是在求反问题中,由于要用海量不同的参数回代解原来的方程组,所以方程组有可能会在刚性与非刚性之间转换,不知道有什么方法可以解决,对方程组解的江都要求很高,MATLAB里面的ODE45和ODE15S函数都达不到精度
发表于 2009-3-5 15:59 | 显示全部楼层
江都-----精度
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-6 02:19 , Processed in 0.124356 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表