Documente Academic
Documente Profesional
Documente Cultură
RAPORT
Lucrarea de laborator nr. 2
Disciplina Metode Numerice
Chișinău – 2018
Scopul lucrării:
1) Sa se resolve sistemul de ecuatii liniare A*X=B, utilizand: metoda Jordan-Gauss.
Sistemul propus:
2x+1y+1z=2
4x+1y-2z=1
6x+2y-1=4
Efectuarea lucrării
Explicarea programului:
1. Introducem numarul de necunoscute, numarul de ecuatii, apoi introducem matricea A
si matricea B.
2. Selectarea elementului pivot, elementul pivot se ia elementul de pe diagonala principal
(n=m), daca aceste element este egal cu 0, atunci se cauta un element din alta linie sau
coloana care nu a fost selectata precedent.
3. Se repete pasul dat de n ori.
4. Dupa al 3-lea pas afisam matricea obtinuta si afisam rezultatele.
Codul c++:
#include <iostream>
#include<iomanip>
#include<cmath>
int main()
int n,m,i,j,k;
float A[100][100],B[100],C[100][100];
while (1)
//Citirea datelor.
int z = 0;
for (i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>A[i][j];
for (i=0;i<n;i++)
C[i][j] = A[i][j];
for(i=0;i<n;i++)
C[i][m] = B[i];
cout<<"\n\nMatricea extinsa: "<<endl;
//Afisam tabelul
for (i=0;i<n;i++)
cout<<endl;
for (j=0;j<m+1;j++)
cout<<setw(10)<<left<<C[i][j] ;
float pivot;
int s;
float c[100],l[100];
for (s=0;s<n;s++)
for (j=0;j<m;j++)
//Metoda Jordan-Gauss.
for (i=0;i<n;i++)
switch (caz)
{
case 1:
pivot = C[i][i];
//Calculam tabelul.
for (s=0;s<n;s++)
for (j=0;j<m+1;j++)
for (s=linia;s<linia+1;s++)
for (j=0;j<m+1;j++)
C[i][j] = C[i][j]/pivot;
for (j=coloana;j<coloana+1;j++)
C[s][j] = 0;
break;
}
case 0:
for (s=0;s<n;s++)
for (j=0;j<m;j++)
if ( C[i][j] != 0 )
for (s=0;s<n;s++)
//Calculam tabelul.
for (j=0;j<m+1;j++)
for (s=linia;s<linia+1;s++)
for (j=0;j<m+1;j++)
C[i][j] = C[i][j]/pivot;
for (j=coloana;j<coloana+1;j++)
C[s][j] = 0;
break;
//Afisam tabelul.
cout<<endl;
for (i=0;i<n;i++)
cout<<endl;
for (j=0;j<m+1;j++)
cout<<setw(10)<<left<<C[i][j];
t = 3; s = 0;
if ( m > n ) t = 1;
//Compatibil nedeterminat.
for (i=0;i<n;i++)
for (j=0;j<m+1;j++)
if ( sol == 0 ) { t = 1; break; }
sol = 0;
}
int ver1[100] = { 0 };
int sol1 = 0;
//Incompatibil.
for (i=0;i<n;i++)
for(j=0;j<m;j++)
sol1 = 0;
switch (t)
case 1:
int x,k;
cout << endl << setprecision(2) << "\nSistemul este Compatibil Nedeterminat !
";
cout<<"\nSolutia Generala:";
if(C[i][j] == 1 )
cout << endl << noshowpos <<"x" << j+1 << " = ";
break;
break;
case 2:
break;
case 3:
for (i=0;i<n;i++)
for(j=0;j<m;j++)
break;
switch(res)
return 0;
Rezultatul programului:
1. Caz compatibil determinat:
2.
In aceasta lucrare sau studiat diferite metode de rezolvare a sistemelor de ecuatii liniare
A*X=B. Am creat un program in limbajul de programare c++ cu ajutorul carui se poate de aflat
solutiile unu sistem, cu ajutorul metodei Jordan Gauss.