Sunteți pe pagina 1din 5

1

Trabalhos de MCC03

Julio Patti Pereira

31/08/2017

1 Trabalho 1: Armazenamento Vetorial de Matrizes Triangulares e Recuperao


de matriz com vetor representante.

Dada uma matriz tringular de ordem n. Suponhamos U a matriz triangular


superior. Por uma questo de armazenamento menor de dados, pode ser interessante
que se armazene a informao dessa matriz em um vetor u, ao invez de ocupar a
memria com um armazenamento de uma matriz com muitos zeros. O fato de os zeros
serem conhecidos e ordenados torna isso possivel no MatLab, como ser mostrado
seguir. Tambm ser mostrado como fazer a recuperao da matriz partir de um
um vetor representante, isto , o processo inverso, partindo do pressuposto que a
matriz seja triangular superior. Quando se trata de uma matriz triangular inferior, o
procedimento seria anlogo ao que ser mostrado aqui, sendo assim, no demonstrado
neste documento.

1.1 Armazenamento Vetorial


Um programa muito simples feito para o Matlab suficiente para armazenar a
informao da matriz, com a simples entrada pelo usurio de uma matriz triangular
superior.
A equao que relaciona o m-simo indice de u, matriz triangular superior,
sendo i menor ou igual j, mostrada pela Equao 1.

j(j 1)
m= + i, (1)
2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;clc;clf;close all;
U=input(Entre com a matriz triangular superior)
[m,n]=size(U);
for j=1:1:n
for i=1:1:n
if i<=j
m=(j-1)*j/2+i;
u(m)=U(i,j);
end
end
end
2

disp(O vetor correspondente de armazenamento :)


u
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

1.1.1 Exemplo:
Com o programa acima podemos ver um exemplo de aplicao em uma matriz
triangular 5x5. Os elementos da matriz foram escolhidos propiciamente para mostrar a
ordenao em que os elementos so identificados pelo programa.
Nota-se tambm que, de acordo com a Equao 2 do iten 1.2, uma matriz
triangular 5x5, isto , n = 5, deve ter geralmente 15 elementos no nulos, ao encontro
do que mostra o exemplo aqui mostrado. Para o caso de existir mais zeros, ou a
matriz se aproximar ainda mais de uma matriz esparsa, este mtodo contabiliza os ks
valores ao vetor u, independentemente dos termos acima da diagonal serem nulos ou
no.
O programa faz o mesmo procedimento para uma matriz triangular superior de
qualquer ordem.

Figura 1 Exemplo de Aplicao de Armazenamento Vetorial

Janela de Comando Matlab

1.2 Recuperao de Matriz Triangular com o Vetor Correspondente


De maneira geral, o nmero de elementos kem uma matriz triangular com
informao no nula segue a seguinte equao:

n(n + 1)
k= (2)
2
3

Onde n a ordem da matriz reprezentante.


Sendo assim, no qualquer vetor u que corresponde uma matriz triangular.
Para tanto, o vetor deve obedecer equao acima. Com este adendo, o programa
para recuperar uma matriz triangular superior partir de seu vetor correspondente
mostrado seguir:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all;clc;clf;close all;
disp(Recuperao da matriz triangular superior com o vetor u(n))
u=input(Entre com o vetor de armazenamento da matriz triangular sup:\n)
k=max(max(size(u))); %Nmero de elementos em u
n=(-1+sqrt(1+8*k))/2; %Ordem da matriz correspondente
if (n-floor(n))>0 %Verificao se u corresponde a um representante possvel
disp(vetor u no representa uma matriz triangular)
else
U(n,n)=u(k); %Algortimo de recuperao
for j=n:-1:1
for i=(n-1):-1:1
if i<=j
U(i,j)=u((j-1)*j/2+i);
end
end
end
end
disp(A matriz triangular superior correspondente ao vetor u :)
U
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Basta o usurio entrar com o vetor correspondente, de qualquer ordem, respei-
tando a equao 2, que o programa recupera a matriz. Dese-se dar o exemplo visando
uma matriz triangular 6x6. Desta forma, o vetor correspondente dever ter 21 elemen-
tos a serem contabilizados, de acordo com a Equao 2. Novamente escolheremos
um exemplo de modo a mostrar a ordem como enxergado o vetor equivalente na
matriz triangular superior. Lembrando que se pressuem aqui que a matriz triangular
superior, pois, tambm poderiamos associar o mesmo vetor a uma matriz triangular
inferior de forma anloga.
4

Figura 2 Exemplo de Recuperao de Matriz Triangular

Janela de Comando Matlab

2 Trabalho 2: Motivao: Ecomia de espao

Utilizando qualquer um dos programas anteriores corretamente, ficar armaze-


nado no Matlab as ltimas variveis guardadas para realizao do programa. Desta
forma, teremos os valores de u(m) e U(nxn) atribuidos da ltima simulao. O
comando whos na rea de trabalho ir fornecer informaes sobre as variveis
armazenadas, como podemos ver dos exemplos utilizados nas simulaes anteriores:

Figura 3 Memria de U x u para uma matriz 5x5

Janela de Comando Matlab


5

Figura 4 Memria de U x u para uma matriz 6x6

Janela de Comando Matlab

Repare que para uma configurao de armazenamento inicial e de vari-


veis de mesma natureza, a ocupao de memria segue o seguinte padro:

Espaco = 8xNelementos (3)

O que implica dizer que nessas configuraes, a economia de espao E em


se utilizar um vetor para armazenar os dados de uma matriz triangular de:

n(n + 1)
E = 8x(n2 ) = 4n(n 1) (4)
2
Para o caso dos exemplos das matrizes 5x5 e 6x6, obteve-se economia de 80 e
120 Bytes, por exemplo.

S-ar putea să vă placă și