Escolar Documentos
Profissional Documentos
Cultura Documentos
AO AO MATLAB
Reginaldo J. Santos
Departamento de Matem atica-ICEx
Universidade Federal de Minas Gerais
http://www.mat.ufmg.br/~regi
Agosto de 2005
ultima atualiza c ao em
27 de maio de 2009
2 SUM
ARIO
Sumario
1 Introdu cao 3
2 Calculos Cientcos 4
C alculos Simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1
Area de Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Vari aveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Fun c oes Cientcas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Formatos Numericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Variaveis e Express oes Simb olicas 10
4 Instalando o Pacote gaal 15
5 Desenhando Gracos de Fun c oes 17
6 Matrizes 21
6.1 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Referencias 26
Introdu c ao ao Matlab
27 de maio de 2009
3
1 Introdu cao
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 algebricas, tornando mais simples o seu uso. Podem ser incorporados ` as rotinas pre-
denidas, pacotes para c alculos especcos. Escrevemos um pacote chamado gaal com fun c oes
que s ao direcionadas para um curso de Geometria Analtica e
Algebra Linear.
O programa Matlab
ALCULOS CIENT
IFICOS
2 Calculos Cientcos
Calculos Simples
O Matlab
faz c alculos simples e cientcos 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 Matlab
voce pode resolver este problema de pelo menos duas maneiras. A mais
simples e
EDU>> 3*25 + 5*12
ans =
135
Observe que no Matlab
27 de maio de 2009
5
EDU>> total=q1*p1+q2*p2
total =
135
Primeiro, criamos quatro vari aveis, q1, p1, q2 e p2, atribuindo a elas os seus valores res-
pectivos. Observe que no Matlab
ALCULOS CIENT
IFICOS
>> a^b calcula a elevado a b. Por exemplo, 5^(1/2).
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 potencia tendo a mais alta precedencia, seguida
pela multiplica c ao e divis ao que tem igual precedencia, seguidas pela adi c ao e subtra c ao que
tem igual precedencia. Parentesis podem ser usados para alterar esta ordem. Sendo que neste
caso, os parentesis 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 voce obtem o ultimo comando digitado no
prompt. Pressionando repetidamente a tecla se obtem os comandos digitados anteriormente,
um de cada vez na dire c ao para tr as. Analogamente, pressionando-se a tecla , mas na dire c ao
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, alem
das teclas Delete e Backspace.
2.2 Variaveis
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 c ao. 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 c ao ao Matlab
27 de maio de 2009
2.3 Fun c oes Cientcas 7
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 c oes 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 c ao.
nargout - n umero de argumentos de sada de uma fun c ao.
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 c oes Cientcas
O Matlab
tem uma serie de fun c oes cientcas pre-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 2 C
ALCULOS CIENT
IFICOS
EDU>> y_graus=y*180/pi
y_graus =
45.0000
Estes comandos calculam o arco cujo cosseno e
27 de maio de 2009
2.4 Formatos Numericos 9
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
AVEIS E EXPRESS
OES SIMB
OLICAS
3 Variaveis e Express oes Simb olicas
Agora, vamos ver como podemos manipular com express oes que alem de n umeros e vari aveis
numericas, contem tambem vari aveis simb olicas. Por exemplo:
EDU>> syms x
EDU>> simplify((sin(x))^2+(cos(x))^2)
ans =
1
Estes comandos mandam o Matlab
que x e uma vari avel simb olica, depois pedimos para simplicar a
express ao que envolve x. Neste caso usamos uma fun cao chamada simplify. A palavra fun c ao
no Matlab
tem um signicado diferente daquele que tem na Matem atica. Aqui fun c ao e um
comando, que pode ter alguns argumentos de entrada e alguns de sada. Neste caso, a fun c ao
simplify tem como argumento de entrada uma express ao simb olica e de sada tambem.
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 c oes
f(x) = 2x
2
+ 3x 5 e g(x) = x
2
x + 7,
podemos fazer uma serie de opera c oes algebricas envolvendo estas fun c oes.
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 c ao 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 3 VARI
AVEIS E EXPRESS
OES SIMB
OLICAS
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
pode realizar opera c oes mais avan cadas sobre express oes simb olicas. A fun c ao
compose calcula a composi c ao das fun c oes f(x) e g(x) em f(g(x)), a fun c ao finverse encontra
a inversa funcional de uma express ao e a fun c ao subs substitui uma vari avel por um n umero
(ou por outra vari avel) em uma express ao. Por exemplo:
EDU>> f=1/(1-x^2); 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
Introdu c ao ao Matlab
27 de maio de 2009
13
O Matlab
pode exibir este resultado de uma forma mais f acil de enxergar usando a fun c ao
pretty.
EDU>> pretty(ans)
[ 2 1/2]
[ -b + (b - 4 a c) ]
[1/2 --------------------]
[ a ]
[ ]
[ 2 1/2]
[ -b - (b - 4 a c) ]
[1/2 --------------------]
[ a ]
Abaixo segue um resumo das fun c oes para manipula c ao de express oes algebricas:
27 de maio de 2009 Reginaldo J. Santos
14 3 VARI
AVEIS E EXPRESS
OES SIMB
OLICAS
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 c ao(es) da equa c ao 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 c oes para manipula c ao de express oes algebricas. Voce pode obter
informa c oes sobre elas digitando help symbolic. Uma fun c ao interessante que mostra as
capacidades do Matlab
em tratar com fun c oes matem aticas e funtool que e uma calculadora
para fun c oes.
Introdu c ao ao Matlab
27 de maio de 2009
15
4 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 4 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 ultimo em Close
7. Verique se o Matlab
help gaal
Introdu c ao ao Matlab
27 de maio de 2009
17
5 Desenhando Gracos de Fun c oes
Para desenhar o gr aco de uma fun c ao de uma vari avel, existe no pacote gaal a fun c ao
plotf1 (use help plotf1 para saber seu uso). Para colocar os eixos coordenados temos no
pacote gaal a fun c ao eixos. Usando a fun c ao f(x) = 1/(1 x
2
) que denimos acima temos:
EDU>> plotf1(f,[-10,10],200)
10 8 6 4 2 0 2 4 6 8 10
50
40
30
20
10
0
10
20
30
EDU>> eixos
27 de maio de 2009 Reginaldo J. Santos
18 5 DESENHANDO GR
AFICOS DE FUNC
OES
10 8 6 4 2 0 2 4 6 8 10
50
40
30
20
10
0
10
20
30
x
y
Podemos mudar a escala do gr aco com a fun c ao axis
EDU>> axis([-5,5,-5,5])
Introdu c ao ao Matlab
27 de maio de 2009
19
5 4 3 2 1 0 1 2 3 4 5
5
4
3
2
1
0
1
2
3
4
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>> clf
EDU>> plotf1(f,[-10,10])
EDU>> axis([-5,5,-5,5])
EDU>> eixos
27 de maio de 2009 Reginaldo J. Santos
20 5 DESENHANDO GR
AFICOS DE FUNC
OES
5 4 3 2 1 0 1 2 3 4 5
5
4
3
2
1
0
1
2
3
4
5
x
y
Introdu c ao ao Matlab
27 de maio de 2009
21
6 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
vrgula e as linhas separadas por ponto e vrgula. Por exemplo, para armazenar a matriz
1 2 3
4 5 6
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
27 de maio de 2009
6.1 Exerccios 25
>> Aj=A(:,j) e a coluna j da matriz A, >> Ai=A(i,:) e a linha i da matriz A.
6.1 Exerccios
1. Sejam
A =
1 3 0
0 4 2
e X =
3
2
5
.
Verique que AX = 3A
1
+ 2A
2
+ 5A
3
, onde A
j
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 =
x 4 2
e B =
2 3 5
.
3. Use o Matlab
0 1 0 0
1 0 0 0
0 0 0 1
0 0 1 0
;
4. Use o Matlab
1 1/2
0 1/3
;
(b)
A =
1/2 1/3
0 1/5
.
A seq uencia parece estar convergindo para alguma matriz? Se estiver, para qual?
27 de maio de 2009 Reginaldo J. Santos
26 REFER
ENCIAS
Referencias
[1] Mathworks Inc. Student Edition of MATLAB Version 5 for Windows. Prentice Hall, Upper
Saddle River, New Jersey, 1997.
Introdu c ao ao Matlab
27 de maio de 2009