meu manual de matlab
TRANSCRIPT
-
7/24/2019 Meu Manual de Matlab
1/22
Curso de Extensao:
MatLab
Sistema Interativo para Computacao Numerica
Luziane F. de Mendonca
Universidade Estadual de Campinas
Centro Superior de Educacao Tecnologica - CESET
-
7/24/2019 Meu Manual de Matlab
2/22
Parte I - NOCOES BASICAS SOBRE O SOFTWARE MATLAB
Vera Lucia da Rocha Lopes Luziane Ferreira de Mendonca
[email protected] [email protected]
O MatLab e uma ferramenta computacional muito poderosa. Dentre inumeras outrasfuncoes, este software faz operacoes matematicas elementares como adicao, subtracao,
multiplicacao e divisao, opera com numeros complexos, calcula razes quadradas, potencias,
logaritmos e funcoes trigonometricas, armazena e recupera dados; cria, executa e armazena
sequencias de comandos para automatizar o calculo de equacoes; faz comparacoes logicas
e controla a ordem na qual os comandos sao executados; desenha o grafico dos dados de
diversas maneiras e em varias dimensoes, executa algebra matricial, manipula polinomios,
integra funcoes, manipula equacoes simbolicamente, etc., e ele vai alem disso.
MatLab (MATrix LABoratory) e um software interativo de alto desempenho voltado
para o calculo numerico. O MatLab integra varias areas da matematica em ambiente facil
de usar, onde problemas e solucoes sao expressos da forma como eles sao escritos matemati-
camente, ao contrario da programacao tradicional. Este software e amplamente utilizado
por Engenheiros e Matematicos devido a grande abrangencia dos seus toolboxes, e de toda
a estrutura que e possvel montar por meio dos arquivos de rotinas (aplicativos).
Umtoolboxe uma colecao de funcoes internas que extendem a capacidade do MatLab
em uma area particular. Essas funcoes, em geral, estao agrupadas em um unico diretorio,
sao bem documentadas e sinalizadas, e incluem demonstracoes de como usa-las.
A melhor forma de assimilar os seus comandos e perder a resistencia inicial e comecar
a executar as primeiras operacoes e a entrada de dados. Em pouco tempo, a necessidade de
fazer operacoes um pouco mais complexas surge, e o usuario busca por si so o aprendizado de
mais funcoes deste software. De facil manicuplacao, o MatLab logo se torna uma ferramenta
indispensavel ao usuario, que pode utiliza-lo das mais variadas formas.
Esta apostila dedica-se ao usuario que deseja obter o seu primeiro contato com o
software, descrevendo as funcoes basicas e tambem alguns dos recursos mais utilizados;
o contexto matematico abordado aqui exige apenas o ensino medio como nvel mnimo,
embora este software tambem possa ser utilizado como auxiliar didatico no ensino basico,
e ate mesmo como ferramenta de trabalho no ensino superior.
-
7/24/2019 Meu Manual de Matlab
3/22
1 Consideracoes Iniciais
Uma vez carregado o MatLab, observamos o smbolo , ao qual chamaremos deprompt,
e indica que o MatLab esta pronto para receber algum comando.
Comecamos com a entrada de numeros e exemplos de operacoes basicas. Por exemplo,
digitando
a= 1
temos como resposta:
a= 1
analogamente,
b= 2
b= 2
assim, para somar e para subtrair dois numeros, digitamos
c= a+b, d= a bc= 3
d= 2
No final de cada linha de comando, podemos colocar ; indicando para o MatLab
executar o comando, mas nao exibir o resultado. Por exemplo, na multiplicacao:
e= d c;
o valor de e sera armazenado pelo MatLab, embora nao seja exibido na tela; caso precise
ver qualquer um dos valores anteriores, digite a letra correspondente e o MatLab o exibira:
e
e= 6
Os smbolos usados para as operacoes basicas entre numeros sao:
Smbolo Operacao
+ adicao
subtracao
multiplicacao
/ divisao
potenciacao
Tabela 1: Operacoes basicas.
O MatLab possui um conjunto de funcoes ja programadas, como as listadas nas
tabelas a seguir, o que nao impede que construamos nossas proprias funcoes. As funcoes
-
7/24/2019 Meu Manual de Matlab
4/22
trigonometricas podem ser calculadas usando os seguintes comandos:
Smbolo Funcao
sin(a) seno dea
cos(a) coseno de a
tan(a) tangente de a
sec(a) secante de a
csc(a) cosecante de a
acot(a) arco cotangente dea
asin(a) arco seno dea
acos(a) arco coseno dea
atan(a) arco tangente dea
asec(a) arcosecante dea
acsc(a) arco cosecante dea
acot(a) arco cotangente dea
Tabela 2: Funcoes trigonometricas.
Outras funcoes podem ser calculadas diretamente utilizando os seguintes comandos:
Smbolo Funcao
sqrt(a) raz quadrada dea
exp(a) exponencial de a
log(a) logaritmo natural de a
log2(a) logaritmo de a na base 2
log10(a) logaritmo de a na base 10
abs(a) calcula o modulo de a
sign(a) retorna 1 se a e negativo,
0 se a e nulo e 1 se a e positivo
rem(a, b) resto da divisao entrea e b
mod(a, b) valor dea modulo b
round(a) inteiro mais proximo de afix(a) inteiro proximo dea mais proximo de 0
floor(a) inteiro proximo e menor do que a
ceil(a) inteiro proximo e maior do que a
Tabela 3: Funcoes basicas.
-
7/24/2019 Meu Manual de Matlab
5/22
1.1 Numeros Complexos
Este software tambem consegue trabalhar com numeros complexos, e toma como padrao
a letra i ou j como o numero imaginario. Assim, para armazenar um numero complexo
basta digitar
a= 4 + 3 i
a= 4 + 3ialem disso, existem funcoes especiais destinadas a esses numeros:
Smbolo Funcao
real(a) parte real de a
imag(a) parte imaginaria de a
conj(a) conjugado complexo dea
abs(a) modulo de a
Tabela 4: Funcoes complexas.
Uma observacao importante a fazer e que o MatLab faz distincao entre
letras maiusculas e minusculas; logo, o numero A e diferente do numero a.
1.2 Vetores
Alem dos numeros reais e complexos, podemos trabalhar com vetores e matrizes. Paraentrarmos com o vetor coluna v = [1 2 3]T, por exemplo, basta digitar
v= [1; 2; 3]
v= 123
O comando dot(u, v) calcula o produto interno entre os vetoresu e v. A adicao
e a subtracao entre dois vetores pode ser calculada de maneira analoga a descrita para os
numeros reais; pode-se multiplicar ou dividir um vetor por um escalar usando os smbolos
e /.
Tambem e possvel fazer operacoes com cada uma das componentes de um mesmo
vetor ou entre dois ou mais vetores; para isto, basta digitar as letras que representam os
vetores, e antes da operacao desejada, um ponto; por exemplo, para elevar cada componente
-
7/24/2019 Meu Manual de Matlab
6/22
do vetorv ao quadrado, basta digitar:
u= v. 2
u= 149
ou para multiplicar u e v componente a componente, basta digitar
r= u. vr= 1
827
As funcoes da Tabela 2 e algumas funcoes da Tabela 3 podem ser aplicadas direta-
mente a cada uma das componentes de um vetor:
w= tan(u)
w= 1.5574
1.15780.4523
O valor de ja e conhecido previamente pelo MatLab e pode ser chamado atraves
da linha de comando:
pi
ans= 3.1416
Caso desejemos visualizar mais casas decimais, podemos digitar o comando format
long, e para retornar ao modo que exibe apenas 4 casas decimais, basta digitar format
short:
format long
pi
ans= 3.14159265358979
format short
pi
ans= 3.1416
Algumas vezes precisamos escrever vetores cujas componentes diferem entre si sempre
de um mesmo valor; por exemplo, em t= [3 5 7 9 . . . 109]T, cujas componentes deslocam-
se sempre com valor 2, seria muito complicado inserir esse vetor por completo na tela de
comando. Assim, podemos apenas informar o valor inicial, o final, e o tamanho do passo
-
7/24/2019 Meu Manual de Matlab
7/22
(distancia entre cada componente), que o proprio MatLab monta o vetor:
t= 3 : 2 : 109
t= 357...
109
Os demais comandos que podem ser utilizados em vetores seguem na tabela abaixo:
Smbolo Funcao
length(a) numero de componentes de a
max(a) maior componente dea
min(a) menor componente de a
sum(a) soma das componentes dea
prod(a) produto das componentes dea
mean(a) media das componentes dea
std(a) desvio padrao das componentes de a
norm(a) norma euclidiana dea
sort(a) ordena as componentes deaem ordem crescente
diff(a) novo vetor com as diferecas de 2 componentes
consecutivas de a
Tabela 5: Funcoes para vetores.
1.3 Matrizes
Para entrar com uma matriz, basta entrar com os elementos linha por linha, separando as
colunas por vrgula (ou apenas espaco), e as linhas por ponto-e-vrgula:
M= [1, 2, 3; 4,5, 6; 7, 8,9]
M = 1 2 3
4 5 67 8 9
As matrizes mais conhecidas possuem comandos especiais para monta-las, como a
matriz identidade (comando eye), a matriz nula (comando zeros) e uma matriz formada
por numeros 1 (comando ones); o que vier entre parenteses ao lado de cada um desses
comandos corresponde ao numero de linhas e colunas da matriz, respectivamente:
-
7/24/2019 Meu Manual de Matlab
8/22
I = eye(3, 3), Y = zeros(3, 2), Z = ones(2, 5)
I = 1 0 00 1 00 0 1
Y = 0 00 00 0
Z = 1 1 1 1 11 1 1 1 1
e possvel tambem gerar uma matriz com elementos aleatorios entre 0 e 1 por meio do
comandorand(n,m), onde n representa o numero de linhas e m o de colunas.
R = rand(3, 3)
R= 0.9501 0.4860 0.45650.2311 0.8913 0.0185
0.6068 0.7621 0.8214Podemos visualizar apenas uma componente da matriz, indicando a linha e a coluna
em que se encontram:
M(2, 3)
ans= 6
ou ate mesmo uma coluna (ou linha) inteira, entrando com o valor da coluna desejada e
colocando : no lugar das linhas (ou colunas):
M(:, 2)
ans= 258
B1 =M(3, :)
B1 = 6 7 8
Observemos os dois exemplos anteriores: a segunda coluna de Mfoi apenas exibida,
e nao sera armazenada como vetor; enquato que a terceira linha de Malem de ser exibidana tela, foi armazenada como o vetor B1.
Por fim tambem podemos selecionar apenas um pedaco da matriz para ser visualizado,
indicando as linhas e colunas iniciais e finais
M(1 : 2, 2 : 3)
-
7/24/2019 Meu Manual de Matlab
9/22
ans= 2 35 6
O comandoreshape(A,m,n)produz uma matrizmncujos elementos sao tomandos
das colunas de A, da primeira coluna em diante; por exemplo,
A= [1 4 9; 16 25 36], B = reshape(A, 3, 2)
A = 1 4 9
16 25 36B = 1 25
16 94 36
Outros comandos que podem ser utilizados em matrizes:
Smbolo Funcao
diag(A, k) vetor formado pela diagonalk de A
diag(v) matriz cuja diagonal e o vetorv
triu(A) matriz triangular superior formada pelos elementos da
parte triangular superior de A
tril(A) matriz triangular inferior formada pelos elementos da
parte triangular inferior deA
det(A) determinante de A
inv(A) inversa de A
rank(A) posto de A
transpose(A) transposta de Aeig(A) autovalores de A
svd(A) fatoracao SVD de A
lu(A) fatoracao LU de A
qr(A) fatoracao QR de A
chol(A) fatoracao de Cholesky de A
blkdiag(A, B, . . .) matriz bloco-diagonal, cuja diagonal e formada pelas
matrizesA, B, . . .
fliplr(A) reordena as colunas de A da direita para a esquerda
flipud(A) redordena as linhas deA de baixo para cima
rot90(A) rotaciona a matriz em 90 graus
Tabela 6: Funcoes para matrizes.
-
7/24/2019 Meu Manual de Matlab
10/22
2 Outros Comandos Importantes
Alguns comandos permitem a visualizacao de diretorios ou pastas, limpar a memoria ou
exibir as variaveis ja armazenas, limpar a tela de trabalho, etc., sendo muito uteis durante
o manuseio do software; dentre os comandos listados na tabela a seguir, help e de grande
utilidade, uma vez que exibe um resumo das funcoes de um dado comando (por exemplo,
help chol); se usarmos so help, sera exibido uma lista de topicos, descrevendo os toolboxese as areas que possuem programas especficos ja implementados.
Smbolo Funcao
who exibe as variaveis
whos exibe as variaveis e seus conteudos
clear all apaga todas as variaveis da memoria
clearb apaga a variavelb da memoria
exit/quit finaliza o MatLabclc/home limpa a tela de trabalho
clf limpa a figura atual
ls oudir lista o conteudo da pasta atual
helpcomando exibe ajuda sobrecomando
Tabela 7: Funcoes auxiliares
Quando nada da certo ou os resultados obtidos diferem dos que sao esperados, e
comum o usuario perguntar por que?(em ingles, why?). Tantas vezes digitada na tela
principal por desespero, esta palavra tornou-se um comando; o comando why tenta dar
uma justificativa ao usuario por meio de um gerador aleatorio de frases:
why
Some hamster insisted on it.
3 GraficosEste software permite desenhar graficos em duas e em tres dimensoes.
-
7/24/2019 Meu Manual de Matlab
11/22
3.1 Graficos em 2D
O comando plotdesenha o grafico de uma funcao, desde que o usuario forneca os pontos
do domnio e os pontos da imagem, em dois vetores de tamanhos iguais; por exemplo, a
sequencia de comandos abaixo vai produzir o grafico da funcao f(x) =x cos(x) :
x= 10 : 0.1 : 10; y= x. sin(x); plot(x, y)
10 8 6 4 2 0 2 4 6 8 106
4
2
0
2
4
6
8
Por padrao, o MatLab desenha o grafico da funcao em azul, mas voce podera escolhar
entre as cores amarelo (y), rosa (m), azul claro (c), vermelho (r), verde (g), azul (b), branco
(w) ou preto (k); tambem e possvel escolher o formato da linha entre solida (), pontilhada
(:), pontilhada e tracejada (.), e apenas tracejada (); por fim, podemos escolher marcas
nas linhas: pontos (.), crculos (o), marca em x (x), sinal positivo (+), estrela (), quadrado
(s), losango (d), triangulo invertido (v), triangulo em pe (), triangulo deitado para a
esquerda (), pentagrama (p) ou hexagrama (h).
Para tanto, basta colocar no final do comando ploto smbolo que esta entre parenteses,
correspondente a opcao desejada; por exemplo, a sequencia de comandos abaixo vai produzir
o grafico da funcao s(x) =seno(x) em vermelho, no intervalo de 10 a 10:
x= 10 : 0.1 : 10; s= sin(x); plot(x,s, r)
10 8 6 4 2 0 2 4 6 8 101
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
Outra possibilidade e fazer varios graficos em uma mesma figura; para tanto, usa-se
o comandohold. A partir do momento em que desejamos que os graficos fiquem na mesma
figura, digitamoshold on, e depois, quando quisermos graficos em figuras diferentes, basta
digitarhold off; por exemplo, a sequencia de comandos abaixo vai produzir os graficos das
-
7/24/2019 Meu Manual de Matlab
12/22
funcoes ex(xd) = exp(xd 1), tracejado em vermelho, e c(xd) = cos(xd), pontilhado em
preto, no intervalo de 2 a 2:
clear all
xd= 2 : 0.01 : 2; ex= exp(xd 1); plot(xd, ex, r )
hold on
c= cos(xd); plot(xd, c, k:)
hold off
2 1.5 1 0.5 0 0.5 1 1.5 20.5
0
0.5
1
1.5
2
2.5
3
Alem do controle de cores, tipos de linha e marcadores, o comando plot permite
o controle da espessura da linha (comando LineWidth - padrao 0.5pt); em relacao aos
marcadores, podemos controlar o tamanho (comandoMarkerSize- padrao 6pt), e selecionar
suas cores (comandos MarkerEdgeColor e MarkerFaceColor). Como exemplo, temos os
graficos das funcoesy1(x1) =x12 e y2(x1) =x13. O primeiro sera desenhado usando uma
linha solida verde, com marcadores em formato de o, cuja cor foi selecionada como rosa;
o segundo grafico sera desenhado usando uma linha tracejada preta, com marcadores em
formato de quadrados, e cada um desses quadrados tera preenchimento na cor vermelha e
tamanho de 10pt.
clear all
x1 = 1 : 0.1 : 1; y1 =x1. 2; y2 =x1. 3;
hold on
plot(x1, y1, g o, MarkerEdgeColor, m, LineWidth, 2);
plot(x1, y2, ks, MarkerSize, 10, MarkerFaceColor, r)
hold off
-
7/24/2019 Meu Manual de Matlab
13/22
1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 11
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
Podemos usar outros comandos ao inves de plot, quando desejamos obter escala
logartmica em um dos eixos ou em ambos. Nesse caso, podemos usar os comandossemilogx
(o qual desenha o grafico com escala logaritmica em x),semilogy(o qual desenha o grafico
com escala logartmica emy) e loglog(o qual desenha o grafico com escala logartmica em
ambos os eixos).
No exemplo a seguir, utilizamos os graficos dos polinomios de Legendre ([2], pagina
95) para ilustrar o uso dos comandosxlabel,ylabel,titlee legend, os quais inserem na figura,
respectivamente, o nome do eixo x, do eixo y , o ttulo e a legenda.
clear all
x= 1 : 0.01 : 1; p1 =x; p2 = (3/2) x. 2 (1/2);
p3 = (5/2) x. 3 (3/2) x; p4 = (35/8) x. 4 (15/4) x. 2 + (3/8);
plot(x, p1, r:, x , p2, g , x , p3, b, x , p4, m);
legend(n= 1, n= 2, n= 3, n= 4, 4)
xlabel(x, FontSize, 12, FontAngle, italic)
ylabel(Pn
, FontSize, 12, FontAngle, italic)
title(Polinomios de Legendre, FontSize, 14)
grid on insere a grade tracejada no grafico
1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 11
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
x
Pn
Polinomios de Legendre
n=1n=2n=3n=4
-
7/24/2019 Meu Manual de Matlab
14/22
Nos textos inseridos nas figuras, e posvel introduzir letras gregas (e smbolos), assim
como alterar o formato da letra; neste ultimo caso, usamos \rm para texto normal, \bf
para texto em negrito e \itpara texto em italico. Quanto as letras gregas, basta digitar os
comandos citados na tabela a seguir:
Smbolo Funcao Smbolo Funcao
\alpha \Gamma
\beta \Delta
\gamma \Theta...
... ...
...
\omega \Omega
Tabela 8: Letras gregas.
As funcoes mais utilizadas para desenhar um grafico em duas dimensoes sao dadas
na tabela abaixo:
Smbolo Funcao
plot grafico simples de x y
loglog grafico em escala logartmica em ambos os eixos
semilogx grafico em escala logartmica no eixo x
semilogy grafico em escala logartmica no eixo y
plotyy grafico dex y com eixo y a direita e a esqueda
polar grafico com coordenadas polares
fplot grafico direto de uma funcao
fill polgono fechado e preenchido
area grafico com area preenchida
pie grafico em formato torta
comet desenha o grafico de forma animada
bar grafico de barras
Tabela 9: Graficos em duas dimensoes.
O comandosubplot(m,n,p) desenha graficos em uma mesma janela, porem em planos
independentes; os argumentos m e nrepresentam o numero de linhas e colunas em que os
graficos serao dispostos e p a posicao do subplot na qual sera inserido o proximo grafico,
respectivamente. Em geral, usa-se este comando, e a seguir (na mesma linha), digita-se o
-
7/24/2019 Meu Manual de Matlab
15/22
comando para desenhar o grafico. Para ilustrar, seguem abaixo as linhas de comandos para
gerar seis graficos, dispostos em duas linhas e tres colunas (subplot(2,3,p)); em cada uma
das figuras sao exibidos graficos gerados por comandos diferentes, que possuem a mesma
funcao que o comandoplotpara casos especiais. Em particular, o comando fplotdesenha o
grafico de uma funcao previamente definida (em arquivo) ou definida na linha de comando;
neste comando, pode-se selecionar os limites superiores e inferiores dos eixos e o tipo de
linha do desenho (cor e formado).
x= 1 : 0.01 : 4; y = x. 4 4 x+ 10; w = sin(x);theta= 0 : 0.01 : 2 pi;
P = [0.1 0.3 0.7 0.8; 0.3 0.8 0.6 0.1]; rho= ones(1,length(theta));
subplot(2, 3, 1), fplot(x cos(x) ((1 x) sin(x)), [4 pi4 pi], r:);
subplot(2, 3, 2), fill(P(1, :), P(2, :), [0.8 0.8 1]);
subplot(2, 3, 2), fill(P(1, :), P(2, :), [0.8 0.8 1]);
subplot(2, 3, 3), loglog(x,y, b);
subplot(2, 3, 4), polar(theta, rho,
r
);subplot(2, 3, 5), pie([2 4 3 5],North,South,East,West);
subplot(2, 3, 6), area(x,w);
10 0 1020
15
10
5
0
5
10
15
0 0.5 10.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
100
100
101
102
103
0.5
1
30
210
60
240
90
270
120
300
150
330
180 0
North
South
East
West
1 2 3 41
0.5
0
0.5
1
3.2 Graficos em 3D
Para graficos em tres dimensoes, pode-se tambem desenhar graficos de linha (de forma
analoga a feita com graficos 2-D):
-
7/24/2019 Meu Manual de Matlab
16/22
t= 0 :pi/50 : 10 pi; plot3(sin(t), cos(t), t);
grid on; xlabel(t), ylabel(sin(t)), zlabel(cos(t))
1
0.5
0
0.5
1
1
0.5
0
0.5
10
5
10
15
20
25
30
35
tsin(t)
cos(t)
Tambem de forma analoga ao descrito em duas dimensoes, podemos tracar graficos
de barras e torta
x= [1.5 3.4 4.2]; Y = [7 6 5; 6 8 1; 4 5 9; 2 3 4; 9 7 2];
subplot(1, 2, 1), pie3(x, [0 1 0])
subplot(1, 2, 2), bar3(Y, stacked)
46%
37%
16%
1
2
3
4
5
0
5
10
15
20
Em 3 dimensoes, podemos desenhar superfcies (e suas respectivas curvas de nvel,
no plano x y). Como exemplo, os primeiros 4 graficos abaixo (por linha) sao referentes
a comandos diferentes para desenho de superfcies, e os ultimos dois graficos, referentes ao
desenho da mesma supefcie com suas curvas de contorno:
x= 0 : 0.1 :pi; P =x x; P P =sin(P);
subplot(2, 3, 1), mesh(P P); subplot(2, 3, 2), meshz(P P);
subplot(2, 3, 3), surf (P P); subplot(2, 3, 4), waterfall(P P);
subplot(2, 3, 5), meshc(P P); subplot(2, 3, 6), surf c(P P);
-
7/24/2019 Meu Manual de Matlab
17/22
0
20
400
20
40
1
0
1
0
20
40
0
20
40
1
0
1
0
20
40
0
2040
1
0.5
0
0.5
1
0
20
40 0
20
40
1
0
1
0
20
400
20
40
1
0
1
0
20
40
0
20
40
1
0.5
0
0.5
1
As curvas de nvel tambem podem ser desenhadas em um grafico independente.
x= 0 : 0.1 :pi; P =x x; P P =sin(P);
subplot(2, 1, 1), ezcontour(sin(x. 2 y. 2), [3 3 1 1]);
subplot(2, 3, 2), contour(x,x,PP, 20);
3 2 1 0 1 2 31
0.5
0
0.5
1
x
y
sin(x.2y.
2)
0 0.5 1 1.5 2 2.5 30
0.5
1
1.5
2
2.5
3
Em resumo, alguns dos comandos principais para desenho de graficos em 3D podem
ser listados na tabela a seguir:
-
7/24/2019 Meu Manual de Matlab
18/22
Smbolo Funcao
surf(x,y,Z) superfcie (eixos x e y), imagem na matriz Z.
surfc(x,y,Z) superfcie e curvas de nvel (eixosxe y), imagem na matriz Z.
surfl(x,y,Z) superfcie com projecoes de sombras (eixos x ey), imagem na matriz Z.
mesh(x,y,Z) superfcie em grade (eixosx ey), imagem na matriz Z.
meshc(x,y,Z) superfcie em grade e curvas de nvel (eixosx e y), imagem na matriz Z.
meshz(x,y,Z) superfcie em grade com cortina (eixosx e y), imagem na matriz Z.
waterfall(x,y,Z) superfcie com grade so nas colunas (eixos x ey), imagem na matriz Z.
contour(Z) curvas de nveis de superfcie com imagem emZ.
ezcontour(f, I) curvas de nveis da funcao f .
contour3(Z) curvas de nveis em 3 D de superfcie com imagem em Z.
contourf(Z) curvas de nveis preenchidas de superfcie com imagem emZ.
meshigrid(x, y) geracao de malhas com eixos em x e y.
Tabela 10: Graficos em tres dimensoes.
4 Arquivos de Programas
Ja sabemos que o MatLab possui algumas funcoes programadas (tais como as funcoes
trigonometricas), mas na maioria dos casos gostaramos de trabalhar com funcoes que
possuem expressoes nao tao simples (ou apenas diferentes).
Os arquivos de programas se aplicam exatamente a esse caso, e outros tantos em quedesejamos realizar calculos que sao uma combinacao de funcoes internas do MatLab. Pode-
mos digitar a sequencia de comandos desejada e salva-la como um arquivo de programa.
Dessa forma, podemos criar funcoes, que realizam calculos particulares, de acordo com as
nossas necessidades.
Para tanto, na tela principal do MatLab, acesse a barra superior clicando em File,
em seguidaNewe depoisM-file. Automaticamente, o MatLab abre uma nova janela (o seu
editor) com uma folha em branco, aonde voce deve digitar o seu novo programa; quandotodos os comandos estiverem digitados na ordem desejada, salve o seu programa indo em
Filee depois em Save As; entao digite o nome do seu programa, que sera salvo como um
arquivo com extensao .m. Para executar o seu programa, basta digitar o nome do arquivo
na tela principal do MatLab.
-
7/24/2019 Meu Manual de Matlab
19/22
Por exemplo, vamos supor que desejamos visualizar o grafico do polinomio p(x) =
(x 6) (x 5) (x 4) (x 3) (x 2) (x 1); tambem gostaramos de calcular o
seu falor em um certo ponto a (que deve ser fornecido pelo usuario) e marcar no grafico da
funcao o ponto (a, p(a)).
Comecamos, como dito anteriormente, clicando em File, em seguida Newe depois
M-file. Uma nova janela se abrira (editor), e nela voce podera digitar a seguinte sequencia
de comandos:
% Desenhando o grafico da funcao
x= 0.9 : 0.05 : 6.1;
p= (x 6). (x 5). (x 4). (x 3). (x 2). (x 1);
plot(x,p, r )
grid on
hold on
% Entrando com o valor de a
a= input(Entre com o valor dea :);
pa= (a 6) (a 5) (a 4) (a 3) (a 2) (a 1);
disp(V alor dep(a) :), pa
% Desenhando o ponto (a, p(a))
plot(a,pa, b)
A seguir, salve o seu programa indo em Filee depois emSave As; escolha o local aonde
vai salva-lo (por exemplo, uma pasta chamada Programas, que se encontra no disco C), e
depois digite um nome para o seu arquivo (por exemplo, polinomio6.m). Para fazer o seu
programa ser executado, basta retornar a janela principal do MatLab e digitarpolinomio6.
Uma observacao importante a ser feita e que devemos tomar cuidado em que pasta
salvamos o arquivo polinomio6.m. Na tela principal do MatLab, no canto direito superior,
ha um lugar escrito Current Directory; nesse lugar, devemos indicar para o MatLab em
qual pasta se encontra o arquivo polinomio6.m, para que ele possa localizar e conseguir
executar (no nosso exemplo, la devera ser digitado C:\Programas).
-
7/24/2019 Meu Manual de Matlab
20/22
5 Sobre Fractais
5.1 Triangulo Sierpinski
Consiste em um exemplo classico do uso de fractais. A ideia consiste em, dado um triangulo
inicial, sao encontrados os pontos medios de cada um de seus tres lados. Entao, esses pontos
medios sao unidos, de modo a dividir o triangulo inicial em 4 triangulos (sendo um central,
invertido, e os outros tres em cada canto).
Entao, em cada um desses tres triangulos, sao encontrados os pontos medios dos seus
lados, e para cada um deles o procedimento acima descrito e executado.
Esse sequencia de passos podera ser realizada infinitamente; nesse caso, caso pudessemos
recortar apenas um dos triangulos menores, este triangulo apresentaria o mesmo desenho
que o triangulo original.
O programa em Matlab que o executa possui a seguinte linha de comando:
gasket([5;0], [5;0], [0; sqrt(75)], 5)
onde as tres primeira entradas indicam os tres vertices do triangulo maior, e o ultimo
numero indica quantas vezes o passo acima sera realizado.
5.2 Fractal fern
O arquivo fern.m produz o conhecido Fern Fractal descrito por Michael Barnsley. Tal
rotina gera e grafica uma sequencia de pontos no plano cartesiano, gerados de forma cuida-
dosamente disposta.
O grafico fern (em portugues, samambaia), e gerado por meio de repetidas rotacoes
de um ponto no plano. Para entendermos como funciona, considere um ponto x no plano,
com coordenadasx1ex2.Sao utilizadas quatro diferentes formas de rotacionar esse ponto,
todas elas seguindo a forma
x Ax+b
usando diferentes matrizes A e diferentes vetores b. Esse tipo de transformacao recebe o
nome especial detransformacao afim. Dentro do programa, a transformacao mais utilizada
-
7/24/2019 Meu Manual de Matlab
21/22
e
A=
0.85 0.040.04 0.85
e b =
0
1.6
Ao multiplicarmosxpor essa matrizA,podemos perceber que ele se encurta (diminui)
e tambem sofre uma pequena rotacao no eixo x; quando somamos o vetor b, adicionamos
1.6 na segunda componente de x. Podemos entao concluir que uma sequencia dessas tran-
formacoes fara com quex se mova para cima e para a direita, gerando assim o formato da
ponta da samambaia.
As outras tres transformacoes presentes no programa sao responsaveis por mover o
ponto para a direita (fazendo as folhas da direita), mover para a esquerda (fazendo as folhas
da esquerda) ou deixar o ponto mais centralizado (fazendo o caule).
Para compreendermos melhor, vale a pena olharmos o programa fern.me todos os
seus comentarios.
O resultado, e supreendente!
Referencias
[1] Coral A. M., Santos M. P., Basto T. D. A., Curso de MatLab, Coordenacao: Mirna
de Borba, Grupo PET de Engenharia de Producao, Departamento de Engenharia de
Producao e Sistemas - UFSC, Florianopolis, 1999.
[2] Cunha M. C. C., Metodos Numericos, Editora da Unicamp, 2a. edicao, 2000.
[3] Golub G. H., Van Loan C. F.,Matrix Computations, second edition. The Johns Hop-
kins University Press, 1989.
[4] Gomes-Ruggiero M. Ap., Lopes V. L. R., Calculo Numerico - Aspectos Teoricos e
Computacionais, Makron Books, 2a. edicao, Sao Paulo, 1996.
[5] Higham D. J., Higham N. J.,MatLab Guide, Society for Industrial and Applied Math-
ematics - SIAM, Philadelphia, 2000.
[6] Noll V., Apostila de MatLab, Grupo PET de Engenharia Eletrica, Departamento de
Engenharia Eletrica - UFMS, Campo Grande - MS.
-
7/24/2019 Meu Manual de Matlab
22/22
[7] Sampaio R., Cataldo E., Riquelme R.,Introducao ao MatLab, Pontifcia Universidade
Catolica, Rio de Janeiro, 1997.
[8] Sampaio R., Trindade M. A.,Introducao ao MatLab, Pontifcia Universidade Catolica,
Rio de Janeiro, 2002.
[9] Sigmon K., MatLab Primer, Department of Mathematics, University of Florida,
Gainesville - Florida - USA, Third Edition, 1993.
[10] Zeri L. M. M., Apostila de MatLab, Projeto Apostila, Instituto Nacinal de Pesquisas
Espaciais - INPE, Sao Bernardo do Campo - SP, 2001.
-
Lembramos que o software Matlab e um shareware, ou seja, um software pago. En-
tratanto, e possvel encontrar sites que possuem informacoes diversas sobre o software
Matlab, tais como programas especialmente desenvolvidos para esse software, desenhos
curiosos, games, screensavers, etc., todos com download disponvel.
Visite o site:
www.mathworks.com/matlabcentral
e divirta-se!