Você está na página 1de 27

AO MATLAB INTRODUC AO

Reginaldo J. Santos Departamento de Matem atica-ICEx Universidade Federal de Minas Gerais http://www.mat.ufmg.br/~regi 24 de agosto de 2005

SUMARIO

Sum ario
1 Introdu c ao 2 C alculos Cient cos C alculos Simples . . . . . 2.1 Area de Trabalho . . 2.2 Vari aveis . . . . . . . 2.3 Fun co es Cient cas . 2.4 Formatos Num ericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 4 6 6 7 8 10 15 18

3 Vari aveis e Express oes Simb olicas 4 Instalando o Pacote gaal 5 Desenhando Gr acos de Fun co es

6 Matrizes 22 6.1 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Refer encias 27

Introdu ca o ao Matlab

24 de agosto de 2005

Introdu c ao

O Matlab 1 e um software destinado a fazer c alculos com matrizes (Matlab = MATrix LABoratory). Os comandos do MATLAB s ao muito pr oximos da forma como escrevemos express oes alg ebricas, tornando mais simples o seu uso. Podem ser incorporados a `s rotinas pr edenidas, pacotes para c alculos espec cos. Escrevemos um pacote chamado gaal com fun co es que s ao direcionadas para um curso de Geometria Anal tica e Algebra Linear. O programa Matlab pode ser adquirido gratuitamente na compra do Guia do Usu ario [1]. Por exemplo, atrav es da internet, na livraria Blackwells na Inglaterra (http://bookshop.blackwell.co.uk), o Guia do Usu ario foi adquirido por US$ 68,00 incluindo a despesa com o transporte, acompanhado de um CD com o programa. Uma vez inicializado o Matlab , aparecer a na janela de comandos um prompt >> ou EDU>>. O prompt signica que o Matlab est a esperando um comando. Todo comando deve ser nalizado teclando-se Enter. No Matlab , pode-se obter ajuda sobre qualquer comando ou fun ca o. O comando >> help (sem o prompt >>) mostra uma listagem de todos os pacotes dispon veis. Ajuda sobre um pacote espec co ou sobre um comando ou fun ca o espec ca e obtida com o comando >> help nome, (sem a v rgula) onde nome pode ser o nome de um pacote ou o nome de um comando ou fun ca o.

Matlab

e marca registrada de The Mathworks, Inc.

24 de agosto de 2005

Reginaldo J. Santos

CALCULOS CIENT IFICOS

C alculos Cient cos

C alculos Simples
O Matlab faz c alculos simples e cient cos como uma calculadora. Por exemplo, suponha que voc e vai a uma loja e compra 3 objetos que custam 25 reais cada e 5 objetos que custam 12 reais cada. Quanto custou a sua compra? No Matlab voc e pode resolver este problema de pelo menos duas maneiras. A mais simples e EDU>> 3*25 + 5*12 ans = 135 Observe que no Matlab a multiplica ca o tem preced encia sobre a adi ca o. Note tamb em que ele chamou o resultado de ans. Alternativamente, voc e pode usar vari aveis para armazenar informa ca o. EDU>> q1=3, p1=25, q2=5, p2=12 q1 = 3 p1 = 25 q2 = 5 p2 = 12 Introdu ca o ao Matlab 24 de agosto de 2005

EDU>> total=q1*p1+q2*p2 total = 135 Primeiro, criamos quatro vari aveis, q1, p1, q2 e p2, atribuindo a elas os seus valores respectivos. Observe que no Matlab o sinal de igual tem um sentido diferente daquele da Matem atica. Aqui, igual signica atribui ca o. O que estiver a ` direita do sinal de igual e colocado na vari avel que estiver a ` esquerda. Finalmente, criamos uma vari avel chamada total que recebeu o total da compra. Usamos a v rgula para separar os comandos que s ao dados em uma mesma linha. Esta separa ca o poderia ser feita com ponto e v rgula. Mas, neste caso o Matlab n ao mostra os resultados dos comandos. No exemplo anterior ter amos EDU>> q1=3; p1=25; q2=5; p2=12; EDU>> total=q1*p1+q2*p2; Em qualquer momento, podemos ver o valor que est a contido em uma vari avel, simplesmente digitando no prompt o seu nome. EDU>> total total = 135 O Matlab oferece as seguintes opera co es aritm eticas:

>> a+b soma a e b. Por exemplo, 5+6. >> a-b subtrai a de b. Por exemplo, 15-12. >> ab multiplica a por b. Por exemplo, 3.140.15. 24 de agosto de 2005 Reginaldo J. Santos

6 >> a^b calcula a elevado a b. Por exemplo, 5^(1/2).

CALCULOS CIENT IFICOS

A ordem com que s ao avaliadas as express oes e dada pela seguinte regra: express oes s ao avaliadas da esquerda para a direita, com a pot encia tendo a mais alta preced encia, seguida pela multiplica ca o e divis ao que t em igual preced encia, seguidas pela adi ca o e subtra ca o que t em igual preced encia. Par entesis podem ser usados para alterar esta ordem. Sendo que neste caso, os par entesis mais internos s ao avaliados antes dos mais externos.

2.1

Area de Trabalho

Comandos que foram dados anteriormente podem ser obtidos novamente usando as teclas e . Por exemplo, pressionando a tecla uma vez voc e obtem o u ltimo comando digitado no prompt. Pressionando repetidamente a tecla se obtem os comandos digitados anteriormente, um de cada vez na dire ca o para tr as. Analogamente, pressionando-se a tecla , mas na dire ca o para frente. Mais ainda, digitando no prompt os primeiros caracteres de um comando dado anteriormente e ent ao pressionando-se a tecla , obtem-se o comando mais recente tendo aqueles caracteres iniciais. Em qualquer momento, as teclas , podem ser usadas para se mover o cursor dentro de um comando, no prompt. Desta forma um comando pode ser corrigido, al em das teclas Delete e Backspace.

2.2

Vari aveis

O Matlab tem certas regras para nomear as vari aveis. Os nomes de vari aveis devem ser nomes iniciados por letras n ao podem conter espa cos nem caracteres de pontua ca o. O Matlab faz diferen ca entre letras mai usculas e min usculas. Alguns nomes s ao usados para vari aveis predenidas. Estas s ao: Introdu ca o ao Matlab 24 de agosto de 2005

2.3

Fun co es Cient cas

ans - vari avel usada para os resultados. pi - n umero . eps - menor n umero tal que, quando adicionado a 1, cria um n umero maior que 1 no computador. flops - armazena o n umero de opera co es em ponto utuante realizadas. inf - signica innito. NaN ou nan - signica n ao e um n umero, por exemplo, 0/0. i e j - unidade imagin aria 1. nargin - n umero de argumentos de entrada de uma fun ca o. nargout - n umero de argumentos de sa da de uma fun ca o. realmin - menor n umero que o computador pode armazenar. realmax - maior n umero que o computador pode armazenar. As vari aveis podem ser redenidas a qualquer momento, bastando para isso atribu -las um novo valor.

2.3

Fun co es Cient cas

O Matlab tem uma s erie de fun co es cient cas pr e-denidas. A maioria pode ser usada da mesma forma que seria escrita matematicamente. Por exemplo: EDU>> x=sqrt(2)/2 x = 0.7071 EDU>> y=acos(x) y = 0.7854 24 de agosto de 2005 Reginaldo J. Santos

8 EDU>> y_graus=y*180/pi y_graus = 45.0000

CALCULOS CIENT IFICOS

Estes comandos calculam o arco cujo cosseno e 2/2, inicialmente em radianos, depois em graus. Abaixo segue uma lista de fun co es cient cas dispon veis: abs(x) - valor absoluto de x. acos(x) - arco cujo cosseno e x. asin(x) - arco cujo seno e x. atan(x) - arco cuja tangente e x. cos(x) - cosseno de x. exp(x) - exponencial ex . gcd(x,y) - m aximo divisor comum de x e y. lcm(x,y) - m nimo m ultiplo 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 divis ao de x por y. sin(x) - seno de x. sqrt(x) - raiz quadrada de x. tan(x) - tangente de x.

2.4

Formatos Num ericos


mostra um resultado num erico ele segue certas regras. No caso de 24 de agosto de 2005

Quando o Matlab Introdu ca o ao Matlab

2.4

Formatos Num ericos

nenhum formato estar denido, se um resultado e um n umero inteiro, o Matlab mostra como um inteiro. Este foi o caso no exemplo das compras, que zemos anteriormente. Quando um resultado e um n umero real, o Matlab mostra uma aproxima ca o com at e quatro casas decimais. Este foi o caso no exemplo do arco cosseno, que zemos ateririmente. Se os d gitos signicativos estiverem fora desta faixa, o Matlab mostra o resultado em nota ca o cient ca. Voc e pode denir um formato diferente. Abaixo seguem algumas possibilidades: format short - exibe 5 d gitos. format long - exibe 16 d gitos. format rat - exibe no formato racional. importante salientar que o Matlab n E ao muda a sua forma de representar os n umeros internamente, quando formatos diferentes de exibi ca o de n umeros s ao escolhidos.

24 de agosto de 2005

Reginaldo J. Santos

10

VARIAVEIS E EXPRESSOES SIMBOLICAS

Vari aveis e Express oes Simb olicas

Agora, vamos ver como podemos manipular com express oes que al em de n umeros e vari aveis num ericas, cont em tamb em vari aveis simb olicas. Por exemplo: EDU>> syms x EDU>> simplify((sin(x))^2+(cos(x))^2) ans = 1 Estes comandos mandam o Matlab simplicar a express ao sen2 x + cos2 x. Primeiro precisamos dizer ao Matlab que x e uma vari avel simb olica, depois pedimos para simplicar a express ao que envolve x. Neste caso usamos uma fun c ao chamada simplify. A palavra fun ca o no Matlab tem um signicado diferente daquele que tem na Matem atica. Aqui fun ca o e um comando, que pode ter alguns argumentos de entrada e alguns de sa da. Neste caso, a fun ca o simplify tem como argumento de entrada uma express ao simb olica e de sa da tamb em. Uma vez denido que a vari avel x e uma vari avel simb olica, podemos denir express oes que envolvem esta vari avel. Por exemplo, dadas duas fun co es f ( x ) = 2x 2 + 3x 5 e g ( x ) = x 2 x + 7, podemos fazer uma s erie de opera co es alg ebricas envolvendo estas fun co es. EDU>> f=2*x^2+3*x-5; g=x^2-x+7; EDU>> f+g ans = 3*x^2+2*x+2 EDU>> f-g Introdu ca o ao Matlab 24 de agosto de 2005

11

ans = x^2+4*x-12 EDU>> f*g ans = (2*x^2+3*x-5)*(x^2-x+7) EDU>> expand(ans) ans = 2*x^4+x^3+6*x^2+26*x-35 EDU>> f/g ans = (2*x^2+3*x-5)/(x^2-x+7) EDU>> expand(ans) ans = 2/(x^2-x+7)*x^2+3/(x^2-x+7)*x-5/(x^2-x+7) EDU>> pretty(ans) 2 x x 5 2 ---------- + 3 ---------- - ---------2 2 2 x - x + 7 x - x + 7 x - x + 7 EDU>> f^3 24 de agosto de 2005 Reginaldo J. Santos

12

VARIAVEIS E EXPRESSOES SIMBOLICAS

ans = (2*x^2+3*x-5)^3 EDU>> expand(ans) ans = 8*x^6+36*x^5-6*x^4-153*x^3+15*x^2+225*x-125 Observe que o Matlab n ao faz as simplica co es ou expans oes automaticamente. Para isso, usamos os comandos simplify que simplica e expand que faz a expans ao. Al em destes, usamos acima tamb em o comando pretty, que mostra a express ao de uma forma mais f acil de enxergar. Al em destes, que j a vimos, existe o comando simple, que tenta encontrar a forma mais simples de escrever uma express ao. O Matlab pode realizar opera co es mais avan cadas sobre express oes simb olicas. A fun ca o compose calcula a composi ca o das fun co es f (x) e g (x) em f (g (x)), a fun ca o finverse encontra a inversa funcional de uma express ao e a fun ca o subs substitui uma vari avel por um n umero (ou por outra vari avel) em uma express ao. Por exemplo: EDU>> EDU>> ans = EDU>> ans = EDU>> ans = EDU>> ans = f=1/(1-x^2); g=sin(x); compose(f,g) 1/(1-sin(x)^2) compose(g,f) sin(1/(1-x^2)) finverse(g) asin(x) subs(f,x,2) -1/3 24 de agosto de 2005

Introdu ca o ao Matlab

13 O Matlab pode resolver equa co es. Por exemplo, para resolver a equa ca o ax2 + bx + c = 0, algebricamente, podemos usar os comandos: EDU>> syms a b c x EDU>> solve(a*x^2+b*x+c) ans = [1/2/a*(-b+(b^2-4*a*c)^(1/2))] [1/2/a*(-b-(b^2-4*a*c)^(1/2))] O Matlab pretty. pode exibir este resultado de uma forma mais f acil de enxergar usando a fun ca o

EDU>> pretty(ans) [ [ [1/2 [ [ [ [ [1/2 [ 1/2] -b + (b - 4 a c) ] --------------------] a ] ] 2 1/2] -b - (b - 4 a c) ] --------------------] a ] 2

Abaixo segue um resumo das fun co es para manipula ca o de express oes alg ebricas: 24 de agosto de 2005 Reginaldo J. Santos

14

VARIAVEIS E EXPRESSOES SIMBOLICAS

diff(f) - calcula a derivada de f. compose(f,g) - determina a composta f (g (x)). expand(expr) - expande uma express ao expr. finverse(expr) - determina a inversa funcional da express ao expr. pretty(expr) - exibe a express ao expr numa forma mais bonita. simple - procura encontrar uma forma mais simples de escrever uma express ao expr. simplify(expr) - simplica a express ao expr. solve(expr) - acha a(s) solu ca o(es) da equa ca o expr= 0. subs(expr,x,a) - substitui na express ao expr a vari avel x por a. syms x y z a b - dene as vari aveis simb olicas x, y, z, a e b. Existem v arias outras fun co es para manipula ca o de express oes alg ebricas. Voc e pode obter informa co es sobre elas digitando help symbolic. Uma fun ca o interessante que mostra as capacidades do Matlab em tratar com fun co es matem aticas e funtool que e uma calculadora para fun co es.

Introdu ca o ao Matlab

24 de agosto de 2005

15

Instalando o Pacote gaal


1. Entre em Meu Computador (clicando duas vezes com o bot ao esquerdo do mouse sobre Meu Computador no desktop). Entre em drive C:, Matlab e depois em TOOLBOX. Crie uma pasta chamada gaal. 2. Fa ca o download do http://www.mat.ufmg.br/~regi. Salve na pasta rec em-criada gaal. 3. Use Alt+Tab para alternar para a janela com o conte udo de C:\Matlab \TOOLBOX, clique duas vezes com o bot ao esquerdo do mouse sobre o cone da pasta gaal e depois fa ca o mesmo sobre o cone do pacote que voc e fez download, gaal.exe. O pacote ser a descompactado. 4. Inicialize o Matlab , se j a n ao o tiver feito. 5. Na barra de ferramentas pacote gaal que est a no endere co

clique com o bot ao esquerdo do mouse no bot ao 24 de agosto de 2005 Reginaldo J. Santos

16 6. Clique no bot ao Add to Path....

INSTALANDO O PACOTE GAAL

Clique duas vezes com o bot ao esquerdo do mouse em toolbox e depois o mesmo em gaal. Depois clique em Add to Back

Introdu ca o ao Matlab

24 de agosto de 2005

17 7. Clique em OK. Depois, em Save Settings e por u ltimo em Close 8. Verique se o Matlab adicionou o pacote gaal aos outros, digitando no prompt winhelp. Ele deve aparecer na u ltima linha ou na primeira. Caso contr ario repita o processo acima, com mais cuidado. 9. Para informa co es sobre o pacote gaal digite no prompt do Matlab help gaal

24 de agosto de 2005

Reginaldo J. Santos

18

DESENHANDO GRAFICOS DE FUNC OES

Desenhando Gr acos de Fun co es

Para desenhar o gr aco de uma fun ca o de uma vari avel, existe no pacote gaal a fun ca o plotf1 (use help plotf1 para saber seu uso). Para colocar os eixos coordenados temos no pacote gaal a fun ca o eixos. Usando a fun ca o f (x) = 1/(1 x2 ) que denimos acima temos: EDU>> plotf1(f,[-10,10],200)

30

20

10

10

20

30

40

50 10

10

EDU>> eixos Introdu ca o ao Matlab 24 de agosto de 2005

19

30

20

10

x
10

20

30

40

50 10

10

Podemos mudar a escala do gr aco com a fun ca o axis

EDU>> axis([-5,5,-5,5]) 24 de agosto de 2005 Reginaldo J. Santos

20

DESENHANDO GRAFICOS DE FUNC OES

5 5

Neste caso como os eixos j a estavam tra cados, o resultado n ao foi bom. Ent ao, vamos limpar a gura com o comando clf e com a seta para cima vamos recuperar comandos que haviamos digitado anteriormente. EDU>> EDU>> EDU>> EDU>> clf plotf1(f,[-10,10]) axis([-5,5,-5,5]) eixos 24 de agosto de 2005

Introdu ca o ao Matlab

21

x
1

5 5

24 de agosto de 2005

Reginaldo J. Santos

22

MATRIZES

Matrizes

Para criar uma vari avel onde e armazenada uma matriz, basta escrever os elementos da matriz entre colchetes [ ... ], sendo os elementos de uma mesma linha da matriz separados por v rgula e as linhas separadas por ponto e v rgula. Por exemplo, para armazenar a matriz 1 2 3 4 5 6 numa vari avel de nome A usamos o comando >> A=[1,2,3;4,5,6] Podemos acessar os elementos de uma matriz usando os comandos EDU>> A(2,3) ans = 6 EDU>> A(2,:) ans = 4 5 EDU>> A(:,1) ans = 1 4 EDU>> A(:,1:2) ans = 1 2 4 5

Introdu ca o ao Matlab

24 de agosto de 2005

23 O primeiro comando foi para mostrar o elemento (1,2) da matriz A. O segundo, e para exibir a 2a. linha e o terceiro, e para exibir a 1a. coluna. Finalmente, o quarto comando e para exibir a submatriz formada pela 1a. e 2a. colunas da matriz A. As matrizes podem ser concatenadas EDU>> B=[A,[7;8]] B = 1 2 3 4 5 6 EDU>> [A;[7,8,9]] ans = 1 2 3 4 5 6 7 8 9

7 8

As opera co es matriciais s ao executadas de forma semelhante a que s ao executadas opera co es escalares EDU>> A=[1,2;3,4]; B=[-3;1]; C=[3,5;-5,2]; EDU>> A+C ans = 4 7 -2 6 EDU>> 3*A ans = 3 6 9 12 24 de agosto de 2005 Reginaldo J. Santos

24

MATRIZES

EDU>> C*A ans = 18 26 1 -2 EDU>> B*A ??? Error using ==> * Inner matrix dimensions must agree. EDU>> A^2 ans = 7 10 15 22 EDU>> (A*C)^2 ans = -50 144 -176 430 O Matlab tem fun co es que geram matrizes especiais

EDU>> I=eye(3) I = 1 0 0 0 1 0 0 0 1 EDU>> O=zeros(3,1) O = 0 Introdu ca o ao Matlab 24 de agosto de 2005

25

0 0 Al em destas, o pacote gaal oferece as fun co es randi para gerar uma matriz com elementos inteiros aleat orios e matvand que cria a matriz de Vandermonde. EDU>> A=randi(3) A = 0 3 2 2 1 0 -2 -1 -1 EDU>> B=randi(3,1) B = 4 2 -3 EDU>> C=matvand(B,2) C = 16 4 1 4 2 1 9 -3 1 Abaixo um resumo das opera co es matriciais >> A=[a11,a12,...,a1n;a21,a22,...; ...,amn] cria uma matriz, m por n, usando os elementos a11, a12, ..., amn e a armazena numa vari avel de nome A. >> A+B e a soma de A e B, >> A-B e a diferen ca A menos B, >> A*B e o produto de A por B, >> num*A e o produto do escalar num por A, >> A. e a transposta de A, >> A^k e a pot encia A elevado a k . 24 de agosto de 2005 Reginaldo J. Santos

26

MATRIZES

>> Aj=A(:,j) e a coluna j da matriz A, >> Ai=A(i,:) e a linha i da matriz A.

6.1

Exerc cios
1 3 0 0 4 2 3 e X= 2 . 5

1. Sejam A=

Verique que AX = 3A1 + 2A2 + 5A3 , onde Aj e a j - esima coluna de A, para j = 1, 2, 3. 2. Encontre um valor de x tal que AB t = 0, onde A= 3. Use o Matlab x 4 2 e B= 2 3 5 .

para encontrar o menor inteiro k 0 1 0 1 0 0 A= 0 0 0 0 0 1

> 1 tal que Ak = A, onde 0 0 ; 1 0

4. Use o Matlab (a)

para calcular os membros da seq u encia A, A2 , A3 . . . , Ak , . . ., para (b) 1/2 1/3 1 1/2 . ; A= A= 0 1/5 0 1/3

A seq u encia parece estar convergindo para alguma matriz? Se estiver, para qual? Introdu ca o ao Matlab 24 de agosto de 2005

REFERENCIAS

27

Refer encias
[1] Mathworks Inc. Student Edition of MATLAB Version 5 for Windows. Prentice Hall, Upper Saddle River, New Jersey, 1997.

24 de agosto de 2005

Reginaldo J. Santos

Você também pode gostar