Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- float metgem(float a[][10], int n, float b[10], float v[10], float u[10][10])
- {
- int i=0, j=0,k=0; float m;
- for(i=0;i<n;i++)
- { v[i]=b[i];
- for(j=0;j<n;j++)
- u[i][j]=a[i][j];}
- for(i=0;i<n;i++)
- for(j=i+1;j<n;j++)
- {
- m=a[i][j]/a[i][i];
- for(k=i;k<n;k++)
- u[j][k]=u[j][k]-u[i][k]*m;
- v[j]=v[j]-v[j]*m;
- }
- return 1;
- }
- /*int functie(float a[][10],int n, float eps, float b[][10])
- {
- int i=0, er=0,k=0,j=0;
- float suma=0;
- for (i=0;i<n;i++)
- if(a[i][i]>=-eps&&a[i][i]<=eps)er=1;
- if(er==0)
- {
- for(i=0;i<n;i++)
- for(j=0;j<n;j++)b[i][j]=0;
- for(i=n-1;i>=0;i--)
- {b[i][i]=1/a[i][i];
- for(k=i-1;k>=0;k--)
- {suma=0;
- for(j=k+1;j<=i;j++)
- suma=suma+a[k][j]*b[j][i];
- b[k][i]=-suma/a[k][k];
- }
- }
- }
- return er;
- }
- */
- int sistem (float a[][10], float b[], int n, float eps, float x[])
- {
- int i=0,j=0, er=0;
- for(i=0;i<n;i++)
- if(a[i][i]>(-eps) && a[i][i]<eps)er=1;
- if(er==0)
- {
- x[n-1]=b[n-1]/a[n-1][n-1];
- for(i=n-2;i>=0;i--)
- { float s=0;
- for(j=n-2;j>=i;j--)
- s=s+(a[i][j]*x[j]);
- x[i]=(b[i]-s)/a[i][i];
- }
- }
- return er;
- }
- void main()
- {
- float a[10][10], eps=0.08, b[10], u[10][10], v[10],x[10];
- int n=5, ok,i,j;
- cout<<"dati matricea";
- for(i=0;i<n;i++)
- for(j=0;j<n;j++)
- cin>>a[i][j];
- cout<<"da vectorul";
- for(i=0;i<n;i++)
- cin>>b[i];
- metgem(a,n,b,v,u);
- ok=sistem(u,v,n,eps,x);
- if(ok)cout<<"matricea nu este inversabila";
- else for(i=0;i<n;i++)
- cout<<x[i]<<" ";
- }
Add Comment
Please, Sign In to add comment