前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高精度数值运算解病态方程组

高精度数值运算解病态方程组

作者头像
fem178
发布2019-07-24 15:24:01
1.1K0
发布2019-07-24 15:24:01
举报

针对病态方程组对任何算法都将产生数值不稳定性,可采用高精度数值运算解决这个问题。

Fortran内置函数SELECTED_REAL_KIND(p, r),默认两个参数p是精度,r是范围。p是所需精度的十进制数值,r是以10^r次方表示的所需数值的范围。当执行该函数的时候,会返回达到或者超过指定精度或者范围的的实型数据的最小类别参数。使用该函数可以保持程序通用性,而不受平台限制。

kind_num = SELECTED_REAL_KIND(13,100)

kind_num = SELECTED_REAL_KIND(13)

kind_num = SELECTED_REAL_KIND(r=100,p=13)

kind_num = SELECTED_REAL_KIND(r=100)

以上都是函数的调用方法皆正确,因为函数参数是可选的。

注意程序中第二个变量所需的精度为13位小数和10^200次方的范围,但是处理器实际分配的精度为15位小数和10^308次方的范围.

●算例

采用的精度计算,结果为:

采用双精度计算,结果为:

更复杂的方程组可以用函数SELECTED_REAL_KIND选择所需精度。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数值分析与有限元编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档