實驗原理:
雅克比和高斯的不同之處是,k=1下面那個框框,高斯是a[i][j]*y[j],雅克比是a[i][j]*x[j],就是因為高斯用的是更新之後的x,雅克比沒有用更新之後的x。
在**編寫過程中,我沒有用到動態陣列,感覺輸入係數矩陣啥的用動態陣列更好些。但是,我寫了轉化對角佔優的部分,這部分也是非常重要的。
**如下:
/**
運用雅克比和高斯賽德爾公式求解方程組
a 比較兩種方法的收斂速度
b 驗證收斂條件的正確性
**/#include#include#define n 3//4*4方程組
double a[n][n];
double c[n][n];
double b[n];
double d[n];
using namespace std;
/**調整係數矩陣為對角佔優,並得到對角佔優陣c
**/void bettera( double a[n][n],double c[n][n],double b[n])
sum=sum+b[i][j];//這一行的元素之和
}sum=sum-max_ele;
if(max_ele<=sum)//這一行最大元素仍然小於所在行的其他元素的絕對值之和
jakbi(c,d,x,y,eps,n);
for(i=0;i
gauss(c,d,x,y,eps,n);
return 0;
}
雅克比迭代法與高斯塞德爾迭代法求解方程組(C語言)
分別用雅可比 迭代法與高斯塞德爾迭代法解下列方程組 雅可比迭代法 include include define eps 1e 6 define max 100 雅可比迭代法 void jacobi float a,int n,float x y i a i n 1 n s a i n 1 i eps...
雅克比迭代法求方程組的解(Python實現)
求方程組 5 x1 2 x2 x 3 12 x1 4x2 2x3 202x1 3x 2 10x 3 2 5x 1 2x 2 x3 12 x1 4 x2 2 x3 20 2x1 3x2 10x3 2 上面方程當然是非常容易求解的,但是方程規模變大的時候 比如係數矩陣是100w 100w的時候,這時候,...
高斯消元法求方程組的解
高斯消元法 也叫行化簡法 簡單地來說就是構造方程組的增廣矩陣,將增廣矩陣化為階梯型,將每一行主元位置化為1,主元下面元素都為0。最後從下往上依次代入求解。至於主元的選擇,最簡單的就是從第一行開始依次選取主對角線上的元素,但是這樣做的有一點需要注意就是如果主元非常小,就可能除了之後產生非常大的數字,可...