Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5.  
  6. using namespace std;
  7.  
  8. float Jacobi(int n,float A[][4],float B[],float X[]){
  9. int i,j;
  10. float sum,eps=0.001;
  11. float Xn[4],Xn1[4];
  12. int sem;
  13.  
  14. for(i=1;i<=n;i++){
  15. sum=0;
  16. for(j=1;j<=n;j++) sum=sum+fabs(A[i][j]);
  17. if(sum>2*fabs(A[i][i])) return 1;
  18. }
  19.  
  20. for(i=1;i<=n;i++)
  21. Xn[i]=X[i];
  22. do{
  23. sem=0;
  24. for(i=1;i<=n;i++)
  25. Xn1[i]=Xn[i];
  26. for(i=1;i<=n;i++)
  27. {
  28. Xn[i]=B[i];
  29. for(j=1;j<=n;j++)
  30. if(j!=i) Xn[i]=Xn[i]-A[i][j]*Xn1[j];
  31. Xn[i]=Xn[i]/A[i][i];
  32. }
  33. for(i=1;i<=n;i++)
  34. if(fabs(Xn[i]-Xn1[i])>eps) sem=1;
  35. }while(sem==1);
  36.  
  37. for(i=1;i<=n;i++) X[i]=Xn[i];
  38. return 0;}
  39.  
  40.  
  41. int main(){
  42. float A[4][4]={{0,-0.9,2,-1},{0,2.1,0.6,3},{0,0,0,0},{0,5,0.5,3}};
  43. float B[4]={0,1,2,3},X[4];
  44. int n=3,i;
  45.  
  46. if(Jacobi(n,A,B,X)==1) cout<<"eroare"<<endl;
  47. else
  48. {for(i=1;i<=n;i++) cout<<X[i]<<endl;
  49. system("pause");
  50. }
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement