Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 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 Gauss(int n,float A[][4],float B[],float X[]){
  9. int i,k,j;
  10. float m,d;
  11. for(i=1;i<=n-1;i++)
  12. for(k=i+1;k<=n;k++)
  13. {m=A[k][i]/A[i][i];
  14. for(j=i;j<=n;j++) A[k][j]=A[k][j]-m*A[i][j];
  15. B[k]=B[k]-m*B[i];
  16. }
  17. d=1;
  18. if(A[n][n]==0) return 1;
  19. for(i=1;i<=n;i++) d=d*A[i][i];
  20. for(i=n;i>=1;i--)
  21. {X[i]=B[i];
  22. for(j=n;j>=i+1;j--) X[i]=X[i]-A[i][j]*X[j];
  23. X[i]=X[i]/A[i][i];
  24. }
  25. return d;
  26. }
  27.  
  28. float Jacobi(int n,float A[][4],float B[],float X[]){
  29. int i,j;
  30. float sum;
  31. float Xn[4],Xn1[4];
  32. int sem;
  33. float eps=0.001;
  34. for(i=1;i<=n;i++){
  35. sum=0;
  36. for(j=1;j<=n;j++)
  37. sum=sum+fabs(A[i][j]);
  38. if(sum>2*fabs(A[i][i]))
  39. return 1;}
  40.  
  41. for(i=1;i<=n;i++)
  42. Xn[i]=X[i];
  43. do{
  44. sem=0;
  45. for(i=1;i<=n;i++)
  46. Xn1[i]=Xn[i];
  47. for(i=1;i<=n;i++)
  48. {Xn[i]=B[i];
  49. for(j=1;j<=n;j++)
  50. if(j!=i)
  51. Xn[i]=Xn[i]-A[i][j]*Xn1[j];
  52. Xn[i]=Xn[i]/A[i][i];
  53. }
  54. for(i=1;i<=n;i++)
  55. if(fabs(Xn[i]-Xn1[i])>eps) sem=1;
  56. }while(sem==1);
  57. for(i=1;i<=n;i++) X[i]=Xn[i];
  58. return 0;}
  59.  
  60. int main(int argc, char *argv[]) {
  61. float A[4][4]={{0,0,0,0},{0,6,-1,-1},{0,-1,6,-1},{0,-1,-1,6}};
  62. float B[4]={0,11.33,32,42},X[4];
  63. int n=3,i;
  64. cout<<"Determinantul sistemului este "<<Gauss(n,A,B,X)<<endl;
  65. for(i=1;i<=n;i++) cout<<X[i]<<endl;
  66. system("pause");
  67. return 0;
  68. }
  69.  
  70. /*int main(){
  71. float A[4][4]={{0,0,0,0},{0,6,-1,-1},{0,-1,6,-1},{0,-1,-1,6}};
  72. float B[4]={0,11.33,32,42},X[4];
  73. int n=3,i;
  74. if(Jacobi(n,A,B,X)==1)
  75. cout<<"eroare"<<endl;
  76. else
  77. cout<<"Solutiille sunt: "<<endl;
  78. {for(i=1;i<=n;i++) cout<<X[i]<<endl;
  79. system("pause");}
  80.  
  81. return 0;
  82. }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement