Referat Rezolvarea Sistemelor De Ecuatii Liniare Folosind Regula Lui Cramer
Mai jos puteti citi fragmente din
Referat Rezolvarea Sistemelor De Ecuatii Liniare Folosind Regula Lui Cramer si de asemenea puteti face
Download Referat Rezolvarea sistemelor de ecuatii liniare folosind regula lui CramerCiteste fragmente din Referat Rezolvarea Sistemelor De Ecuatii Liniare Folosind Regula Lui Cramer
Rezolvarea sistemelor de ecuatii liniare folosind regula lui Cramer
Consideram urmatorul sistem de n ecuatii liniare cu n necunoscute:
a11x1 + a12x2 + a13x3 + . . . + a1nxn = b1
a21x1 + a22x2 + a23x3 + . . . + a2nxn = b2
a31x1 + a32x2 + a33x3 + . . . + a3nxn = b3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
an1x1 + an2x2 + an3x3 + . . . + annxn = bn
Acest sistem de n ecuatii liniare cu n necunoscute este compatibil
determinat, iar solutia sa este data de formulele lui Cramer, daca
determinantul sau (d) este nenul.
Conform Regulii lui Cramer, solutiile sunt de forma:
. . . . . . . . . . . ,
unde d = det A este determinantul sistemului,
fiind
matricea sistemului,
. . . . . . . . . . . . . . . . .
şi dj, 1≤j≤n, determinantul care se obtine din d prin inlocuirea
coloanei j prin coloana
:
De exemplu:
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. .
s.a.m.d.
Un sistem de ecuatii care nu are solutii se numeste incompatibil. Un
sistem de ecuatii liniare este incompatibil daca determinantul sau este
nul şi unul din determinantii dj, 1≤j≤n, este nenul (atunci toti
determinantii dj, 1≤j≤n, sunt nenuli).
Un sistem de ecuatii care are mai mult de o solutie se numeste
compatibil nedeterminat. Un sistem de ecuatii liniare este compatibil
determinat daca determinantul sau este nul ÅŸi unul din determinantii
dj, 1≤j≤n, este nul (deoarece atunci toti determinantii dj,
1≤j≤n, sunt nuli).
Calculul determinantilor
Sa consideram o matrice patratica de ordinul n.
Vom forma toate produsele posibile de n elemente apartinand la linii ÅŸi
coloane distincte. Un astfel de produs este de forma:
a1i1 a2i2 . . . . . . . . anin
unde i1, i2, . . . in sunt elementele distincte ale multimii {1, 2, . .
. n}. ÃŽnseamna ca putem considera permutarea de gradul n
ÅŸi putem scrie:
a1i1 a2i2 . . . . . . . . anin = a1ÃÆ’(1) a2ÃÆ’(2) . . . . .
. . . anÃÆ’(n)
Numarul total al produselor de aceasta forma este egal cu numarul
tuturor permutarilor de grad n, deci n!.
Semnul acestor produse depinde de signatura permutarii, astfel încât
daca permutarea este para, semnul produsului este +, iar daca este
impara, semnul produsului este –.
Signatura unei permutari
Fie A = {1, 2, . . . n}. Definim submultimea M a produsului cartezian
AxA ca fiind M = {(i, j) | 1≤i
#include
#include
#include
#include
#include
int n;
int sign(int s[50])
{int m=0,v[50];//m este nr de inversiuni ale permutarii s
for(int i=1;i<=n;i++)
v[i]=0;
for(int k=n;k>0;k--)
for(int i=1;i<=n;i++)
if(s[i]==k)
{m+=n-i-v[i];
for(int j=1;j0)
{as=0;
//while(x[k]1)
for(int i=1;i
a
(
*
Z
ú
ü
ä¡ÂÉ䡳É㰀c
d
,
8
:
<
>
@
B
Z
^
`
b
ö
ø
ú
þ
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
hÓ6
a[k][x[k]];
else
{k++;
x[k]=0;
}
else k--;
}
}
void main()
{float a[50][50],d,dn,b[50],col[50],x[50][2],nr;
int i,j,coef;
char *semn,*cifra,*s;
clrscr();
i=0;
j=1;
semn="";
cifra="";
cout<<"Exemplu:"< 9 ));
strcpy(s,cifra);
nr=atoi(s);
do
{semn="";
cifra[0]=getch();
cifra[1]=0;
if((cifra[0]>= 0 )&&(cifra[0]<= 9 ))
{//cout<1))
cout<< + ;
}
if((nr!=1)&&(nr!=0))
cout<>b[j];
for(j=2;j<=n;j++)
{i=0;
char *s,*cifra;
semn="";
//cifra="";
do
semn[0]=getch();
while((semn[0]!= - )&&(semn[0]!= + ));
if(semn[0]== - )
{coef=-1;
//cout<< - ;
}
else coef=1;
while(semn[0]!= = )
{ s=" ";
//semn="";
do
{cifra[0]=getch();
cifra[1]=0;
}while((cifra[0]< 0 )||(cifra[0]> 9 ));
strcpy(s,cifra);
nr=atoi(s);
do
{semn="";
cifra[0]=getch();
cifra[1]=0;
if((cifra[0]>= 0 )&&(cifra[0]<= 9 ))
{//cout<1))
cout<< + ;
}
if((nr!=1)&&(nr!=0))
cout<>b[j];
}
/*cout<<"n=";
cin>>n;
for(j=1;j<=n;j++)
for(i=1;i<=n;i++)
{cout<<"a["<>a[i][j];
}
for(j=1;j<=n;j++)
{cout<<"b["<>b[j];
}*/
d=det(a);
if (d)
{for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
{col[j]=a[i][j];
a[i][j]=b[j];
}
dn=det(a);
x[i][0]=dn/d;
x[i][1]=dn;
for(j=1;j<=n;j++)
a[i][j]=col[j];
}
for(i=1;i<=n;i++)
if(int(x[i][0])==x[i][0])
cout<< x <