Академический Документы
Профессиональный Документы
Культура Документы
linalg
Prof. Paulo R. G. Bordoni
UFRJ
Pois Surfista, a histria mostra que, desde 1947, a comunidade de Computao Cientfica, tem trabalhado arduamente no desenvolvimento da lgebra Linear Computacional. Em particular na resoluo de sistemas lineares.
Mestre, no tocante a resoluo de sistemas lineares, proponho adotarmos a ttica de operacionalizar primeiro. Depois vamos analisar os aspectos tericos.
No gosto muito dessa ideia, mas como acredito na sua experincia didtica, concordo!
Rotinas bsicas
Voltando ento s rotinas bsicas do Tutorial, foquemos nossa ateno no tpico Resolvendo sistemas lineares.
Achando a inversa Resolvendo sistemas lineares Achando o determinante Calculando normas Resolvendo problemas lineares de mnimos quadrados e pseudo-inversas
Inversa generalizada
Surfista, a orientao do Tutorial da scipy.linalg usar a solve( ) [e no a inversa, inv( )] para obter a soluo de um sistema linear.
O Surfista est certo, Mestra. Eis a uma razo para no operacionalizarmos s cegas.
Resmungo...
Loirinha querida, mais adiante estudaremos erros, propagao de erros e estabilidade numrica.
Recortei as rotinas bsicas na Referncia do scipy.linalg para resoluo de sistemas lineares. Alm da solve( ), existem rotinas apropriadas para matrizes com caracterstica especiais.
Diagonal Quando todos os seus elementos fora da diagonal so nulos: = 0 Alis existe toda uma fauna de matrizes = [ ] cujas definies devemos recordar: Triangular inferior Quando todos os elementos acima da diagonal so nulos: < = 0
Exemplos:
Diagonal 3x3 2 0 0 3 0 0 0 0 6
Quando satisfaz:
0 =
,=1
> 0
1 0 0 2 0 0
0 0 3
= 2 = 2 2 2 + 3 2 3 e escolhendo = 1 2 0 obtemos = 0.
+ + 2
+ 2 + 2 ,
uma soma de quadrados, que s se anula para = = 0 0 0 . Surfista, confira essa afirmao da Mestra!
sen cos 0
cos sen 0
0 0 1
0 0 1
1 0 = 0 1 0 0
0 0 1
Este programa recebe uma matriz A e um vetor b. Em seguida, chama solve(A,b) para resolver o sistema linear A*x = b.
Mestra esse algoritmo para achar a inversa vlido para qualquer tipo de matriz, no?
Uma matriz = [ ] possui banda inferior k quando = 0 para > . E possui banda superior k, quando = 0 para > . Eis uma matriz A com banda inferior 2 (em laranja) e banda superior 1 (em verde): = 0 0 0 0 0 0 0 0 0
A ao para armazenar uma matriz de banda como essa esquecer os zeros e deixar cair! Vejam s:
= 0 0 0 0 0 0 0 0 0
Esta rotina especfica da scipy.linalg para resolver sistemas lineares cuja matriz de banda.
Esta uma das rotinas do linalg para realizar a fatorao PLU. Ela s realiza a fatorao; no apresenta a soluo.
A rotina pode efetuar o pivoteamento por linha (ou no). Ela retorna: as trs matrizes P, L e U ou apenas duas, a PL que a triangular inferior permutada e a U.
Ela recebe a matriz A e retorna uma matriz contendo a fatorao LU e um vetor contendo os ndices de pivoteamento.
Os parmetros retornados.
Esta rotina recebe a fatorada LU e o vetor piv fornecidos pela LU_factor( ). Recebe tambm o termo independente b e retorna a soluo x.