我不能理解用Python中的ARPACK来解决这个问题

2024-09-30 03:22:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过使用用Python的numpy包装的ARPACK来解决一个简单的特征值问题。广义特征值问题是Lx=lambdaFx,其中矩阵L和F的超链接就附在下面。我曾经numpy.savetxt文件为了保存这些矩阵,您可以使用numpy.loadtxt文件,例如。np.loadtxt文件('F.out'),直接得到尺寸为180*180的二维矩阵。如果你有什么问题,请告诉我。你知道吗

https://www.dropbox.com/s/c24maowf24eqcy3/F.out?dl=0https://www.dropbox.com/s/2aodknq0rdcy8k0/L.out?dl=0

然后调用eigs函数

eigs(L, 10, F, sigma=0.6, which='LM')

在这里我寻找10个特征值,大约0.6。结果是

0.57478719-0.01136287j  
0.57478719+0.01136287j 
0.57810950-0.0183666j
0.57810950+0.0183666j  
0.57388571-0.01499086j  
0.57388571+0.01499086j
0.58563972-0.02572953j 
0.58563972+0.02572953j 
0.61673303-0.02656085j
0.61673303+0.02656085j

但是当我把特征值的个数设为50时,解是完全不同的

0.597747500000000 - 0.000281040000000i
0.597702020000000 + 0.000330230000000i
0.597718060000000 - 0.000507740000000i
0.597753770000000 + 0.000616410000000i
0.597868100000000 - 0.000899980000000i
0.597933180000000 + 0.001078770000000i
0.598383060000000 - 0.001671530000000i
0.598477610000000 + 0.001758160000000i
0.598707890000000 - 0.001942210000000i
0.599190580000000 + 0.002193790000000i
0.602047010000000 - 0.001129780000000i
0.601907360000000 + 0.001352900000000i
0.601100090000000 - 0.002059190000000i
0.601640660000000 + 0.001653970000000i
0.601461590000000 - 0.001833750000000i
0.601373900000000 + 0.001912630000000i
0.597747500000000 + 0.000281040000000i
0.597759400000000 - 0.000389200000000i
0.597718060000000 + 0.000507740000000i
0.597811070000000 - 0.000755450000000i
0.597868100000000 + 0.000899980000000i
0.598267470000000 - 0.001578010000000i
0.598383060000000 + 0.001671530000000i
0.598588530000000 - 0.001835530000000i
0.598707890000000 + 0.001942210000000i
0.599704340000000 - 0.002318040000000i
0.602047010000000 + 0.001129780000000i
0.601739360000000 - 0.001547320000000i
0.601100090000000 + 0.002059190000000i
0.601554210000000 - 0.001749120000000i
0.601461590000000 + 0.001833750000000i
0.601241730000000 - 0.001996120000000i
0.597702020000000 - 0.000330230000000i
0.597759400000000 + 0.000389200000000i
0.597753770000000 - 0.000616410000000i
0.597811070000000 + 0.000755450000000i
0.597933180000000 - 0.001078770000000i
0.598267470000000 + 0.001578010000000i
0.598477610000000 - 0.001758160000000i
0.598588530000000 + 0.001835530000000i
0.599190580000000 - 0.002193790000000i
0.599704340000000 + 0.002318040000000i
0.601907360000000 - 0.001352900000000i
0.601739360000000 + 0.001547320000000i
0.601640660000000 - 0.001653970000000i
0.601554210000000 + 0.001749120000000i
0.601373900000000 - 0.001912630000000i
0.601241730000000 + 0.001996120000000i

我认为这10个特征值会出现在50个特征值的结果中,但事实并非如此。这是因为ARPACK使用的算法吗?或者我做错了什么?我知道这里的矩阵是高度非厄米的,所以不容易求解,但至少结果应该是一致的。你知道吗

提前谢谢你的帮助。你知道吗


Tags: 文件httpsnumpycomwww矩阵outdropbox

热门问题