找回密码
 注册
Simdroid-非首页
查看: 88|回复: 2

[3. Fortran] 请教:FORTRAN的imsl库 计算行列式

[复制链接]
发表于 2010-8-12 09:19:01 | 显示全部楼层 |阅读模式 来自 江苏南通
请教:
我使用imsl库的det计算行列式,发现矩阵值很大时,算的有问题诶,如下:

real :: a(2,2),value
  a=2e10
  value=det(a)
print *,'该方阵的行列式值为',value


该矩阵内各个位置值相同,理论上其行列式应该是0
但,
若取a=2e10,则输出的值为1.813..e13
若取a=2e0,则输出的值为-1.656..e-8

。。。。这让我很疑惑啊,请教各位大牛,这是什么原因??

PS:我是在做有限元刚度矩阵计算的,理论上都该为0,但。。。甚是疑惑
发表于 2010-8-12 19:30:03 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
请教:
我使用imsl库的det计算行列式,发现矩阵值很大时,算的有问题诶,如下:

real :: a(2,2),value
  a=2e10
  value=det(a)
print *,'该方阵的行列式值为',value

该矩阵内各个位置值相同,理论上其行列 ...
faye100 发表于 2010-8-12 09:19

用双精度也是同样的结果?!
回复 不支持

使用道具 举报

 楼主| 发表于 2010-8-13 09:33:32 | 显示全部楼层 来自 江苏南通
2# pasuka 恩,是的
program  d
use imsl
implicit none

integer :: n,i,j
real(8):: a(2,2)
real(8) det_a

a=1.0d10

det_a=det(a)
print *,'该方阵的行列式值为',det_a
end

计算的值为26973.983057096722,晕
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 11:41 , Processed in 0.051447 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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