(Parte 1 de 2)

INTRODUCAO AO MATLABr

Reginaldo J. Santos

Departamento de Matematica-ICEx

Universidade Federal de Minas Gerais http://www.mat.ufmg.br/~regi

24 de agosto de 2005

2 SUMARIO

Sumario 1 Introducao 3

Calculos Simples4
2.1 Area de Trabalho6
2.2 Variaveis6
2.3 Funcoes Cientıficas7
2.4 Formatos Numericos8

2 Calculos Cientıficos 4 3 Variaveis e Expressoes Simbolicas 10 4 Instalando o Pacote gaal 15 5 Desenhando Graficos de Funcoes 18

6.1 Exercıcios26

Introducao ao Matlabr 24 de agosto de 2005

1 Introducao

O Matlab r 1 e um software destinado a fazer calculos com matrizes (Matlabr = MATrix

LABoratory). Os comandos do MATLAB sao muito proximos da forma como escrevemos expressoes algebricas, tornando mais simples o seu uso. Podem ser incorporados as rotinas predefinidas, pacotes para calculos especıficos. Escrevemos um pacote chamado gaal com funcoes que sao direcionadas para um curso de Geometria Analıtica e Algebra Linear.

O programa Matlabr pode ser adquirido gratuitamente na compra do Guia do

Usuario [1]. Por exemplo, atraves da internet, na livraria Blackwell’s na Inglaterra (http://bookshop.blackwell.co.uk), o Guia do Usuario foi adquirido por US$ 68,0 incluindo a despesa com o transporte, acompanhado de um CD com o programa.

Uma vez inicializado o Matlabr, aparecera na janela de comandos um prompt >> ou

EDU>>. O prompt significa que o Matlabr esta esperando um comando. Todo comando deve ser finalizado teclando-se Enter.

No Matlabr, pode-se obter ajuda sobre qualquer comando ou funcao. O comando >> help (sem o prompt >>) mostra uma listagem de todos os pacotes disponıveis. Ajuda sobre um pacote especıfico ou sobre um comando ou funcao especıfica 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 funcao.

1 Matlabr e marca registrada de The Mathworks, Inc.

24 de agosto de 2005 Reginaldo J. Santos

Calculos Simples

O Matlabr faz calculos simples e cientıficos como uma calculadora. Por exemplo, suponha que voce 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 Matlabr voce pode resolver este problema de pelo menos duas maneiras. A mais simples e

Observe que no Matlabr a multiplicacao tem precedencia sobre a adicao. Note tambem que ele chamou o resultado de ans.

Alternativamente, voce pode usar variaveis para armazenar informacao.

EDU>> q1=3, p1=25, q2=5, p2=12 q1 = 3 p1 = 25 q2 = 5 p2 = 12

Introducao ao Matlabr 24 de agosto de 2005

EDU>> total=q1*p1+q2*p2 total = 135

Primeiro, criamos quatro variaveis, q1, p1, q2 e p2, atribuindo a elas os seus valores respectivos. Observe que no Matlabr o sinal de igual tem um sentido diferente daquele da Matematica. Aqui, igual significa atribuicao. O que estiver a direita do sinal de igual e “colocado” na variavel que estiver a esquerda. Finalmente, criamos uma variavel chamada total que recebeu o total da compra. Usamos a vırgula para separar os comandos que sao dados em uma mesma linha. Esta separacao poderia ser feita com ponto e vırgula. Mas, neste caso o Matlabr nao 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 esta contido em uma variavel, simplesmente digitando no prompt o seu nome.

EDU>> total total = 135

O Matlabr oferece as seguintes operacoes aritmeticas:

24 de agosto de 2005 Reginaldo J. Santos

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

A ordem com que sao avaliadas as expressoes e dada pela seguinte regra: expressoes sao avaliadas da esquerda para a direita, com a potencia tendo a mais alta precedencia, seguida pela multiplicacao e divisao que tem igual precedencia, seguidas pela adicao e subtracao que tem igual precedencia. Parentesis podem ser usados para alterar esta ordem. Sendo que neste caso, os parentesis mais internos sao 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 voce obtem o ultimo comando digitado no prompt. Pressionando repetidamente a tecla ↑ se obtem os comandos digitados anteriormente, um de cada vez na direcao para tras. Analogamente, pressionando-se a tecla ↓, mas na direcao para frente. Mais ainda, digitando no prompt os primeiros caracteres de um comando dado anteriormente e entao 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, alem das teclas Delete e Backspace.

2.2 Variaveis

O Matlabr tem certas regras para nomear as variaveis. Os nomes de variaveis devem ser nomes iniciados por letras nao podem conter espacos nem caracteres de pontuacao. O Matlabr faz diferenca entre letras maiusculas e minusculas. Alguns nomes sao usados para variaveis predefinidas. Estas sao:

Introducao ao Matlabr 24 de agosto de 2005

2.3 Funcoes Cientıficas 7 ans - variavel usada para os resultados. pi - numero pi. eps - menor numero tal que, quando adicionado a 1, cria um numero maior que 1 no computador. flops - armazena o numero de operacoes em ponto flutuante realizadas. inf - significa infinito. NaN ou nan - significa nao e um numero, por exemplo, 0/0. i e j - unidade imaginaria √−1. nargin - numero de argumentos de entrada de uma funcao. nargout - numero de argumentos de saıda de uma funcao. realmin - menor numero que o computador pode armazenar. realmax - maior numero que o computador pode armazenar.

As variaveis podem ser redefinidas a qualquer momento, bastando para isso atribuı-las um novo valor.

2.3 Funcoes Cientıficas

O Matlabr tem uma serie de funcoes cientıficas pre-definidas. A maioria pode ser usada da mesma forma que seria escrita matematicamente. Por exemplo: EDU>> x=sqrt(2)/2 x = 0.7071

24 de agosto de 2005 Reginaldo J. Santos

EDU>> y_graus=y*180/pi y_graus = 45.0

Estes comandos calculam o arco cujo cosseno e √ 2/2, inicialmente em radianos, depois em graus. Abaixo segue uma lista de funcoes cientıficas 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) - maximo divisor comum de x e y. lcm(x,y) - mınimo multiplo 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 divisao de x por y. sin(x) - seno de x. sqrt(x) - raiz quadrada de x. tan(x) - tangente de x.

2.4 Formatos Numericos Quando o Matlabr mostra um resultado numerico ele segue certas regras. No caso de

Introducao ao Matlabr 24 de agosto de 2005 nenhum formato estar definido, se um resultado e um numero inteiro, o Matlabr mostra como um inteiro. Este foi o caso no exemplo das compras, que fizemos anteriormente. Quando um resultado e um numero real, o Matlabr mostra uma aproximacao com ate quatro casas decimais. Este foi o caso no exemplo do arco cosseno, que fizemos ateririmente. Se os dıgitos significativos estiverem fora desta faixa, o Matlabr mostra o resultado em notacao cientıfica. Voce pode definir 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.

E importante salientar que o Matlabr nao muda a sua forma de representar os numeros internamente, quando formatos diferentes de exibicao de numeros sao escolhidos.

24 de agosto de 2005 Reginaldo J. Santos

3 Variaveis e Expressoes Simbolicas

Agora, vamos ver como podemos manipular com expressoes que alem de numeros e variaveis numericas, contem tambem variaveis simbolicas. Por exemplo: EDU>> syms x EDU>> simplify((sin(x))^2+(cos(x))^2) ans = 1

Estes comandos mandam o Matlabr simplificar a expressao sen2x + cos2 x. Primeiro precisamos dizer ao Matlabr que x e uma variavel simbolica, depois pedimos para simplificar a expressao que envolve x. Neste caso usamos uma funcao chamada simplify. A palavra funcao no Matlabr tem um significado diferente daquele que tem na Matematica. Aqui funcao e um comando, que pode ter alguns argumentos de entrada e alguns de saıda. Neste caso, a funcao simplify tem como argumento de entrada uma expressao simbolica e de saıda tambem.

Uma vez definido que a variavel x e uma variavel simbolica, podemos definir expressoes que envolvem esta variavel. Por exemplo, dadas duas funcoes

EDU>> f=2*x2+3*x-5; g=x^2-x+7; EDU>> f+g ans = 3*x^2+2*x+2 EDU>> f-g

Introducao ao Matlabr 24 de agosto de 2005 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)

24 de agosto de 2005 Reginaldo J. Santos 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 Matlabr nao faz as simplificacoes ou expansoes automaticamente. Para isso, usamos os comandos simplify que simplifica e expand que faz a expansao. Alem destes, usamos acima tambem o comando pretty, que mostra a expressao de uma forma mais facil de enxergar. Alem destes, que ja vimos, existe o comando simple, que tenta encontrar a forma mais simples de escrever uma expressao.

O Matlabr pode realizar operacoes mais avancadas sobre expressoes simbolicas. A funcao compose calcula a composicao das funcoes f(x) e g(x) em f(g(x)), a funcao finverse encontra a inversa funcional de uma expressao e a funcao subs substitui uma variavel por um numero (ou por outra variavel) em uma expressao. Por exemplo:

EDU>> f=1/(1-x2); g=sin(x); EDU>> compose(f,g) ans = 1/(1-sin(x)^2) EDU>> compose(g,f) ans = sin(1/(1-x^2)) EDU>> finverse(g) ans = asin(x) EDU>> subs(f,x,2) ans = -1/3

Introducao ao Matlabr 24 de agosto de 2005

O Matlabr pode resolver equacoes. Por exemplo, para resolver a equacao 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 Matlabr pode exibir este resultado de uma forma mais facil de enxergar usando a funcao pretty.

Abaixo segue um resumo das funcoes para manipulacao de expressoes algebricas:

24 de agosto de 2005 Reginaldo J. Santos diff(f) - calcula a derivada de f. compose(f,g) - determina a composta f(g(x)). expand(expr) - expande uma expressao expr. finverse(expr) - determina a inversa funcional da expressao expr. pretty(expr) - exibe a expressao expr numa forma mais bonita. simple - procura encontrar uma forma mais simples de escrever uma expressao expr. simplify(expr) - simplifica a expressao expr. solve(expr) - acha a(s) solucao(es) da equacao expr= 0. subs(expr,x,a) - substitui na expressao expr a variavel x por a. syms x y z a b - define as variaveis simbolicas x, y, z, a e b.

Existem varias outras funcoes para manipulacao de expressoes algebricas. Voce pode obter informacoes sobre elas digitando help symbolic. Uma funcao interessante que mostra as capacidades do Matlabr em tratar com funcoes matematicas e funtool que e uma calculadora para funcoes.

Introducao ao Matlabr 24 de agosto de 2005

4 Instalando o Pacote gaal

1. Entre em Meu Computador (clicando duas vezes com o botao esquerdo do mouse sobre Meu Computador no desktop). Entre em drive C:, Matlabr e depois em TOOLBOX. Crie uma pasta chamada gaal.

2. Faca o “download” do pacote gaal que esta no endereco http://www.mat.ufmg.br/~regi

Salve na pasta recem-criada gaal.

3. Use Alt+Tab para alternar para a janela com o conteudo de C:\Matlabr\TOOLBOX, clique duas vezes com o botao esquerdo do mouse sobre o ıcone da pasta gaal e depois faca o mesmo sobre oıcone do pacote que voce fez “download”, gaal.exe. O pacote sera descompactado.

4. Inicialize o Matlabr, se ja nao o tiver feito. 5. Na barra de ferramentas

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

6. Clique no botao Add to Path

16 4 INSTALANDO O PACOTE GAAL

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

Introducao ao Matlabr 24 de agosto de 2005

7. Clique em OK. Depois, em Save Settings e por ultimo em Close

8. Verifique se o Matlabr adicionou o pacote gaal aos outros, digitando no prompt winhelp. Ele deve aparecer na ultima linha ou na primeira. Caso contrario repita o processo acima, com mais cuidado.

9. Para informacoes sobre o pacote gaal digite no prompt do Matlab r help gaal

24 de agosto de 2005 Reginaldo J. Santos

18 5 DESENHANDO GRAFICOS DE FUNC OES

5 Desenhando Graficos de Funcoes

Para desenhar o grafico de uma funcao de uma variavel, existe no pacote gaal a funcao plotf1 (use help plotf1 para saber seu uso). Para colocar os eixos coordenados temos no pacote gaal a funcao eixos. Usando a funcao f(x) = 1/(1 − x2) que definimos acima temos:

EDU>> plotf1(f,[-10,10],200)

EDU>> eixos Introducao ao Matlabr 24 de agosto de 2005

Podemos mudar a escala do grafico com a funcao axis

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

20 5 DESENHANDO GRAFICOS DE FUNC OES

Neste caso como os eixos ja estavam tracados, o resultado nao foi bom. Entao, vamos limpar a figura com o comando clf e com a seta para cima ↑ vamos recuperar comandos que haviamos digitado anteriormente.

EDU>> clf EDU>> plotf1(f,[-10,10]) EDU>> axis([-5,5,-5,5]) EDU>> eixos

Introducao ao Matlabr 24 de agosto de 2005

24 de agosto de 2005 Reginaldo J. Santos

2 6 MATRIZES

6 Matrizes

matriz entre colchetes [], sendo os elementos de uma mesma linha da matriz separados por

Para criar uma variavel onde e armazenada uma matriz, basta escrever os elementos da vırgula e as linhas separadas por ponto e vırgula. Por exemplo, para armazenar a matriz[ 1 2 3 numa variavel de nome A usamos o comando >> A=[1,2,3;4,5,6]

Podemos acessar os elementos de uma matriz usando os comandos

Introducao ao Matlabr 24 de agosto de 2005

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

As operacoes matriciais sao executadas de forma semelhante a que sao executadas operacoes 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 6 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 2 EDU>> (A*C)^2 ans = -50 144

O Matlabr tem funcoes que geram matrizes especiais

Introducao ao Matlabr 24 de agosto de 2005

Alem destas, o pacote gaal oferece as funcoes randi para gerar uma matriz com elementos inteiros aleatorios e matvand que cria a matriz de Vandermonde.

>> A=[a11,a12,...,a1n;a21,a22,...;,amn] cria uma matriz, m por n, usando os
elementos a11, a12,, amn e a armazena numa variavel de nome A.

Abaixo um resumo das operacoes matriciais >> A+B e a soma de A e B,

>> A*B e o produto de A por B,

>> A.’ e a transposta de A,

(Parte 1 de 2)

Comentários