2010-11-23 122 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