Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double gaussKincaid(double b[], const double a[][4], int iterMax){
- double x[4] = {1.,1.,1.,1.};
- double estimatorVal = 1.;
- double reziduumVal = 1.;
- double x2[4];
- int k=0;
- while ((k<iterMax) && (fabs(estimatorVal)>=e) && (fabs(reziduumVal)>e)){
- for (int i=0;i<n;i++){
- x[i] = b[i];
- for (int j=0;j<n;j++){
- if(i!=j){
- x[i] -= a[i][j]*x[j];
- }
- }
- x[i]/=a[i][i];
- x2[i] = x[i+1];
- }
- double x3[n];
- for (int i=0; i<4;i++){
- x3[i] = fabs(x[i+1] - x2[i]);
- }
- double max = x3[0];
- for (int i=1;i<4;i++){
- if (x3[i] > max){
- max = x3[i];
- }
- }
- estimatorVal = max;
- std::cout << "\niteracja: " << k+1 << std::endl;
- for (int i=0;i<4;i++){
- std::cout << x[i] << " ";
- }
- reziduumVal = reziduum(x,b,a);
- std::cout << "\nestymator: " << estimatorVal
- //estimator(x2,x)
- << " reziduum: " <<
- reziduumVal;
- std::cout << "\n";
- k++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement