Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AstronomieBiofizicaBiologieBotanicaCartiChimieCopii
Educatie civicaFabule ghicitoriFizicaGramaticaJocLiteratura romanaLogica
MatematicaPoeziiPsihologie psihiatrieSociologie


Metoda Krilov

Matematica



+ Font mai mare | - Font mai mic



Metoda Krilov

Fie D(λ) = det (λE - A) =

care difera printr-un semn de polinomul caracteristic.



Matricea A anuleaza polinomul caracteristic si prin urmare avem:

(3.6)

Fie y(0) un vector nenul oarecare

Inmultim (3.6) prin y(0) si obtinem:

Notam:

(3.7)

Deci avem:

sau

sau

cu .

Facand calculele obtinem sistemul:

(3.8)

Daca sistemul (3.8) este compatibil determinat, prin rezolvarea lui se obtine p1, p2, ., pn.

Observatie 3.2.1 Din formulele (3.7) rezulta

(3.9)

ceea ce simplifica simtitor calculul.

Exemplu 3.2.1 Determinati prin metoda Krilov polinomul caracteristic al matricei

Alegem:

Din formulele (3.7) si (3.9) de recurenta avem:

sau

Vom calcula cu al doilea rand de formule. Avem:

Formam sistemul matricial:

sau

Rezulta, in urma rezolvarii sistemului:

Deci

Programul pentru metoda Krilov

Programul prezentat determina sistemul care are printre solutii coeficientii polinomului caracteristic si, in cazul in care acesta este compatibil determinat, ii determina.

Vectorul y(0) este momorat in coloana n a matricii sistemului generat si este ales astfel:

Matricea extinsa a sistemului generat este afisata. In continuare, daca sistemul este compatibil determinat, este rezolvat folosind metoda eliminarii a lui Gauss.

Datele de intrare sunt: dimensiunea si elementele matricii.

# include <math .h>

# include <conio .h>

# include <iostream .h>

int n, i, j, k, p, t;

double a[10][10], b[10][11], x[10], s, max;

void main (void)

for( i = 1; i <= n; i++)

b[i][n] = i;

for( j = n-1; j > 0; j--)

for( i = 1; i <= n; i++)

for( i = 1; i <= n; i++)

for( i = 1; i <= n; i++)

k = 1;

t = 0;

do

if (max = = 0)

t = 1;

else

for( i = k+1; i <= n; i++)

for( j = k+1; j <= n+1; j++)

b[i][j] - = b[i][k]*b[k][j] / b[k][k];

k++;}}

while ( (k<n)&&(t = = 0));

if ( ( t = = 1) | | (b[n][n] = = 0.0) )

cout<<"Sistemul nu este compatibil determinat!"<<endl;

else

cout<<"Coeficientii polinomului caracteristic:"<<endl;

for( i = 1; i <= n; i++)

cout<<"p"<<i<<" = "<<x[i]<<endl;

}

getch ( );

}



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2878
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved