求解線性方程組--jacobi迭代法
/* 求解線性方程組--jacobi迭代法 */
#include #include using namespace std;
/* 二維陣列動態分配模板 */
template t** allocation2d(int m, int n)
return a;
}/* 一維陣列動態分配模板 */
template t* allocation1d(int n)
/* 求矩陣的一範數 */
float matrix_category(float* x, int n)
return temp;
}int main()
}/* 生成並初始化初始向量 */
x_0 = allocation1d(n);
cout << endl << "輸入初始向量:/n";
for (i = 0; i < n; i++)
/* 生成迭代向量 */
x_k = allocation1d(n);
float temp;
/* 迭代過程 */
for (k = 0; k < max; k++)
temp = temp + a[i][j] * x_0[j];
}x_k[i] = (a[i][n] - temp) / a[i][i];
}/* 求兩解向量的差的範數 */
for (i = 0; i < n; i++)
if (matrix_category(x_0, n) < precision)
else }}
/* 輸出過程 */
if (max == k)
cout << "迭代次數為:" << k << endl;
cout << "解向量為:/n";
for (i = 0; i < n; i++)
return 0;
}
jacobi迭代法求解線性方程組
首先將 方程組中的 係數矩陣 a分解成三部分,即 a l d u,如圖1所示,其中 d為對角陣,l為下三角矩陣,u為上三角矩陣。之後確定迭代格式,x k 1 b x k f 這裡 表示的是上標,括號內數字即迭代次數 如圖2所示,其中 b稱為迭代矩陣,雅克比迭代法中一般記為 j。k 0,1,再選取初始...
MATLAB 線性方程組求解
clc,clear all close all 高斯消去法 a 2 3 4 3 5 2 4 3 30 線性方程組的係數矩陣 b 6 5 32 線性方程組的右端列向量 m,n size a 測量係數矩陣的維數 if m n fprint 線性方程組的係數矩陣非方陣 break end fprintf ...
MATLAB線性方程組求解
對於一般的,有唯一解的線性方程組,我們可以轉換成矩陣的形式 a x bax b ax b 則可以用矩陣運算求解x,即x a b 求解齊次線性方程組基礎解系的函式是null z null a 表示返回矩陣a的基礎解系組成的矩陣。z還滿足ztz i z null a,r 得出的z不滿足ztz i,但得出...