雅克比迭代法與高斯塞德爾迭代法求解方程組(C語言)

2021-08-15 13:30:00 字數 1250 閱讀 8245

分別用雅可比 迭代法與高斯塞德爾迭代法解下列方程組:

雅可比迭代法:

#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));

epsilon+=fabs(y[i]-x[i]);

}for(i=0;iif(epsilonprintf("%d\n",k);return;}

if(k>=max)

}delete y;

}void main()

; float x[4];

jacobi(a[0],4,x);

for(i=0;i<4;i++)printf("x[%d]=%f\n",i+1,x[i]);

float b[9][10]=;

float xx[9];

jacobi(b[0],9,xx);

for(i=0;i<9;i++)printf("xx[%d]=%f\n",i+1,xx[i]);

}

高斯賽德爾迭代法:

#include

#include

#define n 500

//高斯塞德爾

void gauss(float *a,int n,float x)

dx=(*(a+i*(n+1)+n)-d)/(*(a+i*(n+1)+i));

eps+=fabs(dx-x[i]);

x[i]=dx;

}if(eps<1e-6)

if(k>n)

k++;

}}void main()

; float x[4];

float b[9][10]=;

float xx[9];

gauss(a[0],4,x);

for(i=0;i<4;i++)printf("x[%d]=%f\n",i+1,x[i]);

gauss(b[0],9,xx);

for(i=0;i<9;i++)printf("xx[%d]=%f\n",i+1,xx[i]);

}

雅可比迭代法 高斯 賽德爾迭代法

求解方程組 用雅可比迭代法求解方程組ax b 輸入 a為方程組的係數矩陣,b為方程組右端的列向量,輸入 x0為迭代初值構成的列向量,nm為最大迭代次數,eps為誤差精度 輸出 x為求得的方程組的解構成的列向量,k為迭代次數 d diag diag a l tril a,1 u triu a,1 b ...

高斯 賽德爾迭代法python實現

import scipy import scipy.linalg import numpy.matlib import numpy as np import time import warnings warnings.filterwarnings ignore def gaussseidel inv...

牛頓迭代法

創新工廠的筆試題 不用庫函式sqrt 求乙個整型數n的開方,要求精度達到0.001即可。在這裡首先介紹一下牛頓迭代法 假設乙個方程為 f x 0 那麼假設其解為x0,則用泰勒級數展開之後可得 f x f x0 f x0 x x0 0 其中x為其近似解。根據上式推導出 x x0 f x0 f x0 這...