2010-11-23 117 views
2

我需要一个代码来确定使用行操作的nxn矩阵A的逆。 我有一个荒谬的时间写这段代码。任何事情都有帮助,我是一名研究生,几年来一直没有参加编程课。谢谢。矩阵逆代码(c,C++,fortran或tksolver)

+0

假设您已经被要求写逆变器(而不是仅仅需要使用库中的一个),第一个问题是:您可以手动执行倒置吗?如果是这样,尝试编码的程序,然后告诉我们*你在哪里卡住* ... – dmckee 2010-11-23 19:41:25

+0

我需要一个项目的代码 – user517851 2010-11-23 19:44:27

+0

反演需要编码为nxn矩阵,因此问题 – user517851 2010-11-23 21:04:21

回答

1

我建议Scilab或MATLAB的矩阵操作,如果你还没有多年的编程课。

如果是一次性计算,请看WolframAlpha。

如果使用库是C++的选项,请参阅Armadillo

2

你可能不是真的想要反过来。如果你想解决一个方程组,你最好使用LU分解。

你不会说你想用什么语言编写这个应用程序。Java有Apache Commons Math; Python有NumPy; FORTRAN有LinPack。选择一种语言并使用库;不要自己写。

0

看看Numerical Recipies Online。 Fortran 77,Ansi C和Fortran 90代码是免费的,您可以获得有关如何最佳进行的线索。

1
SUBROUTINE MATINV(A,N) 
    DIMENSION A(N,N) 
    DO 1 I=1,N 
    Z=A(I,I) 
    A(I,I)=1.0 
    DO 2 J=1,N 
2  A(I,J)=A(1,J)/Z 
    DO 1 K=1,N 
     IF (K-I) 3,1,3 
3   Z=A(K,I) 
     A(K,I)=0.0 
     DO 4 J=1,N 
4   A(K,J)=A(K,J)-Z*A(I,J) 
1 CONTINUE 
    RETURN 
    END