具體的分析參考演算法導論
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 ...