Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<stdlib.h>
- #include<math.h>
- using namespace std;
- int Jacobi(int n,float A[][4],float B[],float X[])
- {int i,j,sem;
- float sum,eps=0.001,Xn[4],Xn1[4];
- for(i=1;i<=n;i++)
- { sum=0;
- for(j=1;j<=n;j++)
- sum=sum+fabs(A[i][j]);
- if(sum>2*fabs(A[i][i]))
- return 1;
- }
- for(i=1;i<=n;i++)
- Xn[i]=X[i];
- do{
- sem=0;
- for(i=1;i<=n;i++)
- Xn1[i]=Xn[i];
- for(i=1;i<=n;i++)
- { Xn[i]=B[i];
- for(j=1;j<=n;j++)
- if(j!=i)
- Xn[i]=Xn[i]-A[i][j]*Xn1[j];
- Xn[i]=Xn[i]/A[i][i];
- }
- for(i=1;i<=n;i++)
- if(fabs(Xn[i]-Xn1[i])>eps)
- sem=1;
- }while(sem==1);
- for(i=1;i<=n;i++)
- X[i]=Xn[i];
- return 0;
- }
- int main()
- { float A[4][4]={{0,0,0,0},{0,5,0.5,3},{0,-0.9,2,-1},{0,2.1,0.6,3}};
- float B[4]={0,3,2,1},X[4];
- int n=3,i;
- if(Jacobi(n,A,B,X)==1)
- cout<<"Eroare!"<<endl;
- else
- for(i=1;i<=n;i++)
- cout<<X[i]<<endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement