LUP分解求解線性方程組及求逆矩陣 java

2021-07-07 09:09:17 字數 1161 閱讀 4504

具體的分析參考演算法導論

public class lu

}} return c;

} /**矩陣lu分解*/

public static void lu_decomposition(float a,float l,float u)

}}//for

//make l and u

for(i=0;i < n;i++)

for(k = i;k < n;k++)

} }/**矩陣lup分解

* 相比lu分解,lup分解可以防止出現除以0的情況和除數非常小導致計算不準確的情況

*/ public static void lup_decomposition(float a,float l,float u,int p)

}if(p == 0)

//exchange p[i] with p[row]

int tmp = p[i];

p[i] = p[row];

p[row] = tmp;

float tmp2 = 0f;

for(j = 0;j < n;j++)

//下面與lu分解一樣了

float u = a[i][i],l = 0f;

for(j = i+1;j < n;j++)

}}//for

//make l and u

for(i=0;i < n;i++)

for(k = i;k < n;k++)

} }/**求解線性方程組

* ax = b ==> pax = pb ==>lux = pb ==> ly = pb ==> ux = y

*/ public static float lup_solve(float l,float u,intp,float b)

} //反向替換

for(i = n-1;i >= 0; i--)

x[i] /= u[i][i];

} return x;

} /**矩陣置換*/

public static float transposition(float a){

int i=0,j=0,n = a[0].length;

float tmp = 0f;

for(i=0;i < n;i++){

for(j=0;j

求解線性方程組 Doolittle分解法

求解線性方程組 doolittle分解法。源 用c 實現 這裡採用的是數值分析裡的演算法。在vc6.0下編譯通過,經測試沒大問題。求解線性方程組 doolittle分解法 include using namespace std 二維陣列動態分配模板 template t allocation2d i...

求解線性方程組 Cholesky分解法

求解線性方程組 cholesky分解法。源 用c 實現 這裡採用的是數值分析裡的演算法。在vc6.0下編譯通過,經測試沒大問題。求解線性方程組 cholesky分解法 本分解法僅適用於當 係數矩陣為對稱正定陣的情況 include include using namespace std 二維陣列動態...

求解線性方程組之LU分解

具有列選主元和從前到後代入的lu分解 include include include using namespace std class lu delete a void main void lu lu input for i 0 i n i for j 0 j n j for i 0 i n i ...