Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- void Zapolnenie_2 (double **matrix, int n)
- {for (int i=0; i<n; i++)
- for (int j=0; j<n; j++)
- {cout<<"a["<<i<<"]["<<j<<"] = ";
- cin>>matrix[i][j];}
- }
- void Zapolnenie_1 (double *matrix, int n)
- {for (int i=0; i<n; i++)
- {cout<<"a["<<i<<"] = ";
- cin>>matrix[i];}
- }
- void Vivod_2 (double **matrix, int n)
- {for (int i=0; i<n; i++)
- {for (int j=0; j<n;j++)
- cout<<"\t"<<matrix[i][j];
- cout<<" "<<endl;}
- }
- void Vivod_1 (double *matrix, int n)
- {for (int i=0; i<n; i++)
- cout<<"\t"<<matrix[i];
- }
- int main()
- {
- int n, k=0, sum;
- double eps;
- cout<<"Введите количесво переменных: ";
- cin>>n;
- double **koef = new double*[n];
- for (int c=0; c<n; c++)
- koef[c]=new double[n];
- double *temp = new double[n];
- double **alfa = new double*[n];
- for (int c=0; c<n; c++)
- alfa[c]=new double[n];
- double *betta = new double[n];
- double *x = new double[n];
- cout<<"Введите матрицу коэффициентов СЛАУ:"<<endl;
- Zapolnenie_2 (koef, n);
- Vivod_2 (koef, n);
- cout<<"Введите матрицу векторов правых частей"<<endl;
- Zapolnenie_1 (temp, n);
- Vivod_1 (temp, n);
- cout<<endl<<"Введите точность вычисления: ";
- cin>>eps;
- for (int i=0; i<n; i++)
- for (int j=0; j<n; j++)
- {if (i==j)
- alfa[i][j]=0;
- else
- alfa[i][j]=-koef[i][j]/koef[i][i];}
- for (int i=0;i<n;i++)
- betta[i]=temp[i]/koef[i][i];
- Vivod_2 (alfa, n);
- cout<<" "<<endl;
- Vivod_1 (betta, n);
- for (int i=0;i<n;i++)
- temp[i]=betta[i];
- for (int i=0; i<n; i++)
- {sum=0;
- for(int j=0; j<n;j++)
- sum+=alfa[i][j]*temp[j];
- x[i]=sum+betta[i];
- if (abs(x[i]-temp[i])<=eps)
- break;}
- cout<<" "<<endl;
- Vivod_1 (temp,n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement