Sie sind auf Seite 1von 12

Universidade Federal de Alagoas - UFAL Centro de Tecnologia - CTEC Departamento de Engenharia Estrutural - EES

Cidade Universitria - Campus A. C. Simes Tabuleiro do Martins - Macei AL - CEP 57072-970 Tel: (082) 214 1277 - Fax: (082) 214 1625 E-mail: ees@ctec.ufal.br - Home page: http://www.ctec.ufal.br/ees

INTRODUO AO MATLAB

Eduardo Nobre Lages


Professor Adjunto E-mail: enl@ctec.ufal.br

Macei - Alagoas Maio de 1999

Introduo ao MATLAB pgina 2/12

INTRODUO AO MATLAB 1. Introduo


O MATLAB (MATrix LABoratory) um poderoso software de computao numrica, de anlise e de visualizao de dados, com um propsito bem mais amplo que o original laboratrio de matrizes. O MATLAB um sistema interativo e uma linguagem de programao para computao tcnica e cientfica em geral. Os comandos do MATLAB so muito prximos da forma como escrevemos expresses algbricas, tornando mais simples o seu uso. Podem ser ncorporados s rotinas predefinidas, i pacotes para clculos especficos. Uma vez inicializado o MATLAB, aparecer na janela de comandos um prompt , para a verso completa (Figura 1), ou EDU , no caso da verso estudante. O prompt significa que o MATLAB est esperando um comando. Todo comando deve ser finalizado teclando-se Enter.

Figura 1 Janela inicial do programa MATLAB (verso completa).

Para encerrar uma sesso de trabalho do MATLAB digita-se o comando exit (ou quit) no prompt do programa. Inicialmente, para que o usurio avalie as potencialidades dos recursos do MATLAB que podem ser explorados em suas futuras implementaes, recomenda-se a execuo do programa demonstrativo (Figura 2), acessado atravs do comando demo.

Figura 2 Janela do demonstrativo do MATLAB.

Introduo ao MATLAB pgina 3/12

A princpio, interessante verificar na regio esquerda os vrios blocos de demonstrativos da verso bsica do MATLAB (Matrices, Numerics, Visualization, etc). Ao selecionar um destes blocos, na regio inferior direita so listados os vrios exemplos existentes para o bloco escolhido. O exemplo executado quando aciona-se o boto inferior direito Run. O MATLAB possui trs ambientes de ajuda, a saber: ?? Comando help Ao digitar o comando help o MATLAB apresenta uma listagem de todos os pacotes disponveis (Tabela 1).
Tabela 1 Resultado da execuo do comando help.

help HELP topics: matlab\general - General purpose commands. matlab\ops - Operators and special characters. ... For more help on directory/topic, type "help topic". Para se ter ajuda sobre um pacote especfico ou sobre um comando ou funo especfica, deve-se combinar o comando help e o nome do pacote, comando ou funo de interesse (Tabelas 2 e 3).
Tabela 2 Utilizao do help com o nome de um pacote especfico.

help elfun Elementary math functions. Trigonometric. sin - Sine. sinh - Hyperbolic sine. asin - Inverse sine. ... Exponential. exp - Exponential. log - Natural logarithm. ... Complex. abs - Absolute value. angle - Phase angle. ... Rounding and remainder. fix - Round towards zero. floor - Round towards minus infinity. ...

Tabela 3 Ajuda da funo det.

help det DET Determinant. DET(X) is the determinant of the square matrix X. Use COND instead of DET to test for matrix singularity. See also COND. Overloaded methods help sym/det.m

Introduo ao MATLAB pgina 4/12

?? Comando helpwin Ao se executar o comando helpwin, abre-se uma nova janela textual de ajuda (Figura 3). Combinando-se o double-click sobre um dos itens e os botes Back, Forward e Home obtm-se os vrios nveis de ajuda de um pacote especfico e de um comando ou funo de interesse. O nome de uma funo pode ser introduzida no campo superior esquerdo para se ter diretamente uma ajuda deste comando. No pull-down menu direita deste campo encontram-se os tpicos relacionados com a funo que est sendo explicada no momento.

Back

Forward

Figura 3 Janela acionada pelo comando helpwin.

?? Comando helpdesk Ao se executar o comando helpdesk, dispara-se um programa de navegao instalado no seu computador (Netscape, Internet Explorer, etc) com um ambiente de ajuda mais completo que utiliza a linguagem de hipertexto (Figura 4).

Figura 4 Janela acionada pelo comando de ajuda helpdesk .

Neste ambiente de ajuda possvel obter uma listagem das funes por bloco de especificidade (MATLAB/Functions/by Subject) ou a listagem de todas as funes por ordem alfabtica (MATLAB/Functions/by Index). A ajuda especfica de um determinado comando pode ser feito diretamente no campo abaixo de Go to MATLAB function. Alm disto, esto disponveis vrios documentos explicativos (Online Manuals).

Introduo ao MATLAB pgina 5/12

2. Clculos Cientficos
Clculos Simples
A primeira forma de se utilizar o MATLAB como uma calculadora cientfica atravs da digitao de comandos diretamente no seu prompt, a exemplo de 3*5+12/4 ans = 18 De acordo com os conhecimentos de programao, observa-se que no MATLAB a multiplicao tem precedncia sobre a adio. Nota-se tambm que o resultado da operao foi atribudo varivel ans. Uma outra forma de se fazer estes clculos seria trabalhar com variveis auxiliares, como mostrado a seguir: v1=3, v2=5, v3=12, v4=4 v1 = 3 v2 = 5 v3 = 12 v4 = 4 resultado=v1*v2+v3/v4 resultado = 18 Primeiro, so criadas quatro variveis auxiliares (v1, v2, v3 e v4) e atribudas a elas os seus valores respectivos. No MATLAB o sinal de igual tem um sentido diferente daquele da Matemtica. Aqui, igual significa atribuio. O que estiver direita do sinal de igual colocado na varivel que estiver esquerda. Finalmente, criamos uma varivel chamada resultado que recebeu o total da operao. A vrgula utilizada para separar os comandos que so dados em uma mesma linha. Esta separao poderia ser feita com ponto e vrgula. Neste caso, o MATLAB no mostra os resultados dos comandos. No exemplo anterior teramos v1=3; v2=5; v3=12; v4=4; resultado=v1*v2+v3/v4; Em qualquer momento, seria possvel verificar o valor que est contido em uma varivel, simplesmente digitando no prompt o seu nome. resultado resultado = 18 O MATLAB oferece as seguintes operaes aritmticas:
>> a+b soma a e b. Por exemplo, 5+6. >> a-b subtrai a de b. Por exemplo, 15-12. >> a*b multiplica a por b. Por exemplo, 3.14*0.15. >> a^b calcula a elevado a b. Por exemplo, 5^(1/2).

A ordem com que so avaliadas as expresses dada pela seguinte regra: expresses so avaliadas da esquerda para a direita, com a potncia tendo a mais alta precedncia, seguida pela multiplicao e diviso que tm igual precedncia, seguidas pela adio e subtrao que tm igual

Introduo ao MATLAB pgina 6/12

precedncia. Parnteses podem ser usados para alterar esta ordem. Sendo que neste caso, os parnteses mais internos so avaliados antes dos mais externos.

rea de Trabalho
Durante uma sesso, o MATLAB disponibiliza um recurso de recuperao de comandos j introduzidos, utilizando as teclas ? e ? . Por exemplo, pressionando a tecla ? uma vez voc obtm o ltimo comando digitado no prompt. Pressionando repetidamente a tecla ? se obtm os comandos digitados anteriormente, um de cada vez na direo para trs. Analogamente, pressionando-se a tecla ? , mas na direo para frente. Mais ainda, digitando no prompt os primeiros caracteres de um comando dado anteriormente e ento pressionando-se a tecla ? , obtm-se o comando mais recente tendo aqueles caracteres iniciais. Em qualquer momento, as teclas ? e ? podem ser usadas para se mover o cursor dentro de um comando, no prompt. Desta forma um comando pode ser corrigido, alm das teclas Delete e Backspace.

Variveis
O MATLAB tem certas regras para nomear as variveis. Os nomes de variveis devem ser iniciados por letras e no podem conter espaos nem caracteres de pontuao. O MATLAB faz diferena entre letras maisculas e minsculas. Existem alguns nomes de variveis predefinidas, a saber:
ans - varivel usada para os resultados de comandos que no foram atribudos a nenhuma varivel. pi - nmero ?. eps - menor nmero tal que, quando adicionado a 1, cria um nmero maior que 1 no computador. flops - armazena o nmero de operaes em ponto flutuante realizadas. inf - significa infinito. NaN ou nan - significa no um nmero, por exemplo, 0/0. i e j - unidade imaginria ? 1 . nargin - nmero de argumentos de entrada de uma funo. nargout - nmero de argumentos de sada de uma funo. realmin - menor nmero que o computador pode armazenar. realmax - maior nmero que o computador pode armazenar.

Os contedos das variveis do tipo texto (string) so delimitados atravs do uso de apstrofos. No bloco seguinte so definidas duas variveis strings e utilizada uma funo de concatenao de texto (verificar outras funes no pacote matlab\strfun). nome='Eduardo' nome = Eduardo sobrenome=' Lages' sobrenome = Lages nome_completo=strcat(nome,sobrenome) nome_completo = Eduardo Lages As variveis podem ser redefinidas a qualquer momento, bastando para isso atribu-las um novo valor. Para se ter uma listagem das variveis definidas no espao de trabalho do MATLAB utilizamse os comandos who (listagem simples) e whos (listagem mais detalhada). As variveis do espao de trabalho do MATLAB podem ser excludas incondicionalmente usando-se o comando clear. Por exemplo:
>> clear nome_da_varivel - exclui somente a varivel especificada. >> clear nome_da_varivel_1 nome_da_varivel_2 - exclui as variveis especificadas. >> clear - exclui todas as variveis do espao de trabalho.

Introduo ao MATLAB pgina 7/12

possvel armazenar em arquivo as variveis criadas no decorrer de uma sesso do MATLAB para recuper-las em uma outra sesso. Para isto, recorra opo File/Save Workspace As da barra de menu (Figura 5). Em seguida, na janela padro do ambiente Windows para definio de arquivo, selecione o diretrio e o nome do arquivo (extenso .mat) onde sero salvas as variveis correntes. Para recuperar as variveis salvas em alguma outra sesso, utilize a opo File/Load Workspace, que se encontra acima da opo File/Save Workspace As.

Figura 5 Localizao da opo File/Save Workspace As.

Funes Cientficas
O MATLAB tem uma srie de funes cientficas predefinidas. A maioria pode ser usada da mesma forma que seria escrita matematicamente. Por exemplo: co=3 co = 3 ca=4 ca = 4 h=sqrt(co^2+ca^2) h= 5 a_rad=acos(ca/h) a_rad = 0.9273 a_graus=a_rad*180/pi a_graus = 53.1301 Estes comandos calculam a hipotenusa de um tringulo retngulo e o ngulo entre a hipotenusa e o cateto adjacente, inicialmente em radianos, depois em graus.

Introduo ao MATLAB pgina 8/12

Abaixo segue uma lista de funes cientficas disponveis:


abs(x) - valor absoluto de x. acos(x) - arco cujo cosseno x. asin(x) - arco cujo seno x. atan(x) - arco cuja tangente x. cos(x) - cosseno de x. x exp(x) - exponencial e . gcd(x,y) - mximo divisor comum de x e y. lcm(x,y) - mnimo mltiplo comum de x e y. log(x) - logaritmo de x na base e. log10(x) - logaritmo de x na base 10. rem(x,y) - resto da diviso de x por y. sin(x) - seno de x. sqrt(x) - raiz quadrada de x. tan(x) - tangente de x.

Formatos Numricos
Quando o M ATLAB mostra um resultado numrico ele segue certas regras. No caso de nenhum formato estar definido, se um resultado um nmero inteiro, o MATLAB mostra como um inteiro. Quando um resultado um nmero real, o MATLAB mostra uma aproximao com at quatro casas decimais. Este foi o caso no exemplo do arco cosseno. Se os dgitos significativos estiverem fora desta faixa, o MATLAB mostra o resultado em notao cientfica. Voc pode definir um formato diferente. Abaixo seguem algumas possibilidades:
format short - exibe 4 dgitos. format long - exibe 16 dgitos. format rat - exibe no formato racional. format + - exibe positivo, negativo ou zero. format hex - exibe em notao hexadecimal. format bank - exibe 2 dgitos.

importante salientar que o MATLAB no muda a sua forma de representar os nmeros internamente, quando formatos diferentes de exibio de nmeros so escolhidos.

3. Matrizes
Para criar uma varivel onde armazenada uma matriz, basta escrever os elementos da matriz entre colchetes [ ... ], sendo os elementos de uma mesma linha da matriz separados por vrgula (ou espao em branco) e as linhas separadas por ponto e vrgula. Por exemplo, para armazenar a matriz

?1 2 3? ?4 5 6? ? ?
numa varivel de nome A usamos o comando A=[1,2,3;4,5,6] A= 1 4 2 5 3 6

A=[1 2 3;4 5 6] A= 1 4 2 5 3 6

Introduo ao MATLAB pgina 9/12

possvel acessar os elementos de uma matriz usando os comandos A(2,3) ans = 6 A(2,:) ans = 4 5 A(:,1) ans = 1 4 A(:,1:2) ans = 1 2 4 5 O primeiro comando foi para mostrar o elemento (1,2) da matriz A. O segundo para exibir a 2a linha a e o terceiro para exibir a 1 coluna. Finalmente, o quarto comando para exibir a submatriz a a formada pela 1 e 2 colunas da matriz A. As matrizes podem ser concatenadas B=[A,[7;8]] B= 1 4 2 5 3 6 7 8 6

[A;[7,8,9]] ans = 1 2 4 5 7 8 3 6 9

As operaes matriciais so executadas de forma semelhante a que so executadas operaes escalares A=[1,2;3,4]; B=[-3;1]; C=[3,5;-5,2]; A+C ans = 4 7 -2 6 3*A ans = 3 6 9 12 C*A ans = 18 26 1 -2

Introduo ao MATLAB pgina 10/12

B*A ??? Error using ==> * Inner matrix dimensions must agree. A^2 ans = 7 10 15 22 (A*C)^2 ans = -50 144 -176 430 O MATLAB tem funes que geram matrizes especiais, a saber:
eye(m,n) - gera matriz com m-linhas e n-colunas com valor unitrio nos elementos de ndices iguais e zero para os demais elementos. zeros(m,n) - gera matriz nula com m-linhas e n-colunas. rand(m,n) - gera matriz com m-linhas e n-colunas com elementos randmicos. hilb(n) - gera matriz de Hilbert de ordem nxn. magic(n) - gera uma matriz mgica de ordem nxn com soma igual dos elementos das linhas e das colunas.

Abaixo um resumo das operaes matriciais


>> A=[a11,a12,...,a1n;a21,a22,...; ...,amn] cria uma matriz, m por n, usando os elementos a11, a12, ..., amn e a armazena numa varivel de nome A. >> A+B a soma de A e B, >> A*B o produto de A por B, >> A.' a transposta de A, >> A-B a diferena A menos B, >> num*A o produto do escalar num por A, >> A^ k a potncia A elevado a k. >> Aj=A(:,j) a coluna j da matriz A, >> Ai=A(i,:) a linha i da matriz A.

4. Arquivos de Comandos
Um outro modo de se trabalhar com o MATLAB construir um bloco de comandos para ser executado em conjunto. Para tal, so construdas as functions e scripts do MATLAB. Os mesmos so arquivos texto com a extenso ".m". Para ger-los, o usurio pode utilizar qualquer editor de texto, tipo ASCII, podendo ser utilizado o editor embutido no prprio MATLAB (Figura 6). Este editor acionado atravs da opo File/New/M-File ou atravs do cone . Uma function um m-file contendo um conjunto de comandos que para ser executado necessita de parmetros de entrada e/ou fornee parmetros de sada. Quando isto acontecer, a primeira linha deste arquivo texto deve atender seguinte sintaxe: function [variveis_sada]= nome_da_funo (variveis_entrada) Quando s existe um parmetro de sada, permitido omitir os colchetes. Nos quadros abaixo, exemplificam-se os corpos dos arquivos de funes com um e dois parmetros de sada. function vmedia= minha_media(n1,n2) % Esta funo calcula a mdia aritmtica de dois nmeros. vmedia=(n1+n2)/2; function [vmedia,vdiferena]= minha_media_diferenca(n1,n2) % Esta funo calcula a mdia aritmtica de dois nmeros e a diferena entre eles. vmedia=(n1+n2)/2; vdiferenca=n1-n2;

Introduo ao MATLAB pgina 11/12

Conforme exemplificado nos blocos anteriores, o caracter % utilizado para introduzir comentrios no corpo das funes. Recomenda-se o uso de comentrios ao longo dos programas para facilitar o entendimento dos seus funcionamentos.

Figura 6 Janela do editor de texto embutido no MATLAB.

Os arquivos devem ser gravados com os mesmos nomes das funes e com a extenso .m, no caso minha_media.m e minha_media_diferenca.m, respectivamente. Para dispor desta nova funo a partir da linha de comandos do MATLAB, preciso disponibilizar para o MATLAB o diretrio onde este arquivo est gravado. Isto feito atravs da opo File/Set Path ou atravs do cone . Neste instante, abre-se uma janela de definio dos diretrios disponveis para o MATLAB (Figura 7).

Figura 7 Janela de definio dos diretrios disponveis para o MATLAB.

O usurio deve selecionar a opo Path/Add to Path que dispara uma nova janela com definio de um novo diretrio (Figura 8). No boto com ..., o usurio vai escolher na rvore de diretrios do disco rgido aquele que ser includo na lista de diretrios disponveis para o MATLAB. Aps confirmar a escolha no boto OK, ao fechar a janela Path Browser o usurio ser consultado

Introduo ao MATLAB pgina 12/12

para saber se a incluso feita deve ou no valer para futuras sesses do MATLAB (Figura 9). Caso o usurio queira disponibilizar o diretrio escolhido para futuras sesses, ele deve apertar o boto de Sim (Yes).

Figura 8 Janela de seleo de um novo diretrio.

Figura 9 Janela de confirmao se o diretrio escolhido estar disponvel em futuras sesses.

Um script um m-file sem a declarao da palavra reservada function no topo do arquivo. Um script se comporta diferente. Imagine que voc j dispe de uma lista de variveis na sua sesso atual. Suponhamos que x uma dessas variveis. Quando voc escreve um programa com a declarao function, e voc usa a varivel x dentro do programa, o programa no usar o valor desta varivel da sua sesso (a menos que x seja passada como parmetro de entrada), e sim o valor apropriado do programa. Alm disso, a menos que voc declare um valor novo para x na sua sesso, o programa no mudar o valor de x da sesso. Isto muito cmodo uma vez que voc no precisa se preocupar com as variveis da sesso. Tudo isso acontece por causa da declarao function. Se voc no faz a declarao de function, ento podem ser alteradas as variveis em sua sesso.

5. Referncias
R. Smith (1988) MATLAB Tutorial. http://www.math.ufl.edu/help/matlab-tutorial/index.html#SEC5 (November). D. Hanselman & B. Littlefield (1997) MATLAB Verso Estudante Guia do Usurio Verso 4. MAKRON Books do Brasil. So Paulo. R. J. Santos (1998) Introduo ao MATLAB. http://www.mat.ufmg.br/~regi/topicos/intmatl.html (Junho).

Das könnte Ihnen auch gefallen