mathe 发表于 2008-4-16 10:11:07

不过对于病态的矩阵,其实通过奇异值分解也是一种方法。将矩阵X分解为
$UYV$,
其中U和V都是正定阵,Y是对角阵。
还有不知道你计算这个矩阵的逆用来干嘛,如果是解方程
$Xt=a$
可以取一个比较小的常数$alpha$,然后改成解方程
$(X+alpha I)t=a$
其中I为单位阵,经过这样的处理,通常解出的解可以非常理想
(上面方程实际上就是要求满足$||Xt-a||^2+alpha*||t||^2$最小的解$t$)

无心人 发表于 2008-4-16 10:11:41

他这个破题目的规模实在小吧
1024位二进制够不够?

mathe 发表于 2008-4-16 10:13:00

上面修改一下,应该改为方程$(X'X+alphaI)t=X'a$

mathe 发表于 2008-4-16 10:17:04

原帖由 无心人 于 2008-4-16 10:11 发表 http://images.5d6d.net/dz60/common/back.gif
他这个破题目的规模实在小吧
1024位二进制够不够?
如果进行浮点运算,足够了,但是如果用有理数表示结果,有点难。主要看矩阵每个元素的分母之间的公因子情况,如果相互之间都互素,就需要大量的通分,导致结果的分子分母都异常大,表示这些数字会有些麻烦

无心人 发表于 2008-4-16 10:21:16

:)

还没听说必须用分数做结果的高精度问题呢

mathe 发表于 2008-4-16 10:27:52

原帖由 无心人 于 2008-4-16 10:21 发表 http://images.5d6d.net/dz60/common/back.gif
:)

还没听说必须用分数做结果的高精度问题呢
是这样的,呵呵,不过不这样怎么做到任意精度呢?其实这个也就是说说而已,不能当真
当然如果遇到初等函数之类(如sin,cos),那用分数也没有办法了

无心人 发表于 2008-4-16 10:33:57

可以啊

用迭代公式计算
保留精确的分数

哈哈

不过要至少128G内存和16个CPU
才够玩的

mathe 发表于 2008-4-16 10:39:41

呵呵,这样迭代的终止条件是什么呢?
永远迭代下去?因为如果结果是无理数,那么总是还没有达到精确值

shshsh_0510 发表于 2008-4-16 10:42:37

to mathe:十分感谢,我不是界线性方程,是要求一个马尔科夫链的期望值
to 无心人: 破是破,地道货 :)精度似乎不只与矩阵的规模相关吧?如果矩阵的项比很大,误差会在其精度的2-3次方
我的问题1024位是够用了,但不是所有的100*100的矩阵都够用

无心人 发表于 2008-4-16 10:48:37

分数也有精度吧
页: 1 [2] 3
查看完整版本: 关于矩阵计算