CATEGORII DOCUMENTE |
Astronomie | Biofizica | Biologie | Botanica | Carti | Chimie | Copii |
Educatie civica | Fabule ghicitori | Fizica | Gramatica | Joc | Literatura romana | Logica |
Matematica | Poezii | Psihologie psihiatrie | Sociologie |
Fie sistemul de n ecuatii liniare cu n necunoscute
(2.50)
Notand
,
sistemul (2.50) devine:
Ax = b
Presupunem ca pentru orice avem aii ≠ 0.
Explicitand necunoscuta xi din ecuatia i (), sistemul (2.50) devine:
(2.51)
sau, notand
sistemul (2.51) devine
(2.52)
Solutia sistemului (2.52) se cauta pornind de la o solutie initiala x(0) (care, de exemplu, poate fi chiar β, adica x(0) = β).
Construim sirul de iteratii
. . . . (2.53)
unde k =0, 1, 2, . .
Obtinem un sir x(0), x(1), x(2), . , x(k+1), . Daca acest sir este convergent, notam
care va fi tocmai solutia sistemului si implicit a lui (2.50), deoarece:
sau
Observatie 2.4.1 Relatiile (2.53), scrise pe componente, devin:
, k = 0, 1, 2, .
Programul pentru metoda aproximatiilor succesive cu limbajul C++
Programul rezolva un sistem de n ecuatii liniare cu n necunoscute compatibil determinat. Pentru simplificarea programului si pentru reducerea spatiului de memorie folosit vom inlocui in matricea A elementele aij cu elementele corespunzatoare din matricea α, iar matricea b cu matricea β.
Pentru determinarea solutiei folosim doi vectori: x pentru iteratia curenta si xa pentru iteratia anterioara. Ca aproximare initiala este aleasa valoarea β. Criteriul de oprire este norma euclidiana a vectorului diferenta x - xa. Precizia este data in cadrul programului (eps). Datele de intrare sunt: dimensiunea sistemului, coeficientii si termenii liberi.
# include<iostream.h>
# include<math.h>
# include<conio.h>
int n, i, j, t;
double a[10][10], b[10], x[10], xa[10], s, eps=0.00001;
void main (void)
cout<<"Introduceti termenii liberi;"<<endl;
for (i = 1; i <= n; i++)
i = 1;
t = 0;
do
while ((i <= n)&&(t = = 0));
if (t = = 1)
cout<<"Metoda nu converge!"<<endl;
else
do
s=sqrt(s);}
while (s>=eps);
cout<<"Solutia sistemului:"<<end;
for (i = 1; i <= n; i++)
cout<<"x("<<i<<")="<<x[i]<<endl;
}
getch ( );
}
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2344
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved