Vous êtes sur la page 1sur 10

Trabalho computacional de SEP 4

Calculo de determinantes e de sistemas lineares

Aluno: Leonardo Goncalves do Nascimento Matricula: 0509532-8


So Joo Del rei 30/12/2010

Apresentacao em Power point

SEP IV
Resolucao de determinantes e sistemas lineares a partir da decomposicao por LDU.

LDU
O LDU e um processo que decompoe uma matriz qualquer em tres matrizes distintas, onde sao: L: Matriz triangular inferior D: Matriz diagonal U: Matriz triangular superior

LDU

LDU
Formulas encontradas a partir do metodo de decomposicao de Crout
L(i,j)=L(i,j)-(L(i,k-1)*D(k-1,k-1)*U(k-1,j)); D(i,j)=D(i,j)-(L(i,k-1)*D(k-1,k-1)*U(k-1,j)); U(i,j)=U(i,j)-(L(i,k-1)*D(k-1,k-1)*U(k-1,j));

Determinante
Para o calculo do determinante, temos: A=LDU Det(A)=Det(L)*Det(D)*Det(U) Det(A)=Det(D)

Det(A)=D(1,1)*D(2,2)**D(n,n) Oonde n e a ordem da matriz.

Determinante
Um exemplo do uso de determinantes em sistemas eletricos de potencia e o uso do mesmo no estudo do grafico PxV, onde um determinante positivo nos indica a operacao em um ponto desejavel.

Sistema Linear AX=B


No calculo usaual de um sistema linear onde X=(A^-1)*B, ha um esforco computacional para se obter a inversa de A caso seja de grande porte, por isso tambem foi usada a decomposicao em LDU para obtencao de X.

Sistema linear AX=B


Temos: Ax=b A-1Ax=A-1b ,ou, x=A-1b A=LDU; LDUx=b LDy=b; Ux=y

Desta forma obtemos X.

Conclusao
O uso da decomposicao em LDU se mostrou uma boa alternativa para nao comprometer a capacidade computacional ao se trabalhar com matrizes de grande porte esparsas, conseguindo assim resultados satisfatorios.

Programa que calcula determinantes:


clear close all clc disp('Programa para calcular determinante de matriz de qualquer ordem ') disp('Digite um(1) para abrir matriz armazenada em arquivo ".txt" ') disp('Digite dois(2) para abrir matriz armazenada em arquivo ".xls" ') disp('Digite tres(3) para entrar com os valores da matriz ') a = input(''); %Laco para entrada da matriz m if a == 1 [file,dir] = uigetfile('*.txt'); m = load(fullfile(dir,file)); n = size(m); elseif a == 2 [file,dir] = uigetfile('*.xls'); m = xlsread(fullfile(dir,file)); n = size(m); else ord = input('Digite a ordem da matriz = '); m = zeros(ord); i = ord; j = ord; for l=1:i for c =1:j m(l,c) = input (['Digite valor do elemento M(' num2str(l) ',' num2str(c) ') = ' ]); end end

n=size(m) end

%Lacos para o calculo de LDU da matriz m. for i=1:n L(i,i)=1; for j=1:n U(j,j)=1; if i>j L(i,j)=m(i,j); end if i<j U(i,j)=m(i,j);

end D(1,1)=m(1,1); if i>j for k= j:-1:2 if k==j L(i,j)=m(i,j); end L(i,j)=L(i,j)-(L(i,k-1)*D(k-1,k-1)*U(k-1,j)); end end if i<j for k= i:-1:2 if k==i U(i,j)=m(i,j); end U(i,j)=U(i,j)-(L(i,k-1)*D(k-1,k-1)*U(k-1,j)); end end if i==j for k= i:-1:2 if k==i D(i,j)=m(i,j); end D(i,j)=D(i,j)-(L(i,k-1)*D(k-1,k-1)*U(k-1,j)); end end if i>j L(i,j)=L(i,j)/D(j,j); end if i<j

U(i,j)=U(i,j)/D(i,i); end

end end L D U eye; %Laco para o calculo do determinante pela matriz D determinante=1; for w=1:n determinante=determinante*D(w,w); end determinante

Programa que calcula sistemas lineares:

clear all clc m=[3 6 2 1; 8 6 2 5; 7 89 2 0; 3 5 6 1] b=[4;7;2;9]; n=size(m)

% for i=1:n % for j=1:n % if i<j % L(i,j)=0; % end % if i>j % U(i,j)=0; % end % end % end for i=1:n L(i,i)=1; for j=1:n U(j,j)=1;

if i>j L(i,j)=m(i,j); end if i<j U(i,j)=m(i,j);

end D(1,1)=m(1,1); if i>j for k= j:-1:2 if k==j L(i,j)=m(i,j); end L(i,j)=L(i,j)-(L(i,k-1)*D(k-1,k-1)*U(k-1,j)); end end if i<j for k= i:-1:2 if k==i U(i,j)=m(i,j); end U(i,j)=U(i,j)-(L(i,k-1)*D(k-1,k-1)*U(k-1,j)); end end if i==j for k= i:-1:2 if k==i D(i,j)=m(i,j); end D(i,j)=D(i,j)-(L(i,k-1)*D(k-1,k-1)*U(k-1,j)); end end if i>j L(i,j)=L(i,j)/D(j,j); end if i<j U(i,j)=U(i,j)/D(i,i); end

end end

L D U a=m; a b Y=((L*D)^-1)*b; X=(U^-1)*Y; X

Bibliografia
MUNEM, Mustaf A.; FOULIS, David J. Clculo Numerico . Rio de Janeiro: LTC, 1982 W. D. Stevenson Jr. (1986). Elementos de anlise de sistemas de potncia

Vous aimerez peut-être aussi