当我试图使用numpy.linalg.solve(A,b)解决这个18方程式和18个未知数的方程组时,它显示如下错误:
>>numpy.linalg.solve(A,b)
File "C:\Python27\lib\site-packages\numpy\linalg\linalg.py", line 328, in solve
raise LinAlgError, 'Singular matrix'
LinAlgError: Singular matrix`
Run Code Online (Sandbox Code Playgroud)
而且,与matlab相比,这给出了错误的答案,并且在matlab中,反向不会像奇异矩阵那样引起任何误差
>>numpy.linalg.lstsq(A,b)
Run Code Online (Sandbox Code Playgroud)
方程式:
A=[[ 2.00000000e-05 1.04829508e-14 2.92236138e-24 4.99137993e-34
5.52810194e-44 4.00873469e-54 1.84523284e-64 4.90835508e-75
5.76100393e-86 5.99076740e-01 2.99538370e-01 2.24653778e-01
1.87211481e-01 1.63810046e-01 1.47429042e-01 1.35143288e-01
1.25490196e-01 1.17647059e-01],
[ 3.73770292e-01 2.09016082e-01 6.78532034e-02 1.39582215e-02
1.89003753e-03 1.68885303e-04 9.62295375e-06 3.17769127e-07
4.46104746e-09 2.20133438e-01 3.43958497e-01 3.09132700e-01
2.41012794e-01 1.94347888e-01 1.66650637e-01 1.48719036e-01
1.35807777e-01 1.25855315e-01],
[ 3.11663896e-01 3.06638455e-01 2.02332733e-01 8.94385710e-02
2.66813026e-02 5.32020127e-03 6.81398496e-04 5.08044167e-05
1.67948485e-06 7.07545654e-02 2.07209799e-01 2.96555487e-01
2.92571675e-01 2.43843879e-01 1.98570296e-01 1.68671368e-01
1.49520047e-01 1.36137091e-01],
[ 2.44042188e-01 2.93174990e-01 2.81499972e-01 1.97504125e-01 …Run Code Online (Sandbox Code Playgroud)