Beruflich Dokumente
Kultur Dokumente
Sumrio
1. INTRODUO ................................................................................................................ 2
1. INTRODUO
1
Para maiores informaes sobre as ltimas novidades do software, consulte a pgina na internet da MathWorks
Inc. em http://www.mathworks.com
Curso Introdutrio de MATLAB 3
2. INICIANDO
2.1 Variveis
Variveis
4.7 A = 1 -7 3
Vetores Linha Vetores Coluna 2 0 8
(matrix 1x1)
B = 4.9
Numricos Strings
7.6
8
4 7 5 9 t e x t o 2
Por exemplo, para entrar com a matriz abaixo na memria do computador, e guard-la
na varivel A:
1 2 3
A= 4 5 6
7 8 9
Curso Introdutrio de MATLAB 4
Basta digitar:
A=[1 2 3;4 5 6; 7 8 9]
Que a sada ser: A =
1 2 3
4 5 6
7 8 9
OBS: Para que o computador realize a operao e no mostre a sada, basta terminar
a expresso com ponto-e-vrgula (;). Isto muito til para evitar que o computador fique
mostrando nmeros de clculos intermedirios e para acelerar as operaes.
O MATLAB possui uma vasta gama de funes matemticas elementares, com seno
(sin), tangente (tan), logaritmo (log10), etc. Por exemplo, para calcular o seno de 5 e
guardar na varivel x:
x=sin(5)
Subtraindo matrizes:
A=[1 2 3;4 5 6;7 8 9];
B=[4 5 6;1 2 3;8 7 6];
C=A'-B
O comando mais importante no MATLAB o help, que fornece ajuda on-line sobre
qualquer outro comando. Por exemplo, para obter ajuda sobre o comando who:
Curso Introdutrio de MATLAB 6
help who
WHO List current variables.
WHO lists the variables in the current workspace.
WHOS lists more information about each variable.
WHO GLOBAL and WHOS GLOBAL list the variables in the global workspace.
lookfor max
BITMAX Maximum floating point integer.
REALMAX Largest positive floating point number.
MAX Largest component.
2.2.3 EXERCCIOS
Comandos: who, whos, eps, format, quit, save, load, clear, help, lookfor.
Exerccios:
Elementos de uma matriz podem ser qualquer expresso do MATLAB. Por exemplo:
Elementos individuais de uma matriz podem ser referenciados com seus respectivos
ndices entre parntesis. No exemplo anterior, para referenciar o segundo elemento do vetor x:
x(2)
ans =
4.3266
Analogamente em uma matriz, com linha e coluna determinada tenho um elemento. Seja:
x=[1 2 3;4 5 6;7 8 9]
x =
1 2 3
4 5 6
7 8 9
Curso Introdutrio de MATLAB 8
x(2,3)
ans =
6
x = 1:8
Cria um vetor cujo primeiro elemento 1, o ltimo 8 e o passo 1.
x =
1 2 3 4 5 6 7 8
Os dois pontos significam incio : passo : fim. O valor de passo pode ser qualquer
nmero real ( 0). A notao ( : ) muito til para gerar tabelas e plotar grficos, como
veremos adiante.
x=0:0.2:3;
y=exp(-x) + sin(x);
z=[x'y']
z =
0 1.0000
0.2000 1.0174
0.4000 1.0597
0.6000 1.1135
0.8000 1.1667
1.0000 1.2094
1.2000 1.2332
1.4000 1.2320
1.6000 1.2015
1.8000 1.1391
2.0000 1.0446
2.2000 0.9193
Curso Introdutrio de MATLAB 9
2.4000 0.7662
2.6000 0.5898
2.8000 0.3958
3.0 0.1909
1 2 3 4
A= 5 6 7 8 Pegar os elementos da 2a linha e 3a e 4a
9 10 11 12 colunas:
14 83 23 0
9 10 11 12 6 7
10 11
14 83 23 0
3.1.4 EXERCCIOS
Pode-se perceber que no segundo caso p que ocorreu foi: elemento a11 * b11, a12 * b12, a21
* b21. Diferente do primeiro caso, onde ocorreu uma multiplicao de duas matrizes 3 x 3.
As operaes elemento por elemento so:
Smbolo Operao
.* multiplicao
./ ou .\ diviso
.^ potenciao
Curso Introdutrio de MATLAB 12
Existem ainda algumas funes que so teis com os operadores lgicos, com any ou
all. Por exemplo:
x = [1 2 3 4 5 6]
x =
1 2 3 4 5 6
Curso Introdutrio de MATLAB 13
any(x>5)
ans =
1
all(x>5)
ans =
0
3.4.1 EXERCCIOS
4. POLINMIOS
4.2.1 EXERCCIOS
5. GRFICOS
A funo bsica para desenhar grficos em duas dimenses a funo plot. Quando
esta funo recebe um conjunto de ponto x e y, ela desenha-os em um plano cartesiano.
Por exemplo, seja o conjunto de pontos abaixo:
Curso Introdutrio de MATLAB 16
2 4 plot(x,y)
O MATLAB criar uma janela com a figura do grfico ( vide figura 1). Na verdade, a
funo plot recebe um nmero varivel de argumentos. Sua forma mais geral
plot(x1,y1,jeito1,x2,y2,jeito2,,xn,yn,jeiton). Ou seja, voc pode traar mais de uma curva no
mesmo grfico. O argumento jeito representa as vrias opes para o grfico, que pode ser
qualquer um dos seguintes strings2:
25
20
15
10
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
2
Figura 1 Grfico f(x) = x
2
Um string uma seqncia de caracteres que o MATLAB interpreta como um texto. Os strings so
sempre denotados entre apstrofos.
Curso Introdutrio de MATLAB 17
grfico f(x)=exp(-x)*sin(x)
0.35
x=[0:0.1:exp(1)*pi]; ponto de mximo local
0.3
y=exp(-x).*sin(x);
0.25
plot(x,y,'--b');
0.2
title('grfico f(x)=exp(-x)*sin(x)');
eixo y
-0.05
0 1 2 3 4 5 6 7 8 9
eixo x
O grfico da figura 2 foi gerado a partir
Figura 2 Exemplo do uso dos
dos comandos acima.
vrios comandos relacionados aos grficos
5.1.2 EXERCCIOS
Comandos: plot, title, xlabel, ylabel, axis, gtext, grid, semilogx, loglog
Exerccios:
O MATLAB cria uma variedade de funes para grficos em 3 dimenses. Entre elas:
Grfico 3D
Curvas Superfcies
Por exemplo:
t=0:pi/50:10*pi; 40
plot3(sin(t),cos(t),t); 30
20
5.2.2 MESHGRID
O MATLAB define uma superfcie do tipo mesh (rede) pelas coordenadas Z sobre um
plano x-y. Superfcies tipo mesh so teis para visualizar matrizes demasiadamente grandes
para serem mostradas na forma numrica, ou para plotar funes de duas variveis.
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:
Curso Introdutrio de MATLAB 19
f(x,y) = sen(x2 + y2) / (x2 + y2)
plot3(sin(t),cos(t),t);
[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);
r= sqrt(X.^2+Y.^2)+eps;
Z=sin(r)./r;
mesh(X,Y,Z)
possvel ainda mudar o mapa de cores dos grficos. Para tal, utilize a funo
colormap.
subplot(221)
mesh(X,Y,Z)
title('Sombrero')
subplot(222)
plot3(sin(t),cos(t),t);
title('Hlice')
subplot(223)
mesh(a,b,c)
title('Esfera')
subplot(224)
mesh(X,Y,3*sqrt(X.^2+Y.^2))
title('Cone') Figura 4 - Grfico usando comando subplot
5.2.4 EXERCCIOS
6. PROGRAMAO
Arquivos
Scripts Funes
matrizes extensas
comandos freqentemente digitados Funes Funo
Curso Introdutrio de MATLAB 21
6.1.1 FOR
Por exemplo,
for i = 1:10
v(i)=3*i;
end
3 6 9 12 15 18 21 24 27 30
6.1.2 WHILE
O lao while permite que o comando seja repetido um nmero indefinido de vezes,
enquanto uma condio lgica seja satisfeita. A forma geral do lao while :
while (expresso verdadeira)
comandos
end
Assim, como no caso de for, while precisa de um end para indicar o fim do lao. O
exemplo abaixo calcula o fatorial de n enquanto n! < 10100.
n=1;
Curso Introdutrio de MATLAB 22
while prod(1:n)<1.e100
n=n+1;
end
n
n =
70
6.1.3 IF
A primeira condio sempre escrita com if, a ltima com else, e todas as
intermedirias com elseif.
a=round(10*rand(1));
if a>5
b=3*a;
elseif a<5;
b=a/3;
else
b=a;
end
Alm dos controladores de fluxo tradicionais, existem mais algumas funes que so
bastante teis para programao. Entre elas:
break termina um lao
input recebe dados atravs do teclado. Por exemplo, n = input(Entre com valor: )
atribui o valor digitado no teclado varivel n.
Curso Introdutrio de MATLAB 23
6.2 Arquivos M
6.2.1 SCRIPTS
Estando este arquivo salvo em um dos diretrios path do MATLAB com uma extenso
.m, toda vez que seu nome for digitado, todas as linhas de comandos acima sero
executadas.
OBS: Para saber o path do MATLAB, use o comando path. Com este comando
possvel inclusive alterar o path original. Lembre-se de salvar o arquivo com uma extenso
.m, com a opo salvar como tipo: todos os arquivos (*.*).
6.2.2 ARQUIVOS-FUNO
Uma funo difere de um script j que argumentos podem ser passados para a
funo, e as variveis criadas e manipuladas na funo so locais para a mesma.
Na primeira linha de um arquivo funo dever aparecer a palavra function, definir o
nome da funo.
function y = escal(a,b)
% ESCAL Produto escalar de dois vetores
%
% ESCAL retorna um vetor que o resultado do produto
% escalar de dois vetores.
% Os dois vetores devem ser do mesmo tamanho
if size(a) ~= size(b)
error(Erro: vetores no tem mesmo tamanho);
end
y=sum(a.*b);
Salve este texto como um arquivo escal.m no path do MATLAB. Crie dois vetores de
mesmo tamanho e chame a funo escal. A resposta ser o produto escalar de dois vetores.
digitar lookfor prximo, o MATLAB ir procurar todas as funes que contenham esta
palavra, e mostrar suas 2as linhas.
t2=fzero('velocid',10)
t2 =
10.3261
6.2.4 EXERCCIOS
4) Plote o grfico do item 2-d usando fplot. Encontre o mnimo da funo atravs de
fmin. Assuma v, a, b constantes quaisquer.
7. BIBLIOGRAFIA
4.2.1 d)
1) x=[-10:0.5:10];
a) conv(p,q) y=x;
2 -7 -6 33 -110 204 55 -135 450 [x,y]=meshgrid(x,y);
b) deconv(p,q) z=atan(x.^2 + y.^2);
0.5000 mesh(z)
d) polyval(p,2) e)
-16 x=[-10:0.5:10];
e) roots(q) y=[-10:0.5:10];
3.5850 [x,y]=meshgrid(x,y);
0.5709 + 1.1745i z=(x+y)./(x-y);
0.5709 - 1.1745i mesh(z)
-1.2268 f)
f) polyval(polyder(q),3) x=[-10:0.5:10];
g) polyder(deconv(p,q)) y=[-10:0.5:10];
[x,y]=meshgrid(x,y);
5.1.2 z=(x.*y)./(x.^2-y.^2);
1) a) x=[-20:20]; mesh(z)
y=x.^3-5*x+2; g)
plot(x,y) x=[-pi:0.1:pi];
b) x=[-2*pi:0.1pi]; y=x;
y=sin(x).*cos(x) [x,y]=meshgrid(x,y);
plot(x,y) z=sin(x/2).*cos(y/3);
d) x=0:0.1:10; mesh(z)
Curso Introdutrio de MATLAB 29
quad('sin',0,1)
6.2.4 ans =
1) a) x=0:5; 0.4597
y=x.^2; b)
plot(x,y) !notepad poli.m
end function y=poly(x)
b) x=[-10:0.5:10]; y=x.^2-6*x+7
y=[-10:0.5:10]; quad('poli',-3,3)
[x,y]=meshgrid(x,y); ans =
z=x.^2 + y.^2; 60
mesh(z)
end
c) % Arquivo M que calcula os primeiros
% nmeros de Fibonacci
f=[1 1];
i=1;
while (f(i) + f(i+1))<1000
f(i+2)=f(i) + f(i+1);
i=i+1;
end
plot(f)
d)
2) a) funciotn y=media(x)
y-sum(x)/length(x)
b) function y=produto(a,b)
y=a*b
c) function y = teste(x)
if rem(x,2)==0
disp(O nmero par)
else
disp(O nmero impar)
end
if abs(x)~=x
disp(O nmero negativo)
else
disp(O nmero positivo)
end
d) function y=pressao(t,v,a,b)
y=(8.31*t)./(v-b)-a./v.^2;
3) clear
clc
v=[1:0.3:10];
a=input(a=);
b=input(b=);
t=input(t=);
plot(v,pressao(t,v,a,b))
end
5) a)