Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUO AO MATLAB
Edinia Filipiak
Fernanda Ronssani de Figueiredo
Fernanda Somavilla
Orientador: Prof. Dr. Antonio Carlos Lyrio Bidel
SUMRIO
1.
APRESENTAO ............................................................................................................... 4
2.
3.
4.
5.
6.
7.
2.1.
Interface......................................................................................................................... 5
2.2.
Variveis ....................................................................................................................... 8
2.3.
MATRIZES ......................................................................................................................... 11
3.1.
3.2.
3.3.
4.2.
4.3.
4.4.
Funes Complexas..................................................................................................... 19
4.5.
POLINMIOS .................................................................................................................... 21
5.1.
5.2.
CLCULO .......................................................................................................................... 25
6.1.
Limites......................................................................................................................... 25
6.2.
Derivadas..................................................................................................................... 25
6.3.
Integrais ....................................................................................................................... 26
6.4.
Somatrio .................................................................................................................... 27
6.5.
GRFICOS ......................................................................................................................... 29
7.1.
Grficos 2D ................................................................................................................. 29
7.2
7.2.1
7.2.2
7.2.3
Histogramas ......................................................................................................... 39
7.3
Grficos 3D ................................................................................................................. 40
7.3.1
Meshgrid.............................................................................................................. 41
8.
PROGRAMAO .............................................................................................................. 44
8.1.
8.1.1.
Scripts .................................................................................................................. 44
8.1.2.
Funes ............................................................................................................... 44
8.2.
8.2.1.
O lao for............................................................................................................. 45
8.2.2.
8.2.3.
O comando if ....................................................................................................... 48
8.2.4.
8.2.5.
8.2.6.
8.2.7.
O comando disp................................................................................................... 50
8.2.8.
8.2.9.
8.2.10.
8.3.
9.
Arquivos M ................................................................................................................. 44
Exemplificao ............................................................................................................ 51
BIBLIOGRAFIA ................................................................................................................. 56
Introduo ao MATLAB
1.
APRESENTAO
Introduo ao MATLAB
2.
2.1.
INTRODUO AO SOFTWARE
Interface
1- Janela de Comandos;
2- Histrico de Comandos Digitados (permite o comando digitado ser realizado
novamente com um duplo clique);
3- Workspace (local onde todas as variveis criadas ficam armazenadas);
4- Pasta Atual;
5- Barra de Menus;
6- Barra de Ferramentas;
7- Botes de Comando da Janela.
Introduo ao MATLAB
por todos os comandos iniciados com o texto str. A tecla Esc limpa o que estiver
escrito na linha do comando.
Comandos terminados com ponto-e-vrgula. ; no exibem as variveis de
resposta na tela. O uso do ponto-e-vrgula til quando a impresso do resultado na tela
no interessa, ou quando a impresso muito extensa como, por exemplo, para uma
matriz 1000 1000. Deve-se ressaltar que, apesar da impresso ser suspensa, o
comando executado pelo programa. Vrios comandos podem ser digitados na mesma
linha, desde que estejam separados por vrgula ou ponto-e-vrgula. Comandos muito
longos para uma linha podem ser interrompidos por trs pontos ... e continuados na
linha seguinte.
Exemplo:
>> a=1, b=...
2;c=a+b
a =
1
c =
3
importante apontar que a Janela de Comando normalmente usada para testes
Introduo ao MATLAB
Menu, da tecla de atalho F1 e do boto START. Quando se deseja obter informaes
sobre uma funo basta digitar na Janela de Comandos help seguido da funo
requerida.
Exemplo:
>> help sin
SIN
Sine of argument in radians.
SIN(X) is the sine of the elements of X.
See also asin, sind.
Overloaded methods:
codistributed/sin
Reference page in Help browser
doc sin
Clicando em doc sin ir aparecer a janela do HELP da funo sin.
Introduo ao MATLAB
2.2.
Variveis
os caracteres podem ser alfanumricos (letras e nmeros), desde que iniciados por
letras;
expresso no haja uma atribuio do resultado para alguma varivel definida pelo
usurio, o resultado ser armazenado na varivel ans, pr-definida pelo ambiente.
Existem comandos prprios para manipulao de variveis. Abaixo esto
listados os mais utilizados.
clear: Elimina todas as variveis da rea de trabalho. Para se apagar uma ou mais
variveis utiliza-se o comando clear seguido dos nomes das variveis separadas por
espao.
Introduo ao MATLAB
E existem algumas variveis pr-definidas que podem ser teis ao usurio, que
esto listadas a seguir.
Varivel
ans
eps
realmax
realmin
pi
i, j
flops
NaN ou Not-aNumber ou Valor
no numrico
inf
nargin
nargout
bitmax
Descrio
Varivel padro para armazenar resultados;
Preciso de ponto flutuante, ou distncia entre o 1 e o prximo
nmero real.
Maior nmero real positivo utilizvel;
Menor nmero real positivo utilizvel;
3, 14159265358979
Unidades imaginrias;
Contador de operaes matemticas;
Indeterminao;
Infinito;
Nmero de argumentos de entrada de uma funo;
Nmero de argumentos de sada de uma funo;
Maior nmero inteiro positivo utilizvel;
Comando
format long
format short
format short e
Varivel
3.141592653589793
3.1415
3.1415e+000
format long e
3.141592653589793e+000
format +
format rat
format hex
355/113
400921fb54442d18
2.3.
Descrio
Com 16 dgitos
Com 5 dgitos
Com 5 dgitos em notao cientfica
Com 16 dgitos em notao
cientfica
Retorna + para valores positivos e
- para valores negativos
Aproximao racional
Aproximao hexadecimal
Matemtica Simblica
H, em algumas situaes, a necessidade de se trabalhar com variveis
Introduo ao MATLAB
problema. Neste contexto, uma funo importante a syms, que declara as variveis
como simblica.
Vejamos como para uma varivel:
>> syms x
Ou para mais de uma varivel:
>> syms a b c
Uma outra funo a sym, que transforma uma expresso para a forma literal.
utilizada da seguinte forma:
>> S = sym(A)
>> x = sym('x')
Como exemplo, veja a diferena dessas duas funes executando os comandos a
seguir:
>> rho = sym('(1 + sqrt(5))/2')
>> syms x y
>> f = x^2*y + 5*x*sqrt(y)
10
Introduo ao MATLAB
3.
3.1.
MATRIZES
Definindo matrizes
Uma matriz montada linha aps linha, onde espao ou vrgula indicam
transio de coluna e ponto-e-vrgula indica transio de linha.
>> [1,2;3,4]
ans =
1
3
2
4
11
16
21
26
31
>> 2:6
ans =
2
11
Introduo ao MATLAB
A =
1
4
7
2
5
8
3
6
9
>> A(2,1)
ans =
4
>> A(:,2)
ans =
2
5
8
>> A(3,:)
ans =
7
3.2.
4
3
>> y=[10,2;4,5]
12
Introduo ao MATLAB
y =
10
4
2
5
6
8
2
-2
* : multiplicao matricial.
>> x*y
ans =
36
62
24
25
0.8571
0.4762
13
Introduo ao MATLAB
ans =
-1.0000
3.0000
1.0000
0
: potenciao matricial.
>> x^2
ans =
24
25
20
29
: transposio matricial.
>> x'
ans =
2
4
5
3
.* : multiplicao escalar.
>> x.*y
ans =
20
20
8
15
2.0000
0.6000
14
Introduo ao MATLAB
>> x.\y
ans =
5.0000
0.8000
0.5000
1.6667
. : potenciao escalar.
>> x.^2
ans =
4
25
16
9
Observaes:
1. Para operaes entre matriz e nmero escalar, o programa faz uma expanso
escalar do nmero, executando a operao entre o nmero e cada elemento da
matriz.
>> x+3
ans =
5
8
7
6
40
58
Matrizes elementares
15
Introduo ao MATLAB
ans =
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0.1270
0.9134
0.6324
0.0975
A seguir listamos algumas funes matriciais que podem ser teis. Considere a
uma matriz.
Comando
eig(a)
chol(a)
svd(a)
inv(a)
Descrio
Autovalores e Autovetores;
Fatorao de Cholesky;
Decomposio em fator singular;
Inversa;
16
Introduo ao MATLAB
lu(a)
qr(a)
hess(a)
schur(a)
expm(a)
sqrtm(a)
poly(a)
det(a)
size(a)
17
Introduo ao MATLAB
4.
FUNES MATEMTICAS
4.1.
Funes Trigonomtricas
Seno
seno hiperblico
arco seno
Cosseno
cosseno hiperblico
arco cosseno
Tangente
tangente hiperblica
arco tangente
sec(X)
sech(X)
asec(X)
csc(X)
csch(X)
acsc(X)
cot(X)
coth(X)
acot(X)
secante
secante hiperblica
arco secante
cossecante
cossecante hiperblica
arco cossecante
cotangente
cotangente hiperblica
arco cotangente
Funes Exponenciais
log(X)
log10(X)
log2(X)
exp(X)
sqrt(X)
Comando
collect
Descrio
Reescreve a expresso como um polinmio
18
Introduo ao MATLAB
expand
horner
factor
simplify
compose
inverse
fix
floor
ceil
round
rem
mod
sign
4.4.
Funes Complexas
19
Introduo ao MATLAB
Funo
abs(X)
angle(X)
conj(X)
imag(X)
real(X)
Descrio
Retorna o mdulo do nmero complexo X
Retorna a fase do complexo X
Calcula o conjugado do nmero complexo X
Determina a parte imaginria de X
Determina a parte real de X
Funo
gcd(X,Y)
lcm(X,Y)
factorial(N)
primes(N)
rem(X,Y)
perms(V)
Descrio
Determina o mximo divisor comum entre dois parmetros.
Determina o mnimo mltiplo comum entre dois parmetros.
Retorna o fatorial de um argumento.
Devolve uma lista com uma quantidade desejada de nmeros
primos.
Determina o resto da diviso de dois argumentos.
Devolve todas as permutaes possveis dos argumentos dados.
20
Introduo ao MATLAB
5.
POLINMIOS
5.1.
-5
-28
A =
2
>> S=poly(A)
% S o polinmio (x-2)(x-1)=x-3x+2,
-3
-2
11
-1
2.0000 -106.0000
-5.0000
21
Introduo ao MATLAB
polinmio x-3x+2
C =
1
-3
>> X=roots(C)
que so 2 e 1
X =
2
1
3.2
polinomio =
3.0000
-4.0000
7.0000
-3.2000
-1.0000
1.5000
>> valores=polyval(polinomio,a)
valores =
2.8000
-17.2000
-3.2000
8.4250
22
Introduo ao MATLAB
5.2.
Comando
solve(eq)
Descrio
Resolve a equao eq=0.
Determina as solues de eq=0, em funo da
solve(eq,var)
varivel var.
solve(eq1,eq2,...,eqn) Resolve um sistema de equaes definidas.
g =
Calcula as solues de um sistema de solues em
solve(eq1,eq2,...,eqn,
funo das variveis pr-definidas.
var1,var2,...,varn)
Exemplo:
>> syms x
>> solve(x^2-5*x+6,x)
ans =
2
3
>> syms x y z
>> g=solve(x^2-2*x+1,y^2+4*y+4,z^2+6*z+9,x,y,z)
g =
x: [1x1 sym]
y: [1x1 sym]
z: [1x1 sym]
>> gx=g.x
gx =
1
>> gy=g.y
gy =
-2
>> gz=g.z
23
Introduo ao MATLAB
gz =
-3
24
Introduo ao MATLAB
6.
CLCULO
6.1.
Limites
Comando
Descrio
Calcula o limite de uma expresso simblica F com x
limit(F,x,a)
tendendo a a.
Determina o limite de F com uma varivel simblica
limit(F,a)
tendendo a a.
limit(F)
Determina o limite com a = 0 como default.
limit(F,x,a,'right') Calcula o limite com x tendendo a a pela direita.
limit(F,x,a,'left')
Calcula o limite com x tendendo a a pela esquerda.
Exemplo:
| |
>> syms x
>> limit('(abs(x^2)-1)/(x^2-1)',x,1,'right')
ans =
1
6.2.
Derivadas
Comando
diff(S)
diff(S,'v')
diff(S,n)
Descrio
Diferencia a expresso simblica S em funo de uma varivel
simblica.
Diferencia S em torno de uma varivel simblica v.
Diferencia, para um n inteiro positivo, S por n vezes.
25
Introduo ao MATLAB
diff(S,'v',n) Diferencia em torno de uma varivel v, S por n vezes.
( )
>> syms x
>> S=sqrt(log(x)+exp(x));
>> diff(S)
ans =
(exp(x) + 1/x)/(2*(exp(x) + log(x))^(1/2))
>> pretty(ans)
1
exp(x) + x
---------------------1/2
2(exp(x) + log(x))
6.3.
Integrais
Comando
Descrio
Integrao indefinida a funo S em respeito a uma varivel
int(S)
simblica j definida.
int(S,a,b)
Integra de forma definida a funo S de a a b.
int(S,v,a,b) Integra de a a b em funo de uma varivel v.
, calcule a integral:
Indefinida:
>> syms x
>> S=sqrt(x^2+5);
>> f=int(S,x)
f =
26
Introduo ao MATLAB
(5*asinh((5^(1/2)*x)/5))/2 + (x*(x^2 + 5)^(1/2))/2
Definida de 2 a 5:
>> g=int(S,x,2,5)
g =
(5*log(5^(1/2) + 6^(1/2)))/2 - (5*log(5))/4 +
(5*30^(1/2))/2 - 3
6.4.
Somatrio
Comando
r = symsum(s)
r = symsum(s,v)
r = symsum(s,a,b)
r = symsum(s,v,a,b)
Descrio
Encontra o somatrio da funo s em funo de uma
varivel simblica pr-definida.
Fornece o somatrio em funo da varivel v.
Determina o somatrio de s variando a incgnita de a
at b.
Determina o somatrio de s variando a incgnita v de a
at b.
27
Introduo ao MATLAB
(x*(2*x - 1)*(x - 1))/6
6.5.
Srie de Taylor
( )
( )
localmente f em volta de
(
) , quando x .
O MATLAB dispe da funo taylor que expande em srie de Taylor uma
funo.
Comando
Descrio
Faz a aproximao pelo polinmio de Taylor at a quinta
taylor(f)
ordem para a funo simblica f.
Retorna o polinmio de Taylor para a funo simblica f at
taylor(f,n,v)
o grau n-1 para a varivel especificada por v.
Retorna a aproximao de Taylor de f em torno do ponto a,
taylor(f,n,v,a)
que pode ser simblica ou um valor numrico.
( )
>> syms x
>> f=1/(5+4*cos(x))
f =
1/(4*cos(x) + 5)
>> T=taylor(f,8)
T =
(49*x^6)/131220 + (5*x^4)/1458 + (2*x^2)/81 + 1/9
>> pretty(T)
6
49 x
4
5 x
2
2 x
1458
81
28
Introduo ao MATLAB
7.
GRFICOS
7.1.
Grficos 2D
100
80
60
40
20
0
-10
-5
10
29
Introduo ao MATLAB
Estes so os comandos para plotar grficos bidimensionais:
Comando
plot
loglog
semilogx
semilogy
fill
polar
stem
stairs
compass
feather
fplot
comet
ezplot
Descrio
Plotar linear
Grfico em escala logartmica
Grfico em escala semi-logartmica (eixo x)
Grfico em escala semi-logartmica (eixo y)
Desenhar polgono 2D
Grfico em coordenadas polar
Grfico de sequncia discreta
Grfico em degrau
Grfico em forma de bssola
Grfico em forma de pena
Grfico da funo
Grfico com trajetria de cometa
Plota grficos no domnio padro -2 < x < 2
Grfico da funo x +1
120
100
80
60
40
20
0
-10
-5
0
x
10
30
Introduo ao MATLAB
Obs.: Para que todos os comandos apaream no mesmo grfico imprescindvel
que a nova janela aberta pelo MATLAB no seja fechada.
0
-0.2
-0.4
-0.6
-0.8
-1
10
x
12
14
16
18
20
Alm de ttulos e designao dos eixos (funes title, xlabel e ylabel) podemos
definir outras propriedades grficas como legendas, cores e estilos de linhas, estilos de
marcadores e incluir grade. Na tabela a seguir vemos os principais valores para os
atributos cores, marcadores e estilos de linha.
y
m
c
r
Cor
Amarelo
Rosa(magenta)
Azul(ciano)
Vermelho
.
o
x
+
Marcadores
Ponto
Crculo
X
Mais
Estilo de Linha
Slido
:
Pontilhado
-.
Ponto-trao
-Tracejado
31
Introduo ao MATLAB
g
b
w
k
*
s
v
^
p
Verde
Azul
Branco
preto
Asterisco
Quadrado
Tringulo para baixo
Tringulo para cima
Pentgono
>> x=-10:0.5:10;
>> y=x.^2+1;
>> plot(x,y,'m*-.');
120
100
80
60
40
20
0
-10
-5
10
Valor
0
1
2
3
4
-1
Significado
Escolha automtica da melhor posio (mnimo conflito com os dados)
Canto superior direito
Canto superior esquerdo
Canto inferior esquerdo
Canto superior direito
direita do desenho
32
Introduo ao MATLAB
text (x,y, 'texto desejado')
Onde x, y so as coordenadas nas quais desejamos que o texto aparea.
Obs.: \pi faz aparecer o smbolo .
>> plot(0:pi/20:2*pi,sin(0:pi/20:2*pi))
>> text(pi,0,' sin(\pi)')
1
0.8
0.6
0.4
0.2
0
sin()
-0.2
-0.4
-0.6
-0.8
-1
Com a mesma finalidade pode ser utilizado o comando gtext, com a diferena de
com este a posio do texto escolhida atravs do mouse. Tem a sntese:
gtext('texto desejado')
Comando
axis([xmin xmax
ymin ymax])
axis square
axis equal
axis normal
axis off
axis on
Descrio
Define os valores mximos e mnimos dos eixos usando os
valores dados no vetor de linha.
Torna quadrado o quadro dos eixos.
Ajusta os incrementos de eixos para que sejam iguais nos
dois eixos.
Cancela o efeito dos dois comandos anteriores.
Desliga todos os nomes de eixos, grades e marcadores. No
altera o ttulo nem os nomes colocados pelos comandos text e
gtext.
Liga nomes de eixos, marcadores e grade.
33
Introduo ao MATLAB
>> t = -6*pi:pi/100:6*pi;
>> x = cos(t);
>> y = sin(t);
>> plot(x,y);
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
Exemplos:
Plotar as funes sen(x) e cos(x), com x= -pi: pi/20 : pi, na mesma janela mas
34
Introduo ao MATLAB
>> subplot(2,1,1);
>> x=-pi:pi/20:pi;
>> y= sin(x);
>> plot(x,y)
>> title('Subdiagrama 1');
>> subplot(2,1,2);
>> x=-pi:pi/20:pi;
>> y= cos(x);
>> plot(x,y)
>> title('Subdiagrama 2');
Subdiagrama 1
1
0.5
0
-0.5
-1
-4
-3
-2
-1
Subdiagrama 2
1
0.5
0
-0.5
-1
-4
-3
-2
-1
Alm do comando plot, podemos plotar uma funo atravs do comando fplot.
Basicamente, voc deve fornecer como primeiro argumento a funo que pretende usar
entre apstrofes e como segundo, o intervalo sobre o qual a funo ser plotada.
>> fplot('x^2+3', [ -1, 2])
5
4.5
4
3.5
3
2.5
2
1.5
1
-1
-0.5
0.5
1.5
35
Introduo ao MATLAB
O MATLAB tem uma funo chamada polar que se destina ao desenho de dados
usando coordenadas polares. Sua forma bsica :
polar(theta,r)
Exemplo:
A Cardiide pode ser expressa atravs de coordenadas polares por:
r=2(1+cos)
Utilizando o comando polar, vamos plotar a Cardiide.
>> theta = 0:pi/50:2*pi;
>> r=2*(1+cos(theta));
>> polar(theta,r,'r-');
>> title('Cardioide em Coordenadas Polares');
Cardioide em Coordenadas Polares
90
120
60
3
2
150
30
180
210
330
240
300
270
A forma paramtrica de uma curva plana pode ser descrita atravs do seguinte
par de funes:
x = f(t)
y = g(t)
Onde t um parmetro real que assume valores em um intervalo [a,b] e f(t) e
g(t) so funes quaisquer. Quando t = a, o ponto (xa,ya) =(f(a),g(a)) o incio da curva
e quando t=b, o ponto (xb,yb)=(f(b),g(b)) o final da curva.
Exemplo:
>> t = -6*pi:pi/100:6*pi;
>> x = cos(t);
36
Introduo ao MATLAB
>> y = sin(t);
>> plot(x,y);
>> axis square
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
7.2
-0.5
0.5
Diagramas Bidimensionais
37
Introduo ao MATLAB
>> title('Grafico de barras horizontais');
Grafico de barras horizontais
10
>> x = [1 2 3 4 5 6];
>> y = [5 4 6 7 2 5];
>> bar(x,y);
>> axis([0 7 0 8]);
>> title('Grafico de barras verticais');
Grafico de barras verticais
8
7
6
5
4
3
2
1
0
38
Introduo ao MATLAB
>> pie(x,explode);
>> title('Grfico de Setores');
>> legend('Um','Dois','Tres','Quatro','Cinco',-1);
Grfico de Setores
Um
Dois
Tres
Quatro
Cinco
20%
32%
20%
16%
12%
7.2.3 Histogramas
-2
-1
39
Introduo ao MATLAB
7.3
Grficos 3D
Comando
plot3
fill3
comet3
contour
contour3
clabel
quiver
mesh
meshc
surf
surfc
surfil
slice
cylinder
sphere
ezplot3
ezsurf
Descrio
Plotar em espao 3D.
Desenhar polgono 3D.
Plotar em 3D com trajetria de cometa.
Plotar contorno 2D.
Plotar contorno 3D.
Plotar contorno com valores.
Plotar gradiente.
Plotar malha 3D.
Combinao mesh/contour.
Plotar superfcie 3D.
Combinao surf/contour.
Plotar superfcie 3D com iluminao.
Plot visualizao volumtrica.
Gerar cilindro.
Gerar esfera.
Plotar uma curva espacial de trs equaes paramtricas no
domnio padro 0 < t < 2.
Plotar a superfcie de um grfico de uma funo de duas
variveis no domnio padro -2 < x < 2 e -2 < y < 2 .
Exemplos:
>> ezplot3('sin(t)','cos(t)','t')
x = sin(t), y =cos(t), z =t
2
0
1
0.5
1
0.5
-0.5
y
-0.5
-1
-1
40
Introduo ao MATLAB
>> ezsurf('1/sqrt(x^2 + y^2)')
1/sqrt(x 2 + y 2)
0
5
5
0
0
-5
-5
>> t=0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t);
40
30
20
10
0
1
0.5
1
0.5
-0.5
-0.5
-1
-1
Obs.: Todos os comandos de grficos 2D, de escala, ttulo, nome aos eixos continuam
valendo ( nome ao eixo z: zlabel).
Para estipular os limites dos eixos x, y e z utilizam-se os seguintes comandos:
xlim([xmin xmax]) define o eixo X de xmin a xmax.
ylim([ymin ymax]) define o eixo Y de ymin a ymax.
zlim([zmin zmax]) define o eixo Z de zmin a zmax.
7.3.1 Meshgrid
41
Introduo ao MATLAB
O primeiro passo para plotar uma funo de 2 variveis z=f(x,y) gerar matrizes
X e Y contendo linhas e colunas repetidas, respectivamente, para funcionarem como o
domnio da funo. A funo meshgrid transforma o domnio especificado por dois
vetores x y em duas matrizes X e Y. Essas matrizes ento so usadas para avaliar a
funo de 2 variveis. Por exemplo, seja a funo:
f(x,y) = sen(x2+y2)1/2 / (x2+y2)1/2
>> [X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);
>> r=sqrt(X.^2+Y.^2);
>> Z=sin(r)./r;
>> mesh(X,Y,Z)
0.5
-0.5
10
5
10
5
-5
-5
-10
-10
25
20
15
10
10
15
20
25
30
42
Introduo ao MATLAB
>> subplot(221)
>> mesh(X,Y,Z)
>> title('sombrero')
>> subplot(222)
>> t=0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t)
>> title('Hlice')
>> subplot(223)
>> mesh(X,Y,X.^2-Y.^2)
>> title('Sela')
>> subplot(224)
>> mesh(X,Y,3*sqrt(X.^2+Y.^2))
>> title('cone')
sombrero
Hlice
40
20
-1
10
10
0
1
-10 -10
cone
100
40
20
-100
10
10
0
-10 -10
0
-1 -1
Sela
0
10
10
0
-10 -10
43
Introduo ao MATLAB
8.
8.1.
PROGRAMAO
Arquivos M
8.1.1. Scripts
8.1.2. Funes
44
Introduo ao MATLAB
>> hema(8640)
f=
1
ans =
1
8.2.
Controladores de fluxo
for <condio>
[Comandos];
45
Introduo ao MATLAB
end
Exemplo:
for i=1:5,
x(i)=i^2;
end
x
x =
1
16
25
Exemplo:
for i = 1:8
for j = 1:8,
A(i,j) = i + j;
B(i,j) = i - j;
end
end
C= A + B
A =
2
3
4
5
6
7
8
9
3
4
5
6
7
8
9
10
4
5
6
7
8
9
10
11
5
6
7
8
9
10
11
12
6
7
8
9
10
11
12
13
7
8
9
10
11
12
13
14
8
9
10
11
12
13
14
15
9
10
11
12
13
14
15
16
0
1
-1
0
-2
-1
-3
-2
-4
-3
-5
-4
-6
-5
-7
-6
B =
46
Introduo ao MATLAB
2
3
4
5
6
7
1
2
3
4
5
6
0
1
2
3
4
5
-1
0
1
2
3
4
-2
-1
0
1
2
3
-3
-2
-1
0
1
2
-4
-3
-2
-1
0
1
-5
-4
-3
-2
-1
0
2
4
6
8
10
12
14
16
2
4
6
8
10
12
14
16
2
4
6
8
10
12
14
16
2
4
6
8
10
12
14
16
2
4
6
8
10
12
14
16
2
4
6
8
10
12
14
16
2
4
6
8
10
12
14
16
2
4
6
8
10
12
14
16
C =
while <condio>
[Comandos]
end
47
Introduo ao MATLAB
operador de negao
n =
70
8.2.3. O comando if
if <condio1>
[Comandos1]
elseif <condio2>
[Comandos2]
else
[Comandos3]
end
48
Introduo ao MATLAB
A(i,j) = 0;
end
end
end
end
A
A =
2
-1
-1
-1
-1
-1
-1
-1
-1
input(texto);
input(texto,s)
O comando input(texto) exibe o texto na tela da linha de comando e retorna o valor
digitado at que seja pressionado enter. J input(texto,s) utilizado para entrada de
strings. Por exemplo:
id=input(Digite sua idade) guarda o nmero digitado em id;
49
Introduo ao MATLAB
nom=input(Digite o seu nome, s) guarda a string digitada em nom.
Esse comando exibe texto na tela de comando. Para escrever uma frase deve
rodear-se essa frase do smbolo . Quando se pretender escrever um conjunto de vrias
frases, devem separar-se as frases por vrgulas e rodear o conjunto com os smbolos [ e
]. Por exemplo,
disp([ Estou a escrever esta frase h , minutos ] )
switch switch_expr
case case_expr,
stat1, ..., stat1n
case {case_expr1, case_expr2, case_expr3,...}
stat2, ..., stat2n
...
otherwise,
stat3, ..., stat3n
end
50
Introduo ao MATLAB
Se switch_expr for igual a case_expr, ento as sentenas stat1 at stat1n sero
executadas, e terminado o comando. Se switch_expr for igual a case_expr1 ou
case_expr2 ou case_expr3 ..., ento as sentenas stat2 at stat2n sero executadas, e
terminado o comando. Se switch_expr for diferente de todos as case_exprs anteriores,
ento as sentenas stat3 at stat3n sero executadas, e terminado o comando.
%d
%e
%f
%g
8.3. Exemplificao
1) Crie um programa que calcula as razes de uma equao do segundo grau. Caso o
coeficiente de x igual a zero, o programa deve retornar ao usurio que est equao
51
Introduo ao MATLAB
no do segundo grau. Alm disso, deve informar, baseado no valor de delta, como
sero as razes desta equao.
>> disp(' ==== Entre com a, b e c ==== ');
a = input(' Coeficiente de x^2 ');
b = input(' Coeficiente de x ');
c = input(' Termo independente de x ');
if a == 0.
disp(' ==== A equacao nao e do segundo grau
==== ');
a = input(' Coeficiente de x^2 - a <> 0 ');
end
break
delta = b^2-4.*a*c;
delta
if delta == 0.
ch = 0;
end
if delta < 0.
ch = -1;
end
if delta > 0.
ch = 1;
end
x(1) = (-b + sqrt(delta))/(2.*a);
x(2) = (-b - sqrt(delta))/(2.*a);
x
switch ch
52
Introduo ao MATLAB
case 0,
disp(' Raizes reais e iguais.')
case -1,
disp(' Raizes complexas conjugadas.')
otherwise,
disp(' Raizes reais e desiguais.')
end
53
Introduo ao MATLAB
30
')
REPENSE O SEU MODO DE VIVER, OU ...')
')
else
disp('
disp('
disp('
disp('
disp('
')
-------------------------')
|OBRIGADO POR USAR: IMC |')
-------------------------')
')
end
54
Introduo ao MATLAB
4) Faa um programa que pergunte ao usurio quantas linhas e quantas colunas ele quer
que uma matriz A tenha. Em seguida, pedir que ele insira cada valor da matriz. Alm
disto, verificar quantos elementos menores que zero tem nesta matriz.
l=input('Digite um valor para o numero de linhas da matriz A:');
c=input('Digite um valor para o numero de colunas da matriz
A:');
A=zeros(l,c);
b=0;
for i=1:l
for j=1:c
fprintf('Insira o numero (%d,%d):',i,j);
A(i,j)=input('');
if A(i,j)<0
b=b+1;
end
end
end
disp(A);
fprintf('A matriz A possui %d nmeros(s) menor(es) que
zero.',b);
55
Introduo ao MATLAB
9.
BIBLIOGRAFIA
56