Fortran Coder

查看: 8535|回复: 3
打印 上一主题 下一主题

[数学库] MKL_DSS solver 计算结果精度控制(高维数稳定计算)

[复制链接]

21

帖子

6

主题

0

精华

入门

F 币
83 元
贡献
50 点
跳转到指定楼层
楼主
发表于 2014-4-8 00:15:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
迭代调用mkl_dss solver求解大型非线性方程组,每次计算结果都有差别。单步执行后,发现mkl_dss solver在给定同样的输入下,每次给出的输出都略有差别,这些差别在迭代过程中累计,就使得最终非线性方程组收敛到不同的解,或者有时候就不收敛。(在方程维数高的情况下尤甚)。

求高人指点如何控制mkl_dss solver的计算结果精度,从而保证每一次调用它,在相同的输入情况下,使其输出结果相同。

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

490

帖子

4

主题

0

精华

大宗师

F 币
3298 元
贡献
1948 点

水王勋章元老勋章热心勋章

沙发
发表于 2014-4-8 08:12:37 | 只看该作者
1、非线性方程组求解问题最好还是用迭代法,直接分解法不是太合适
2、即使采用迭代法,也需要针对实际情况使用不同的预处理措施

21

帖子

6

主题

0

精华

入门

F 币
83 元
贡献
50 点
板凳
 楼主| 发表于 2014-4-8 09:51:54 | 只看该作者
pasuka 发表于 2014-4-8 08:12
1、非线性方程组求解问题最好还是用迭代法,直接分解法不是太合适
2、即使采用迭代法,也需要针对实际情况 ...

我是用牛顿法迭代求解,每次迭代式求解线性方程组,现在的问题出现在每次求解线性方程组,相同的方程参数,会有不同的结果输出,虽然相差不大~

21

帖子

6

主题

0

精华

入门

F 币
83 元
贡献
50 点
地板
 楼主| 发表于 2014-4-8 11:03:50 | 只看该作者
貌似找到解决办法啦~
将Use Intel Math Kernel Library 设置为 Sequential(/Qmkl:sequential)就好了~
如下图所示
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-24 02:10

Powered by Tencent X3.4

© 2013-2024 Tencent

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