You are on page 1of 7

Tutorial do MATLAB

So necessrios alguns comandos bsicos para usar o programa MATLAB. Este tutorial resumido descreve esses comandos. Voc precisa criar vetores e matrizes, alter-los e operar com eles. Todos eles so comandos curtos e de alto nvel, pois o MATLAB trabalha constantemente com matrizes. Acredito que vocs vo gostar do poder que esse software fornece ao usurio para trabalhar com lgebra linear por meio de vrias instrues resumidas: criar E E = eye(3) criar u u = E(:,1) mudar E E(3,1) = 5 multiplicar Eu =E u

A palavra eye representa a matriz identidade. A submatriz u = E(:,1) seleciona a coluna 1. A instruo E(3,1) = 5 reconfigura a entrada (3,1) para 5. O comando E u multiplica as matrizes E e u. Todos esses comandos se repetem em nossa lista a seguir. Veja um exemplo de inverso de uma matriz para solucionar um sistema linear: criar A A = ones(3)+ eye(3) criar b b=A(:,3) inverter A C = inv(A) resolver Ax = b x = A\b ou x=C b

A matriz com todos os ones foi acrescentada ao eye(3) e b sua terceira coluna. A seguir, inv(A) produz a matriz inversa (normalmente em decimais; para fraes, use format rat). O sistema Ax = b resolvido por x = inv(A) b, que a forma mais lenta. O comando barra invertida x = A\b usa a eliminao gaussiana se A for quadrado e nunca calcula a matriz inversa. Quando o lado direito b se iguala terceira coluna de A, a soluo x dever ser [0 0 1]. (O transpose symbol transforma x em um vetor coluna). A seguir, A x seleciona a terceira coluna de A, e teremos Ax = b. Alguns comentrios. O smbolo do comentrio %: % % Os smbolos a e A so diferentes: o MATLAB diferencia maisculas de minsculas. Digite help slash para uma descrio de como usar o smbolo de barra invertida. A palavra help pode ser seguida de um smbolo do MATLAB ou do nome do comando ou do nome do arquivo-M.

Obs.: O nome do comando est em letra maiscula na descrio fornecida pela Ajuda, mas deve ser digitado em letra minscula ao usar o programa. E a barra invertida A\b diferente quando A no for quadrado. % % Para exibir todos os 16 dgitos, digite format long. O format short normal fornece 4 dgitos aps o decimal. Um ponto e vrgula aps um comando evita a exibio do resultado. A = ones(3); no exibir a matriz identidade 3 3. Use o cursor seta para cima para voltar aos comandos anteriores.

Como inserir um vetor coluna ou vetor linha


tem uma linha com trs componentes (matriz 1 3) tem trs linhas separadas por ponto e vrgula (matriz 3 1) ou o vetor u transposto = [2 3 4 5] com passos unitrios

gera o vetor linha

assume passo 2 para fornecer u = [1 3 5 7]

Como inserir matriz (uma linha de cada vez)


A = [1 2 3; 4 5 6] A = [1 2 3 4 5 6] B = [1 2 3; 4 5 6] a transposta de A. Por isso, AT A no MATLAB tem duas linhas (sempre um ponto e vrgula entre as linhas) tambm produz a matriz A mas mais difcil de digitar

Como criar matrizes especiais


diag toeplitz produz a matriz diagonal com vetor na diagonal fornece a matriz diagonal-constante simtrica com como primeira linha e primeira

coluna toeplitz e ones fornece a matriz simtrica com diagonal-constante com como primeira linha fornece uma matriz n x n de ums como primeira coluna

zeros(n) fornece matriz n x n somente de zeros eye (n) fornece matriz identidade n x n rand(n) fornece matriz n x n com entradas aleatrias entre 0 e 1 (distribuio uniforme) randn(n) fornece matriz n x n com entradas normalmente distribudas (mdia 0 e varincia 1) one s(m, n) zeros(m,n) rand(m,n) fornecem matrizes m x n fornecem matrizes com o mesmo formato de A ones(size (A)) zeros(size (A)) eye(size A))

Como alterar entradas em uma dada matriz A


A(3,2) = 7 redefine a entrada (3,2) para igualar a 7 A(3, :) = redefine a terceira linha para igualar A(:,2) = redefine a segunda coluna para igualar a O smbolo dois pontos : significa todos (todas as colunas ou todas as linhas) A([2 3], :) = A([3 2], :) permuta as filas 2 e 3 de A

Como criar submatrizes de uma matriz A de m x n


A(i, j) A(i,: ) A(:, j) A(2 : 4,3 : 7) A([2 4],:) A(;) triu(A) tril(A) retorna a entrada (i, j) da matriz A (escalar = matriz 1 x 1) retorna a linha i de A (como vetor linha) retorna a coluna j de A (como vetor coluna) retorna as linhas de 2 a 4 e as colunas de 3 a 7 (como matriz 3 x 5) retorna linhas 2 e 4 e todas as colunas (como matriz 2 x n ) retorna uma coluna longa formada pelas colunas de A ( matriz mn x 1) define todas as entradas abaixo da diagonal principal como- zero (triangular superior) define todas as entradas acima da diagonal principal como zero (triangular inferior)

Inverso e multiplicao matricial


fornece a matriz produto AB (se A pode multiplicar B) A B fornece o produto entrada por entrada (se dimenso(A) = dimenso (B) A. B inv(A) fornece A-1 se A for quadrada e puder for inversvel pinv(A) fornece a pseudo-inversade A A\B fornece inv(A) B se inv(A) existir: backlash a diviso esquerda x = A\b fornece a soluo para Ax = b se inv(A) existir Veja help slash quando A for uma matriz retangular!

Nmeros e matrizes associadas a A


det(A) odeterminante (se A for uma matriz quadrada) rank(A) o posto (nmero de pivs = dimenso do espao da linha e do espao da coluna) size(A) o par de nmeros [m n] trace(A) o trao = soma das entradas diagonais = soma dos autovalores null(A) a matriz cujas colunas n - r so uma base ortogonal para o espao nulo de A orth(A) a matriz cujas colunas r so uma base ortogonal para o espao de coluna de A

Exemplos
E = eye(4);E(2,1) = -3 cria uma matriz elementar de eliminao 4 x 4 E A subtrai 3 vezes a linha 1 de A da linha 2. B = [A b] cria a matriz aumentada com b como coluna extra E = eye(3); P = E([2 1 3],:) cria uma matriz de permutao Observe que triu(A) + tril(A) diag(diag(A)) se iguala a A

Arquivos-M construdos para fatoraes de matriz (todos so importantes!)


[L, U, P] = lu(A) fornece trs matrizes com PA = LU e eig (A) um vetor que contm os autovalores de A [S,E] = eig (A) fornece uma matriz diagonal E de autovalores e uma matriz S de autovetores com AS = SE. inversvel. [Q, R] = qr(A) fornece uma matriz Q ortogonal m x n e uma R triangular m x n com A = QR Se A no for diagonalizvel (poucos autovetores) ento S no ser

Criando arquivos-M
Os arquivos-m so arquivos de texto terminando com a extenso .m, os quais o MATLAB usa para funes e roteiros. Um roteiro uma seqncia de comandos que podem ser executados com freqncia e podem ser colocados em um a rquivo-m de modo que os comandos no precisem ser digitados novamente. Os demos do MATLAB so exemplos desses roteiros. Um exemplo o demo chamado house. A maioria das funes do MATLAB , na verdade, constituda de arquivos-m que podem ser visualizados escrevendo-se type xxx onde xxx o nome da funo.

Para escrever seus prprios roteiros ou funes, voc precisa criar um novo arquivo de texto com qualquer nome de sua preferncia, desde que termine com .m, para permitir que o MATLAB reconhea o arquivo. Arquivos de texto podem ser criados, editados e salvos com qualquer editor de texto como emacs, EZ ou vi. Um arquivo de texto , simplesmente, uma lista de comandos MATLAB. Quando se digita o nome do arquivo no prompt do MATLAB, o contedo do arquivo ser executado. Para que um arquivo-m seja uma funo, preciso iniciar com a palavra function seguida pelas variveis de sada entre colchetes, o nome da funo e as variveis de entrada.

Exemplos
function [C] = mult(A) r = rank(A); C = A A; Salve os comandos acima em um arquivo de texto nomeado como mult.m . Essa funo toma uma matriz A e retorna o produto matricial C. A varivel r no devolvida por que no foi includa como uma varivel de sada. Os comandos so seguidos por ; de modo que no sero impressos na janela do MATLAB toda vez que forem executados. Isso til quando se trata de grandes matrizes. Eis um outro exemplo: function [V, D, r] = properties (A) % Esta funo encontra rank, eigenvalues e eigenvectors de A [m,n] =size(A); se m = = n [V,D] =eig(A); r=rank(A); else disp (Error: A matriz deve ser quadrada); end Aqui a funo toma a matriz A como entrada e retorna duas matrizes e o posto (rank) como resultado. O % usado como comentrio. A funo verifica se a matriz de entrada quadrada e a seguir encontra o posto, os autovalores e os autovetores de uma matriz A. Digitando-se properties(A) o retorno ser somente o primeiro resultado, V, a matriz de autovetores. Para obter os trs resultados, voc precisar digitar [V, D, r}=properties(A).

Mantendo um dirio de seu trabalho


O comando diary (file) instrui o MATLAB a registrar tudo o que feito na janela do MATLAB e a salvar os resultados no arquivo denominado file. Ao digitar diary on ou diary off voc alterna o registro. Arquivos de dirios antigos podem ser visualizados por meio de um editor de texto, ou impresso usando-se lpr em Unix. No MATLAB, eles podem ser visualizados com o comando type file.

Salvando suas variveis e matrizes


O comando diary salva os comandos que voc digitou, assim como o resultado do MATLAB, mas no salva o contedo de suas variveis e matrizes. Essas variveis podem ser listadas pelo comando whos que tambm lista os tamanhos das matrizes. O comando save xxx salvar as matrizes e todas as variveis listadas pelo comando whos no arquivo chamado xxx. O MATLAB rotula esses arquivos com a extenso .mat em vez de .m, que so roteiros ou funes. Os arquivos xxx.mat podem ser lidos pelo MATLAB mais tarde digitando-se load xxx.

Grficos
O comando mais simples plot (x, y) que utiliza dois vetores x e y do mesmo comprimento. Os pontos ( xi , yi ) sero impressos e conectados por linhas slidas. Se no houver vetor x o MATLAB assumir que x(i)=i. Ento plot (y) tem espaamento igual no eixo-x: os pontos so (i, y(i)). O tipo e a cor da linha entre os pontos podero ser alterados por um terceiro argumento. O default sem argumento uma linha slida negra -. Use help plot para muitas opes, entre as quais indicamos algumas: MATLAB 5: plot (x, y,r + :) imprime em r = vermelho com + para pontos e linha pontilhada MATLAB 4: plot (x, y,- -) uma linha em traos e plot (x, y,.) uma linha pontilhada Voc pode omitir as linhas e imprimir somente pontos discretos de vrias maneiras: plot (x, y, o) fornece crculos. Outras opes so + ou x ou Para dois grficos nos mesmos eixos use plot (x, y, X, Y). Substitua plot por loglog ou semilogy ou semilogx para alterar um ou ambos os eixos para a escala de logaritmos.

O comando axis ([a b c d]) colocar o grfico em uma escala que se ajuste ao retngulo a x b, c y d. Para dar nome ao grfico ou rotular o eixo-x ou o eixo-y coloque o nome desejado entre aspas, como nesses exemplos: title (altura do satlite) xlabel (tempo em segundos) ylabel (altura em metros)

O comando hold mantm o grfico atual quando voc imprimir um novo grfico. Ao repetir hold, voc limpar a tela. Para imprimir, ou salvar a janela de grfico em um arquivo, veja help print ou use print -Pprintername print d filename