Use o botão abaixo para reportar erros ou dar sugestões.

Cálculo Numérico - Versão Scilab

4.3 Sistemas triangulares


Considere um sistema linear onde a matriz é triangular superior, ou seja,

a11 a12 ⋯ a1n 0 a22 ⋯ a2n ⋮ ⋮ ⋱ ⋮ 0 … 0 a nn x1 x2 ⋮ x n = b1 b2 ⋮ b n (4.68)

tal que todos elementos abaixo da diagonal são iguais a zero.

Podemos resolver esse sistema iniciando pela última equação e isolando xn obtemos

xn = bn∕ann (4.69)

Substituindo xn na penúltima equação

an−1,n−1xn−1 + an−1,nxn = bn−1 (4.70)

e isolando xn−1 obtemos

xn−1 = (bn−1 − an−1,nxn)∕an−1,n−1 (4.71)

e continuando desta forma até a primeira equação obteremos

x1 = (b1 − a12x2⋯ − a1nxn)∕a11. (4.72)

De forma geral, temos que

xi = (bi − ai,i+1xi+1⋯ − ai,nxn)∕ai,i,i = 2,…,n. (4.73)

4.3.1 Código Scilab: resolução de um sistema triangular superior


Para resolver um sistema triangular superior iniciamos da última linha em direção a primeira.

 
1function [x]=solveU(U,b)  // U:= matriz triangular superior 
2   n=size(U,1)           // b:= vetor 
3   x(n)=b(n)/U(n,n) 
4   for i=n-1:-1:1 
5        x(i)=(b(i)-U(i,i+1:n)*x(i+1:n)  )/U(i,i) 
6    end 
7endfunction

4.3.2 Código Scilab: resolução de um sistema triangular inferior


Para resolver um sistema triangular inferior podemos fazer o processo inverso iniciando da primeira equação.

 
1function [x]=solveL(L,b)   // L: matriz triangular inferior 
2    n=size(L,1)             // b: vetor 
3    x(1)=b(1)/L(1,1) 
4    for i=2:n 
5        x(i)=(b(i)-L(i,1:i-1)*x(1:i-1)  )/L(i,i) 
6    end 
7endfunction

Custo computacional

Vamos contar o número total de flops para resolver um sistema triangular inferior. Note que o custo para um sistema triangular superior será o mesmo.

Na linha 3, temos uma divisão, portanto 1 flop.

Na linha 5 quando i = 2, temos

     x(2)=(b(2)-L(2,1:1)*x(1:1))/L(2,2),

ou seja, 1 subtração+1 multiplicação + 1 divisão = 3 flops.

Quando i = 3,

     x(3)=(b(3)-L(3,1:2)*x(1:2))/L(3,3)

temos 1 subtração+(2 multiplicações + 1 soma) +1 divisão = 5 flops.

Quando i = 4, temos 1 subtração+(3 multiplicações + 2 somas) +1 divisão = 7 flops.

Até que para i = n, temos

     x(n)=(b(n)-L(n,1:n-1)*x(1:n-1))/L(n,n),

com 1 subtração+(n − 1 multiplicações + n − 2 somas) + 1 divisão, ou seja, 1 + (n − 1 + n − 2) + 1 = 2n − 1 flops.

Somando todos esses custos3 temos que o custo para resolver um sistema triangular inferior é

1 + 3 + 5 + 7 + ... + 2n − 1 = ∑ k=1n(2k − 1) = 2 ∑ k=1nk −∑ k=1n1 (4.75)

e utilizando que a soma dos k inteiros é a soma dos termos de uma progressão aritmética4

2(n(n + 1)∕2) − n = n2 flops. (4.76)

Creative Commons License Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 19/8/2020 às 17:36:32.

Informe erros ou edite você mesmo!