h****f 发帖数: 24 | 1 用matlab的时候要在循环语句中多次使用inv(),矩阵取逆的命令,但是经常遇到
矩阵是奇异阵的情况,就会出现很怪的数字。怎么能避免矩阵奇异啊,用不会大幅度改
变原计算的准确性?谢谢 |
B********e 发帖数: 10014 | 2 是矩阵近奇异inv才有问题,不是因为人家inv把你的矩阵搞奇异了
因果关系要搞清楚,呵呵,这个连我这个民科都知道
应用里既然矩阵是奇异的,根据情况可以取伪逆(当然你自己得知道影响不影响应用)。
取伪逆在matlab里可以用pinv,或者左右除 \,/
【在 h****f 的大作中提到】 : 用matlab的时候要在循环语句中多次使用inv(),矩阵取逆的命令,但是经常遇到 : 矩阵是奇异阵的情况,就会出现很怪的数字。怎么能避免矩阵奇异啊,用不会大幅度改 : 变原计算的准确性?谢谢
|
h****f 发帖数: 24 | 3 我发现问题了,不是矩阵奇异的问题,是exp语句当内部的值小到一定程度(我发现-
1.9e+3)就能使它变成0。也就是exp(-1900)就是0了。而我又用相应结果用在分母
,然后产生NaN数,这个数用在矩阵里,就显示奇异问题了。这个就不知怎么处理了。
)。
【在 B********e 的大作中提到】 : 是矩阵近奇异inv才有问题,不是因为人家inv把你的矩阵搞奇异了 : 因果关系要搞清楚,呵呵,这个连我这个民科都知道 : 应用里既然矩阵是奇异的,根据情况可以取伪逆(当然你自己得知道影响不影响应用)。 : 取伪逆在matlab里可以用pinv,或者左右除 \,/
|
a**a 发帖数: 416 | 4 如果你的数据范围没有超过浮点数的动态范围,那么你可以考虑数据放大。否则,
就那样了。
【在 h****f 的大作中提到】 : 我发现问题了,不是矩阵奇异的问题,是exp语句当内部的值小到一定程度(我发现- : 1.9e+3)就能使它变成0。也就是exp(-1900)就是0了。而我又用相应结果用在分母 : ,然后产生NaN数,这个数用在矩阵里,就显示奇异问题了。这个就不知怎么处理了。 : : )。
|
h****f 发帖数: 24 | 5 浮点数的动态范围是多少?我发现exp(-800)就是0了,这样可没法处理数据。
不知道你说的数据放大什么意思?
【在 a**a 的大作中提到】 : 如果你的数据范围没有超过浮点数的动态范围,那么你可以考虑数据放大。否则, : 就那样了。
|
B********e 发帖数: 10014 | 6 exp(-1900)在巨型机上恐怕也是0吧,呵呵
试试先分析化简整个分子,类似于渐进分析一下
【在 h****f 的大作中提到】 : 我发现问题了,不是矩阵奇异的问题,是exp语句当内部的值小到一定程度(我发现- : 1.9e+3)就能使它变成0。也就是exp(-1900)就是0了。而我又用相应结果用在分母 : ,然后产生NaN数,这个数用在矩阵里,就显示奇异问题了。这个就不知怎么处理了。 : : )。
|
n*******l 发帖数: 2911 | 7 Do you have any idea how small exp(-800) is? It is not realistic to include
such a small number in a reasonable model.
For your reference, the size of a hydrogen atom is about 10^(-10) m.
And exp(-800) = 10^(-347).
【在 h****f 的大作中提到】 : 浮点数的动态范围是多少?我发现exp(-800)就是0了,这样可没法处理数据。 : 不知道你说的数据放大什么意思?
|
B********e 发帖数: 10014 | 8 想到还有比我更渺小的东西存在,生活顿时充满了快乐
include
【在 n*******l 的大作中提到】 : Do you have any idea how small exp(-800) is? It is not realistic to include : such a small number in a reasonable model. : For your reference, the size of a hydrogen atom is about 10^(-10) m. : And exp(-800) = 10^(-347).
|