⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jaccobi.cpp

📁 iterativeinmatrxi.rar
💻 CPP
字号:
#include<iostream.h>
#include<math.h>

float sum(float *a,float *t,int n)
{
	int j;
	float m=0.0;
	for(j=0;j<n;j++)
		m+=a[j]*t[j];
	return m;
}
float vec_norm(float *x,float*XO,int n)
{
	float* t;
	float max;
	int i;
	t=new float[n];
	for(i=0;i<n;i++)
		t[i]=fabs(x[i]-XO[i]);
	max=t[0];
	for(i=1;i<n;i++)
		if(t[i]>max) max=t[i];
    return max;
}

void jaccobi()
{
	int n,N;//N is the maximum number of iteration
	float **A,*b,*XO,*x;
	float TOL;//TOL is tolerance
	int i,j,k;
	cout<<"inout the tolerance TOL=";
	cin>>TOL;
	cout<<"input the intial value of XO:\n";
	for(i=0;i<n;i++)
		cin>>XO[i];
	for(k=0;k<N;k++)
		for(i=0;i<n;i++)
			x[i]=(b[i]-sum(A[i],XO,n))/A[i][i];//sum(A[i],XO,n) A[i][j]+XO[j],where j=0,1,……,n-1
		if(vec_norm(x,XO,n)<TOL)
		{
			for(i=0;i<n;i++)
				cout<<"x["<<i<<"]="<<x[i];
			return;
		}
		for(i=0;i<n;i++)
 			XO[i]=x[i];
    cout<<"the maxmum number of iterations exceeded is"<<k<<endl;
}

void main()
{
	jaccobi();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -