Você está na página 1de 26

AO MATLAB INTRODUC AO

Reginaldo J. Santos Departamento de Matem atica-ICEx Universidade Federal de Minas Gerais http://www.mat.ufmg.br/~regi Agosto de 2005 u ltima atualiza ca o em 27 de maio de 2009

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 17

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

6 Matrizes 21 6.1 Exerc cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Refer encias 26

Introdu ca o ao Matlab

27 de maio de 2009

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.

27 de maio de 2009

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 27 de maio de 2009

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. 27 de maio de 2009 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 27 de maio de 2009

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 27 de maio de 2009 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 27 de maio de 2009

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.

27 de maio de 2009

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 27 de maio de 2009

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 27 de maio de 2009 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 27 de maio de 2009

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: 27 de maio de 2009 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

27 de maio de 2009

15

Instalando o Pacote gaal


1. Fa ca o download do pacote gaal que est a no site http://www.mat.ufmg.br/~regi. 2. Extraia os arquivos em MATLAB\toolbox. Deve ser criada uma pasta a com nome gaal. 3. Inicialize o Matlab , se j a n ao o tiver feito. 4. Na barra de ferramentas

clique com o bot ao esquerdo do mouse no bot ao 5. Clique no bot ao Add to Path....

27 de maio de 2009

Reginaldo J. Santos

16

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

6. Clique em OK. Depois, em Save Settings e por u ltimo em Close 7. 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. 8. Para informa co es sobre o pacote gaal digite no prompt do Matlab help gaal

Introdu ca o ao Matlab

27 de maio de 2009

17

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 27 de maio de 2009 Reginaldo J. Santos

18

DESENHANDO GRAFICOS DE FUNC OES

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]) Introdu ca o ao Matlab 27 de maio de 2009

19

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 Reginaldo J. Santos

27 de maio de 2009

20

DESENHANDO GRAFICOS DE FUNC OES

x
1

5 5

Introdu ca o ao Matlab

27 de maio de 2009

21

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 27 de maio de 2009

Reginaldo J. Santos

22

MATRIZES

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 Introdu ca o ao Matlab 27 de maio de 2009

23

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 27 de maio de 2009 Reginaldo J. Santos

24

MATRIZES

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 . Introdu ca o ao Matlab 27 de maio de 2009

6.1

Exerc cios

25

>> 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? 27 de maio de 2009 Reginaldo J. Santos

26

REFERENCIAS

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

Introdu ca o ao Matlab

27 de maio de 2009

Você também pode gostar