lili 发表于 2023-5-5 15:59:15

lapack矩阵求逆子程序

我想对WIJGUU这个矩阵求逆,前面我已经定义了COMPLEX*16    WIJGUU(NK/2,NK/2),并且open了文件,据我了解,前面这个子程序是LU分解,后面这个子程序是求逆,两个子程序都是联合起来使用的,我在运行中时,运算老是直接到100处,从而导致我后面算的数据write不到我open的文件中(100是我do循环的终点,我后续的运算必须在循环内,不能把100移到write上面),这两句是我根据其他的程序仿写的,不知道为什么它能把数据写到文件中我这个写不到文件中?这个IF(INFO1.NE.0)和IF(INFO2.NE.0)中的INFO1和INFO2是什么意思呢?

Transpose 发表于 2023-5-5 19:27:34

要么参数没设置对,要么矩阵不可逆
info是拿来标志是否运算成功的

lili 发表于 2023-5-5 19:45:17

Transpose 发表于 2023-5-5 19:27
要么参数没设置对,要么矩阵不可逆
info是拿来标志是否运算成功的

C:\Users\Yeah\Desktop
参数可能是图中标注的(N/2,LDA/2,IPIVW等等)这些吗

Transpose 发表于 2023-5-5 20:01:57

lili 发表于 2023-5-5 19:45
参数可能是图中标注的(N/2,LDA/2,IPIVW等等)这些吗

是的,每一个参数都需要匹配,由于lapack本身不检查参数的匹配,所以很容易写错

lili 发表于 2023-5-6 09:11:43

Transpose 发表于 2023-5-5 20:01
是的,每一个参数都需要匹配,由于lapack本身不检查参数的匹配,所以很容易写错
...

嗯嗯,我确认了一遍参数没问题,还是运算还是直接到了100处,也就是说明(INFO1.NE.0)(INFO2.NE.0),那是不是就只可能我要求逆的这个矩阵不可逆呢?

Transpose 发表于 2023-5-6 11:48:12

应该是这样的
页: [1]
查看完整版本: lapack矩阵求逆子程序