重要的算法C语言实现源代码7
7.雅克比迭代,求解方程近似解C/C++ code
#include <stdio.h>
#include <math.h>
#define N 20
#define MAX 100
#define e 0.00001
int main()
{ int n;
int i,j,k;
float t;
float a,b,c,g,x,h;
printf("\nInput dim of n:"); scanf("%d",&n);
if(n>N)
{ printf("Faild! Check if 0<n<N!\n"); getch(); return 1; }
if(n<=0)
{printf("Faild! Check if 0<n<N!\n"); getch(); return 1;}
printf("Input a,i,j=0…%d:\n",n-1);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%f",&a);
printf("Input c,i=0…%d:\n",n-1);
for(i=0;i<n;i++)
scanf("%f",&c);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ b=-a/a; g=c/a; }
for(i=0;i<MAX;i++)
{ for(j=0;j<n;j++)
h=g;
{ for(k=0;k<n;k++)
{ if(j==k) continue; h+=b*x; }
}
t=0;
for(j=0;j<n;j++)
if(t<fabs(h-x)) t=fabs(h-x);
for(j=0;j<n;j++)
x=h;
if(t<e)
{ printf("x_i=\n");
for(i=0;i<n;i++)
printf("x[%d]=%f\n",i,x);
getch();
return 0;
}
printf("after %d repeat , return\n",MAX);
getch();
return 1;
}
getch();
}
关于本帖内容欢迎大家踊跃讨论,与在下交流!
页:
[1]