RealNigga
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вот к этому коду надо подробные коментарии. Это метод Зейделя. Помогите плиз!!! Интересует все о коде поподробнее... #include<stdio.h> #include<conio.h> #include<iostream.h> #include<math.h> int i,j; void main() { void vmatrix(double**,double*,int n); int k,m,n; double **a,**bb,*b,*x,*vv; double y=0,z; clrscr(); n=5; a=new double*[n]; for(i=0;i<n;i++) a[i]=new double[n]; bb=new double*[n]; for(i=0;i<n;i++) bb[i]=new double[n]; b=new double[n]; vv=new double[n]; x=new double[n]; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if (i<j) a[i][j]=i+1+j+1-double(4)/double(3)-4; if (i==j) a[i][j]=i+1+j+1+1+4; if (i>j) a[i][j]=i+1+j+1-0.8-4; } b[i]=3*(i+1)+2+4; } cout<<"\nRasshyrenaya matrica ishodnoi sistemy\n"; vmatrix(a,b,n); getch(); for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(i!=j) bb[i][j]=-a[i][j]/a[i][i]; else bb[i][j]=0; } vv[i]=b[i]/a[i][i]; } cout<<"\nMatrica B i stolb beta v formyle x=B*x+b\n"; vmatrix(bb,vv,n); getch(); cout<<"\nVvedite tochnost\n"; cin>>z; for(i=0;i<n;i++) x[i]=vv[i]; for(;;) { for(i=0;i<n;i++) b[i]=x[i]; for(i=0;i<n;i++) { y=0; for(j=0;j<n;j++) y+=bb[i][j]*x[j]; x[i]=y+vv[i]; } k=0; for(i=0;i<n;i++) if(fabs(b[i]-x[i])<=z) k++; if(k==n) break; } cout<<"\Reshenie"; for(i=0;i<n;i++) printf("\nx[%d] = %.5f",i+1,x[i]); getch(); } void vmatrix(double **a,double *b,int n) { for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%.5f ",a[i][j]); printf("%.5f\n",b[i]); } } |