Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- using namespace std;
- float Jacobi(int n,float A[][4],float B[],float X[]){
- int i,j;
- float sum,eps=0.001;
- float Xn[4],Xn1[4];
- int sem;
- 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.9,2,-1},{0,2.1,0.6,3},{0,0,0,0},{0,5,0.5,3}};
- float B[4]={0,1,2,3},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