Java實(shí)現(xiàn)的求逆矩陣算法示例
本文實(shí)例講述了Java實(shí)現(xiàn)的求逆矩陣算法。分享給大家供大家參考,具體如下:
package demo; public class MatrixInverse { public static double Det(double [][]Matrix,int N)//計算n階行列式(N=n-1) { int T0; int T1; int T2; double Num; int Cha; double [][] B; if(N>0) { Cha=0; B=new double[N][N]; Num=0; if(N==1) { return Matrix[0][0]*Matrix[1][1]-Matrix[0][1]*Matrix[1][0]; } for (T0=0;T0<=N;T0++)//T0循環(huán) { for (T1=1;T1<=N;T1++)//T1循環(huán) { for (T2=0;T2<=N-1;T2++)//T2循環(huán) { if(T2==T0) { Cha=1; } B[T1-1][T2]=Matrix[T1][T2+Cha]; } //T2循環(huán) Cha=0; } //T1循環(huán) Num=Num+Matrix[0][T0]*Det(B,N-1)*Math.pow((-1),T0); } //T0循環(huán) return Num; } else if(N==0) { return Matrix[0][0]; } return 0; } public static double Inverse(double[][]Matrix,int N,double[][]MatrixC){ int T0; int T1; int T2; int T3; double [][]B; double Num=0; int Chay=0; int Chax=0; B=new double[N][N]; double add; add=1/Det(Matrix,N); for ( T0=0;T0<=N;T0++) { for (T3=0;T3<=N;T3++) { for (T1=0;T1<=N-1;T1++) { if(T1<T0) { Chax=0; } else { Chax=1; } for (T2=0;T2<=N-1;T2++) { if(T2<T3) { Chay=0; } else { Chay=1; } B[T1][T2]=Matrix[T1+Chax][T2+Chay]; } //T2循環(huán) }//T1循環(huán) Det(B,N-1); MatrixC[T3][T0]=Det(B,N-1)*add*(Math.pow(-1, T0+T3)); } } return 0; } public static void main(String[]args)//測試 { double[][] TestMatrix = { {1, 22, 34,22}, {1, 11,5,21} , {0,1,5,11}, {7,2,13,19}}; double[][]InMatrix=new double[4][4]; Inverse(TestMatrix,3,InMatrix); String str=new String(""); for (int i=0;i<4;i++) { for (int j=0;j<4;j++) { String strr=String.valueOf(InMatrix[i][j]); str+=strr; str+=" "; } str+="\n"; } System.out.println("腳本之家測試結(jié)果:"); System.out.println(str); } }
運(yùn)行結(jié)果:
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
java中JSONObject轉(zhuǎn)換為HashMap(方法+main方法調(diào)用實(shí)例)
這篇文章主要介紹了java中JSONObject轉(zhuǎn)換為HashMap(方法+main方法調(diào)用實(shí)例),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Java訪問WebService返回XML數(shù)據(jù)的方法
這篇文章主要介紹了Java訪問WebService返回XML數(shù)據(jù)的方法,涉及java操作WebService的相關(guān)技巧,需要的朋友可以參考下2015-06-06如何應(yīng)對spring框架的HTTP ERROR 400 Bad Request錯
這篇文章主要介紹了如何應(yīng)對spring框架的HTTP ERROR 400 Bad Request錯誤返回問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08解決window.location.href之后session丟失的問題
今天小編就為大家分享一篇關(guān)于解決window.location.href之后session丟失的問題,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12RocketMQ整合SpringBoot實(shí)現(xiàn)生產(chǎn)級二次封裝
本文主要介紹了RocketMQ整合SpringBoot實(shí)現(xiàn)生產(chǎn)級二次封裝,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06SpringBoot使用Nacos配置中心的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot使用Nacos配置中心的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12