Você está na página 1de 45

MATLAB Avan cado

Melissa Weber Mendon ca1


1 Universidade

Federal de Santa Catarina

2011.2

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

1 / 37

MATLAB B asico: N umeros reais

>> >> >>

a = 1 b = 2 a + b

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

2 / 37

MATLAB B asico: N umeros reais

>> >> >> ans

a = 1 b = 2 a + b = 3

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

2 / 37

MATLAB B asico: Vetores

>> >>

v = [1,2,3] v = [1 2 3]

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

3 / 37

MATLAB B asico: Vetores

>> >> v

v = [1,2,3] v = [1 2 3] = 1 2 3

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

3 / 37

MATLAB B asico: Vetores

>> >> v

v = [1,2,3] v = [1 2 3] = 1 2 3 u = [1;2;3]

>>

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

3 / 37

MATLAB B asico: Vetores

>> >> v

v = [1,2,3] v = [1 2 3] = 1 2 3 u = [1;2;3] = 1 2 3

>> u

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

3 / 37

MATLAB B asico: Vetores


>> >> v v = [1,2,3] v = [1 2 3] = 1 2 3 u = [1;2;3] = 1 2 3 v(2) = 2

>> u

>> ans

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

3 / 37

MATLAB B asico: Matrizes

>>

A = [1 2 3;4 5 6]

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

4 / 37

MATLAB B asico: Matrizes

>> A

A = [1 2 3;4 5 6] = 1 2 3 4 5 6

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

4 / 37

MATLAB B asico: Matrizes

>> A

>> ans

A = [1 2 3;4 5 6] = 1 2 3 4 5 6 A(2,1) = 4

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

4 / 37

Opera co es b asicas

>> 2*a >> a*b >> a.*b >> a/b >> a./b >> a^2 >> a.^2 >> a >> [y] = funcao(x)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

5 / 37

Fun co es b asicas

>> eye(n,n) >> zeros(m,n) >> ones(m,n) >> rand(m,n) >> size(A) >> inv(A)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

6 / 37

Gr acos em 2D
Cada ponto no gr aco e dado por uma coordenada (x , y ), onde x e um n umero real e y e um n umero real associado a x (como y = f (x )). Mas, n ao podemos representar a reta real (cont nua) no MATLAB. Por isso, precisamos usar um vetor de pontos: x = (x1 , x2 , . . . , xn ) e fazer o gr aco de f apenas nestes pontos; o MATLAB ligar a o resto.

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

7 / 37

Plot

O comando para fazer gr acos no MATLAB e plot(x,y) em que x e um vetor dos pontos onde a fun c ao ser a avaliada, e y e um vetor tal que yi = f (xi ). Exemplo: f (x ) = x 2 ; x = (0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0) y = (0, 0.01, 0.04, 0.09, 0.16, 0.25, 0.36, 0.49, 0.64, 0.81, 1.0)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

8 / 37

Plot

Para criar estes vetores, podemos usar os seguintes comandos: >> x = 0:0.1:1 >> y = x.^2 >> plot(x,y)

x pode ser um vetor linha ou coluna.

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

9 / 37

Op co es do comando plot
>> help plot Exemplos: >> plot(x,y,r*) >> plot(x,y,m^) >> plot(x,y,Linewidth,3)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

10 / 37

Alguns comandos u teis


>> close >> close all >> hold on >> hold off Exemplo: >> >> >> >> >> >> x = -2:0.1:2 y = x.^2; plot(x,y) hold on z = x.^3; plot(x,z,m)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

11 / 37

T tulo e legendas nos eixos: title e label

>> title(y = f(x)) >> legend(legenda) >> xlabel(x) >> ylabel(y)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

12 / 37

Eixos - axis
` vezes, precisamos xar ou modicar os eixos contra os quais fazemos os As gr acos. Para isso, podemos usar

>> axis >> axis([x0 x1 y0 y1]) >> axis auto >> axis equal >> axis tight >> axis off

Exemplos: f (x ) = sin (x )

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

13 / 37

grid

>> t = 0:0.1:4; >> plot(t,exp(t)) >> grid on >> grid minor >> grid off

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

14 / 37

Retas: line

>> line([1 0],[0 0]) >> line([0 0],[0 1]) >> line([x0 x1],[y0 y1])

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

15 / 37

Exemplos

2 3

1 com os eixos x e y desenhados. x Fazer o gr aco do c rculo x 2 + y 2 = 4 Fazer o gr aco de f (x ) = Fazer o gr aco do tri angulo de v ertices (1, 1), (2, 1) e (1.5, 2).

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

16 / 37

fill
>> fill(x,y,x) Exemplo: repetir os seguintes gr acos:

triangulo preenchido.m
M. Weber Mendon ca (UFSC) MATLAB Avan cado 2011.2 17 / 37

fill
>> fill(x,y,x) Exemplo: repetir os seguintes gr acos:

quadrados.m
M. Weber Mendon ca (UFSC) MATLAB Avan cado 2011.2 17 / 37

fill
>> fill(x,y,x) Exemplo: repetir os seguintes gr acos:

smiley.m
M. Weber Mendon ca (UFSC) MATLAB Avan cado 2011.2 17 / 37

Subgr acos: subplot

>> subplot(2,1,1), plot(x1,y1) >> subplot(2,1,2), plot(x2,y2) Os gr acos cam nesta posi c ao: 1 5 2 6 3 7 4 8

Exemplo: Fazer em uma mesma janela os gr acos das fun c oes seno, cosseno, tangente e cotangente, incluindo os eixos coordenados, t tulos para cada gr aco e cores diferentes para cada fun c ao trigonom etrica. (Dica: pode-se escrever tudo isso em um script!)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

18 / 37

Curvas no espa co: plot3


Se quisermos desenhar um conjunto de pontos ou uma curva parametrizada no espa co, podemos usar o comando plot3. O comando >> plot3(X,Y,Z)

desenha a curva determinada pelos pontos (X , Y , Z ) no espa co. >> >> >> >> >> >> t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t) xlabel(sin(t)) ylabel(cos(t)) zlabel(t) axis square

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

19 / 37

Pontos no espa co: plot3

Tamb em podemos usar a fun c ao plot3 para observar a distribui c ao de pontos no espa co.

Exemplo: >> >> >> >> x = rand(100,1); y = rand(100,1); z = rand(100,1); plot3(x,y,z)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

20 / 37

Gr acos em 3D

Queremos desenhar o gr aco de uma fun c ao de duas vari aveis, ou seja, z = f (x , y ) O resultado ser a uma superf cie no espa co 3D, com coordenadas (x , y , z )

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

21 / 37

Criador de malha: meshgrid

Ao inv es de criarmos um intervalo de pontos onde o gr aco ser a desenhado, precisamos de uma malha, ou seja, da intersec c ao de dois intervalos, um denido no eixo x e outro denido no eixo y , para desenharmos uma fun c ao z = f (x , y ). Para isto, usamos a fun c ao meshgrid. >> [X,Y] = meshgrid(x,y)

cria matrizes X e Y prontas para serem usadas pelos comandos de cria c ao de gr acos em 3D.

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

22 / 37

meshgrid
>> >> >> x1 x 1 X = x 1 x1 Para o MATLAB: (x 1, y 1) (x 1, y 2) (x 1, y 3) (x 1, y 4) (x 2, y 1) (x 2, y 2) (x 2, y 3) (x 2, y 4) (x 3, y 1) (x 3, y 2) (x 3, y 3) (x 3, y 4) x = [x1 x2 x3]; y = [y1 y2 y3 y4]; [X,Y] = meshgrid(x,y) x2 x2 x2 x2 x3 y1 x 3 y2 eY = y 3 x 3 x3 y4 y1 y2 y3 y4 y1 y 2 y 3 y4

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

23 / 37

meshgrid

>> >>

x = -1:0.1:1 [X,Y] = meshgrid(x)

cria uma malha em [1, 1] [1, 1] com espa camento de 0.1 unidades entre os pontos.

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

24 / 37

Superf cies

Para desenharmos uma superf cie dada por z = f (x , y ) com (x , y ) [x0 , y0 ] [x1 , y1 ], usamos o comando surf(X,Y,Z). >> >> >> >> >> x = x0:deltax:x1; y = y0:deltay:y1; [X,Y] = meshgrid(x,y); Z = f(X,Y) surf(X,Y,Z)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

25 / 37

Superf cies: exemplo

>> >> >> >>

x = -1:0.1:1; [X,Y] = meshgrid(x); Z = X.^2+Y.^2 surf(X,Y,Z)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

26 / 37

Superf cies: exemplo

Fazer o gr aco da sela de macaco f (x , y ) = x 3 4xy 2 em [2, 2] [3, 4].

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

27 / 37

Superf cies: exemplo


Fazer o gr aco da sela de macaco f (x , y ) = x 3 4xy 2 em [2, 2] [3, 4]. >> >> >> >> >> x = -2:0.1:2; y = -3:0.1:4; [X,Y] = meshgrid(x,y); Z = X.^3-4*X.*Y.^2 surf(X,Y,Z)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

27 / 37

Superf cies: exemplo


Fazer o gr aco da sela de macaco f (x , y ) = x 3 4xy 2 em [2, 2] [3, 4]. >> >> >> >> >> >> x = -2:0.1:2; y = -3:0.1:4; [X,Y] = meshgrid(x,y); Z = X.^3-4*X.*Y.^2 surf(X,Y,Z) title(Sela de macaco)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

27 / 37

Superf cies: exemplo


Fazer o gr aco da sela de macaco f (x , y ) = x 3 4xy 2 em [2, 2] [3, 4]. >> >> >> >> >> >> >> x = -2:0.1:2; y = -3:0.1:4; [X,Y] = meshgrid(x,y); Z = X.^3-4*X.*Y.^2 surf(X,Y,Z) title(Sela de macaco) axis([-10 10 -8 8])

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

27 / 37

Superf cies vazadas: mesh

Para desenharmos apenas as linhas que ligam os pontos representados em uma superf cie dada por z = f (x , y ) com (x , y ) [x0 , y0 ] [x1 , y1 ], usamos o comando mesh(X,Y,Z). >> >> >> >> >> x = x0:deltax:x1; y = y0:deltay:y1; [X,Y] = meshgrid(x,y); Z = f(X,Y) mesh(X,Y,Z)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

28 / 37

mesh: exemplo

Fazer o gr aco da superf cie f (x , y ) = usando o comando mesh. x2 + y2

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

29 / 37

mesh: exemplo

Fazer o gr aco da superf cie f (x , y ) = usando o comando mesh. >> >> >> x = -2:0.1:2; [X,Y] = meshgrid(x); mesh(X,Y,sqrt(X.^2+Y.^2)) x2 + y2

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

29 / 37

Superf cies: exemplo

Vericar a intersec c ao da paraboloide f (x , y ) = x 2 + y 2 com o plano dado pela equa c ao x +y +z =1

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

30 / 37

Superf cies: exemplo


Vericar a intersec c ao da paraboloide f (x , y ) = x 2 + y 2 com o plano dado pela equa c ao x +y +z =1 >> >> >> >> x = -2:0.1:2; [X,Y] = meshgrid(x); surf(X,Y,X.^2+Y.^2) mesh(X,Y,1-X-Y)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

30 / 37

Superf cies: exemplo


Vericar a intersec c ao da paraboloide f (x , y ) = x 2 + y 2 com o plano dado pela equa c ao x +y +z =1 >> >> >> >> >> x = -2:0.1:2; [X,Y] = meshgrid(x); surf(X,Y,X.^2+Y.^2) hold on mesh(X,Y,1-X-Y)

M. Weber Mendon ca (UFSC)

MATLAB Avan cado

2011.2

30 / 37