PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
Resolução de Sistemas Lineares
1. Cálculo Numérico
Resolução de Sistemas Lineares
Escalonamento de matrizes com uso do SciLab
Kleber Jacinto
Eng Eletricista – Mestre em Ciência da computação
1 23/11/12
2. Representando matrizes no Scilab
Uma Matriz é um conjunto de valores numéricos, organizados
em linhas e colunas. No Scilab, uma variável deve ser
guardada em uma variável.
•Uma matriz é SEMPRE representada entre colchetes “[ ]”;
•Os elementos de uma linha devem ser separados por
“espaço”;
•As linhas são separadas por ponto e vírgula “;”
-->L=[115 27 19 565;27 19 3 134.98;19 3 6 90]
L =
115. 27. 19. 565.
27. 19. 3. 134.98
19. 3. 6. 90.
2 23/11/12
3. Representando matrizes no Scilab
É possível extrair de uma matriz, um elemento
individualmente
-->L(1,2) //linha 1 coluna 2
ans =
27.
-->L(3,3) //linha 3 coluna 3
ans =
6.
-->L(2,4) //linha 2 coluna 4
ans =
134.98
3 23/11/12
4. Representando matrizes no Scilab
É possível extrair de uma matriz, uma linha ou coluna
individualmente
-->L(1,:) //Toda a linha 1
ans = 115. 27. 19. 565.
-->L(3,:) //Toda a linha 3
ans = 19. 3. 6. 90.
-->L(:,4) //Toda a coluna 4
ans =
565.
134.98
90.
4 23/11/12
5. Representando matrizes no Scilab
É possível extrair de sub-matriz de uma matriz existente
-->L(1:2,1:3) //sub matriz das linhas 1 e 2 e
colunas 1 a 3
ans =
115. 27. 19.
27. 19. 3.
-->L(2:3,2:4) //sub matriz das linhas 2 e 3 e
colunas 2 a 4
ans =
19. 3. 134.98
3. 6. 90.
5 23/11/12
6. Representando matrizes no Scilab
É possível realizar operação com toda a matriz ou ou um
elemento, ou uma linha ou coluna
-->L*3
ans =
345. 81. 57. 1695.
81. 57. 9. 404.94
57. 9. 18. 270.
-->L(1,1)+2
ans = 117.
-->L(1,:)*3
ans = 345. 81. 57. 1695.
6 23/11/12
7. Representando matrizes no Scilab
É possível realizar operação com toda a matriz ou ou um
elemento, ou uma linha ou coluna
-->L*3
ans =
345. 81. 57. 1695.
81. 57. 9. 404.94
57. 9. 18. 270.
-->L(1,1)+2
ans = 117.
-->L(1,:)*3
ans = 345. 81. 57. 1695.
7 23/11/12
9. Sistema de equações lineares
Solução por escalonamento da matriz
Primeiro Passo: garantir que o elemento (1,1) tenha valor 1
Dividir toda a linha pelo elemento (1,1)
-->L(1,:)=L(1,:)/L(1,1)
L =
1. 0.2347826 0.1652174 4.9130435
27. 19. 3. 134.98
19. 3. 6. 90.
9 23/11/12
10. Sistema de equações lineares
Solução por escalonamento da matriz
Segundo Passo: zerar o elemento (2,1)
Substituir a linha 2, por ela mesma menos a linha 1
multiplicada pelo elemento (2,1)
-->L(2,:)=L(2,:)-L(1,:)*L(2,1)
L =
1. 0.2347826 0.1652174 4.9130435
0. 12.66087 - 1.4608696 2.3278261
19. 3. 6. 90.
10 23/11/12
11. Sistema de equações lineares
Solução por escalonamento da matriz
Terceiro Passo: zerar o elemento (3,1)
Substituir a linha 3, por ela mesma menos a linha 1
multiplicada pelo elemento (3,1)
-->L(3,:)=L(3,:)-L(1,:)*L(3,1)
L =
1. 0.2347826 0.1652174 4.9130435
0. 12.66087 - 1.4608696 2.3278261
0. - 1.4608696 2.8608696 - 3.3478261
11 23/11/12
12. Sistema de equações lineares
Solução por escalonamento da matriz
Quarto Passo: garantir que o elemento (2,2) tenha valor 1
Dividir toda a linha pelo elemento (2,2)
-->L(2,:)=L(2,:)/L(2,2)
L =
1. 0.2347826 0.1652174 4.9130435
0. 1. - 0.1153846 0.1838599
0. - 1.4608696 2.8608696 - 3.3478261
12 23/11/12
13. Sistema de equações lineares
Solução por escalonamento da matriz
Quinto Passo: zerar o elemento (1,2)
Substituir a linha 1, por ela mesma menos a linha 2 multiplicada
pelo elemento (1,2)
-->L(1,:)=L(1,:)-L(2,:)*L(1,2)
L =
1. 0. 0.1923077 4.8698764
0. 1. - 0.1153846 0.1838599
0. - 1.4608696 2.8608696 - 3.3478261
13 23/11/12
14. Sistema de equações lineares
Solução por escalonamento da matriz
Sexto Passo: zerar o elemento (3,2)
Substituir a linha 3, por ela mesma menos a linha 2 multiplicada
pelo elemento (3,2)
-->L(3,:)=L(3,:)-L(2,:)*L(3,2)
L =
1. 0. 0.1923077 4.8698764
0. 1. - 0.1153846 0.1838599
0. 0. 2.6923077 - 3.0792308
14 23/11/12
15. Sistema de equações lineares
Solução por escalonamento da matriz
Sétimo Passo: garantir que o elemento (3,3) tenha valor 1
Dividir toda a linha pelo elemento (3,3)
-->L(3,:)=L(3,:)/L(3,3)
L =
1. 0. 0.1923077 4.8698764
0. 1. - 0.1153846 0.1838599
0. 0. 1. - 1.1437143
15 23/11/12
16. Sistema de equações lineares
Solução por escalonamento da matriz
Oitavo Passo: zerar o elemento (1,3)
Substituir a linha 1, por ela mesma menos a linha 3 multiplicada
pelo elemento (1,3)
-->L(1,:)=L(1,:)-L(3,:)*L(1,3)
L =
1. 0. 0. 5.0898214
0. 1. - 0.1153846 0.1838599
0. 0. 1. - 1.1437143
16 23/11/12
17. Sistema de equações lineares
Solução por escalonamento da matriz
Nono Passo: zerar o elemento (2,3)
Substituir a linha 1, por ela mesma menos a linha 3 multiplicada
pelo elemento (2,3)
-->L(2,:)=L(2,:)-L(3,:)*L(2,3)
L =
1. 0. 0. 5.0898214
0. 1. 0. 0.0518929
0. 0. 1. - 1.1437143
17 23/11/12
18. Sistema de equações lineares
Solução por escalonamento da matriz
Algoritmo:
1.Dividir toda a linha pelo elemento (1,1)
2.Substituir a linha 2, por ela mesma menos a linha 1 multiplicada pelo
elemento (2,1)
3.Substituir a linha 3, por ela mesma menos a linha 1 multiplicada pelo
elemento (3,1)
4.Dividir toda a linha pelo elemento (2,2)
5.Substituir a linha 1, por ela mesma menos a linha 2 multiplicada pelo
elemento (1,2)
6.Substituir a linha 3, por ela mesma menos a linha 2 multiplicada pelo
elemento (3,2)
7.Dividir toda a linha pelo elemento (3,3)
8.Substituir a linha 1, por ela mesma menos a linha 3 multiplicada pelo
elemento (1,3)
9.Substituir a linha 1, por ela mesma menos a linha 3 multiplicada pelo
elemento (2,3)
18 23/11/12
19. Sistema de equações lineares
Solução por escalonamento da matriz
Algoritmo Versão codificada para Scilab
1.L(1,:)=L(1,:)/L(1,1)
2.L(2,:)=L(2,:)-L(1,:)*L(2,1)
3.L(3,:)=L(3,:)-L(1,:)*L(3,1)
4.L(2,:)=L(2,:)/L(2,2)
5.L(1,:)=L(1,:)-L(2,:)*L(1,2)
6.L(3,:)=L(3,:)-L(2,:)*L(3,2)
7.L(3,:)=L(3,:)/L(3,3)
8.L(1,:)=L(1,:)-L(3,:)*L(1,3)
9.L(2,:)=L(2,:)-L(3,:)*L(2,3)
19 23/11/12
20. Sistema de equações lineares
Solução por escalonamento da matriz
Programa Versão Sistema 3 equações e 3 variáveis
i=1
tamanho=3
while i<=tamanho
j=1
while j<=tamanho
if L(i,i)<>1 then
L(i,:)=L(i,:)/L(i,i)
end
if i<>j then
L(j,:)=L(j,:)-(L(j,i)*L(i,:))
end
j=j+1
end
i=i+1
end
20 23/11/12