INSTITUTO FEDERAL SUL-RIO-GRANDENSE
CURSO SUPERIOR DE ENGENHARIA ELTRICA
DISCIPLINA DE ANLISE DE SISTEMAS DE ENERGIA A
Trabalho 04
FABIANO LUIS LIMA PASSOS
Pelotas, 08 de outubro de 2014
Reduo Triangular
Seja Ax=b um sistema linear, em que A uma matriz quadrada n x n.
O mtodo consiste em eliminar todos os elementos aij, onde i>j
modificando sistemas lineares de forma a obter um sistema equivalente com
uma matriz triangular superior, pois este mais simples e de fcil resoluo, ou
seja, dada atravs de substituies. Ento este o procedimento para casos
de n equaes lineares simultneas em n variveis.
Eliminao de Gauss um mtodo muito utilizado para resolver
sistemas lineares, transformando o sistema original em um equivalente
simplificado de mesma soluo. Para esta modificao aplica-se sobre as
equaes do sistema Ax=b uma seqncia de operaes elementares
escolhidas entre:
i) Trocar duas equaes;
ii) Multiplicar uma equao por uma constante no-nula;
iii) Adicionar um mltiplo de uma equao a outra equao.
Admitimos que as equaes tivessem sido ordenadas de modo que akk
0 e definindo-se n-1 multiplicadores, teremos:
Eliminao
Aps eliminarmos xn-1 da ltima equao, o sistema triangular final
dado por:
A substituio regressiva ento produz a soluo como se segue:
Resoluo do sistema
O algoritmo acima efetua, na fase de eliminao, (4n3+3n2-7n)/6
operaes e, para resolver o sistema triangular superior sero efetuadas n2
operaes, tendo assim um total de (4n3+9n2-7n)/6, para se resolver um
sistema linear pelo mtodo de Eliminao de Gauss.
Estratgias de pivoteamento
Para no se ter piv nulo o que tornaria o trabalho impossvel, e para se
evitar trabalhar com piv prximo de zero o que pode conduzir a resultados
totalmente imprecisos, devemos contornar esses problemas utilizando uma
estratgia de pivoteamento, ou seja, adotar um processo de escolha da linha
e/ou coluna pivotal.
Estratgia de pivoteamento parcial
Esta estratgia consiste em:
i)
N o incio da etapa k da fase de eliminao, escolher para piv o
elemento de maior mdulo entre os coeficientes.
ii)
Trocar
as
linhas k e i se for
necessrio.
Fatorao de Matrizes (Mtodo LU)
Os fatores LU podem ser construdos usando a idia bsica do mtodo
de eliminao de Gauss, pois a obteno desses fatores por frmulas dificulta
o uso de estratgia de pivoteamento. Fatorando a matriz A em duas matrizes
triangulares L e U, sendo que o fator L triangular inferior com diagonal unitria
e seus elementos lij para i > j so os multiplicadores m ij obtidos no processo de
eliminao de Gauss; o fator U triangular superior e obtida no final da faze
da triangularizao.
No caso de aplicao da estratgia de pivoteamento parcial fatorao
LU ser necessrio a permutao de linhas na matriz A, obtendo-se:
Algoritmo para programao em Matlab
1 passo - Dados iniciais
A: Entrar com valores da matriz A;
B: Entrar com valores da matriz b.
Condio para a execuo do programa det(A)==0: A matiz A deve ter
determinante diferente de ZERO, garantindo que a soluo seja possvel e
determinada, se igual no realizar operao.
2 passo Verificao
[y,p]=max(abs(Ab(k:n,k))): Acha o ndice da linha com maior valor
absoluto na coluna para baixo.
A1([k p],:)=A1([p k],:); % Realiza a troca de linhas
3 passo Aplicao do algoritmo
i=k+1:n;
m=A1(i, k)/A1(k,k): Multiplicador
j=k:n+1;
A1(i,j)=A1(i,j)-m*A1(k,j): Algoritmo
4 passo - Decomposio da matriz (voltando a ser um
sistema mais simples).
A=A1(:,1:n);
b=A1(:,n+1);
5 passo - Resoluo do sistema
x(n)= b(n)/A(n,n);
s=s+A(k,j)*x(j);
x(k)=(b(k)-s)/A(k,k): Substituio regressiva
disp ('O vetor soluo e :')
Exemplo de Aplicao
John Grainger, William Stevenson, Power System Analysis, McGraw-Hill, 1994.(
Pgina 259, verso em espanhol)
Lembrando que devemos alterar o valor para
Programa Matlab
clear;
clc;
I 4=0.6 120
A=[-16.75i 11.75i 2.5i 2.5i
11.75i -19.75i 2.5i 5i
2.5i 2.5i -5.8i 0
2.5i 5i 0 -8.3i]
B=[0
0
-1i
-0.3-0.5196i]
[L,U]=lu(A)
d=L\B
X=U\d
Programa Matlab 2
% Metodo de Eliminacao de Gauss com Pivoteamento por Coluna
clear all
clc
% Entrada de dados do Sistema Linear
A=input('Coloque os Coeficientes da Matriz (A)''\n');
b=input('Vetor da Igualdade (b)''\n');
b=reshape(b,length(b),1); %transforma b em coluna
[m,n]=size(A);
%Aquisio da ordem de A por tamanho
% Verificao do Sistema
%Matriz A
if m~=n
disp('Nmero de Equaes diferente do Nmero de Incgnitas')
return
end
A')
%Vetor b
if [m,1]~=size(b)
disp('Nmero de igualdades no corresponde ao nmero de linhas de
return
end
if det(A)==0
disp('Matriz Singular ou possui Equaes Linearmente
Dependentes')
return
end
index=linspace(1,m,m);%cria um vetor com m termos, onde o ltimo
termo m e o incremento 1
% Triangularizao
% 1 Pivoteamento
for cont=1:m-1
[Y,I]=max(A(cont,cont:m));
I=I+(cont-1); %Correo do numero de colunas quando cont>1 em
cont:m
aux=A(:,cont);
A(:,cont)=A(:,I);
A(:,I)=aux;
aux=index(cont); % mudana de posiao do vetor index
index(cont)=index(I);
index(I)=aux;
%
%
%
"AUX = A
A = B
B = AUX"
% 2 Anulao dos Valores abaixo do Pivo
for cont2=cont+1:m
k=-A(cont2,cont)/Y;
A(cont2,cont:m)=A(cont2,cont:m)+k*A(cont,cont:m);
b(cont2)=b(cont2)+k*b(cont);
end
end
% Acabou
todo o pivoteamento
% Solve do sistema
x(m)=b(m)/A(m,m);
while cont>=1 % contador regressivo
aux=sum(A(cont,cont+1:m).*x(cont+1:m));
x(cont)=(b(cont)-aux)/A(cont,cont);
cont=cont-1;
if cont<1
break
end
end
Realojamento do Vetor de Incgnitas nas Posies Corretas:
for cont=1:m
for i=1:m
if index(i)==index(cont)
aux=x(index(i));
x(index(i))=x(cont);
x(cont)=aux;
aux=index(index(i));% conserta-se o index pra no repetir a
operao de troca de valor em x
index(index(i))=index(cont);
index(cont)=aux;
end
end
end
disp('Vetor de Incgnitas')
disp(x)
Referencias bibliogrficas
Mtodos Numricos Aplicados Com Matlab Para Engenheiros e Cientistas
- 3 Ed. 2013 - Steven C. Chapra
John Grainger, William Stevenson, Power System Analysis, McGraw-Hill,
1994.