Anda di halaman 1dari 93

Apostila de MATLAB 7.

UNIVERSIDADE FEDERAL DO CEAR CENTRO DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA ELTRICA PROGRAMA DE EDUCAO TUTORIAL

Apostila de

Decio ecio Haramura Junior Guilherme Martins Gomes Nascimento Lus Paulo Carvalho dos Santos Luiz Fernando Almeida Fontenele Pedro Andr Martins Bezerra

Fortaleza CE Maio / 2009


Pgina 1 de 93

Apostila de MATLAB 7.3 SUMRIO

1.! PREFCIO ............................................................................................................................... 4! 2.! APRESENTAO .................................................................................................................... 4! 2.1.! UTILIZANDO O HELP .................................................................................................. 4! 3.! FORMATAO ........................................................................................................................ 7! 4.! MATRIZES ............................................................................................................................... 7! 4.1.! 4.2.! 4.3.! 4.4.! 4.5.! 4.6.! 5.1.! 5.2.! 5.3.! 6.1.! 6.2.! 7.1.! 7.2.! 7.3.! 7.4.! 7.5.! 8.1.! 8.2.! 8.3.! DECLARAO ............................................................................................................. 7! SOMA ........................................................................................................................ 8! MULTIPLICAO ......................................................................................................... 9! MATRIZES PR-DEFINIDAS ........................................................................................ 10! PROPRIEDADES DE MATRIZES.................................................................................... 12! TRABALHANDO COM MATRIZES .................................................................................. 14! DECLARAO ........................................................................................................... 19! OPERAES ............................................................................................................ 20! SISTEMAS DE COORDENADAS ................................................................................... 23! DEFINIO ............................................................................................................... 26! ORGANIZAO ......................................................................................................... 27! FUNES ELEMENTARES .......................................................................................... 28! PROPRIEDADES FUNDAMENTAIS ................................................................................ 28! NMEROS COMPLEXOS ............................................................................................ 30! FUNES TRIGONOMTRICAS ................................................................................... 31! APROXIMAO INTEIRA ............................................................................................. 33! GRFICOS BIDIMENSIONAIS....................................................................................... 35! GRFICOS TRIDIMENSIONAIS..................................................................................... 40! CONFIGURAO ....................................................................................................... 43!

5.! VETORES ............................................................................................................................... 19!

6.! M-FILE .................................................................................................................................... 26!

7.! FUNES MATEMTICAS .................................................................................................. 28!

8.! GRFICOS ............................................................................................................................. 35!

9.! MATEMTICA SIMBLICA .................................................................................................. 57! 10.! OPERAES MATEMTICAS BSICAS ............................................................................ 59! 10.1.! 10.2.! 10.3.! 11.1.! 11.2.! 11.3.! EXPRESSES NUMRICAS .................................................................................... 59! POLINMIOS ........................................................................................................ 60! SOLUO DE EQUAES OU SISTEMAS ................................................................. 62! LIMITES ............................................................................................................... 64! DIFERENCIAO ................................................................................................... 64! INTEGRAO ........................................................................................................ 65!

11.! CLCULO DIFERENCIAL ..................................................................................................... 64!

Pgina 2 de 93

Apostila de MATLAB 7.3


11.4.! 11.5.! 11.6.! 11.7.! 11.8.! 12.1.! 12.2.! 13.1.! 14.1.! 14.2.! 14.3.! 14.4.! 14.5.! 14.6.! INTEGRAIS DEFINIDAS PELA REGRA TRAPEZOIDAL .................................................. 66! INTEGRAIS DEFINIDAS PELA REGRA DE SIMPSON.................................................... 67! INTEGRAO DUPLA ............................................................................................. 68! INTEGRAO TRIPLA ............................................................................................ 68! OUTRAS FUNES ............................................................................................... 68! SOMATRIO ......................................................................................................... 70! SRIE DE TAYLOR ................................................................................................ 70! VERIFICAO DE ERROS ...................................................................................... 76! TRANSFORMAO DE VARIVEL INDEPENDENTE .................................................... 77! FUNES PR-DEFINIDAS..................................................................................... 79! CONVOLUO ...................................................................................................... 85! EQUAES DE DIFERENAS ................................................................................. 86! FFT (TRANSFORMADA RPIDA DE FOURIER) ......................................................... 88! FILTROS DIGITAIS................................................................................................. 91!

12.! SRIES NUMRICAS ............................................................................................................ 70!

13.! PROGRAMANDO EM MATLAB ............................................................................................ 72! 14.! ANLISE DE SINAIS ............................................................................................................. 77!

15.! REFERNCIAS BIBLIOGRFICAS ...................................................................................... 93!

Pgina 3 de 93

Apostila de MATLAB 7.3 1. PREFCIO

Esta apostila foi desenvolvida por alunos do Programa de Educao Tutorial (PET) do curso de Engenharia Eltrica da Universidade Federal do Cear (UFC) para a realizao do Curso de MATLAB. Com o intuito de promover uma introduo ao MATLAB que viesse a facilitar o desempenho dos estudantes da graduao na realizao de seus trabalhos e na sua vida profissional, o PET elaborou este Curso de MATLAB que est atualmente na quarta edio, sendo as trs primeiras realizadas durante o ano letivo de 2008 e a ltima em 2009. Durante as quatro edies foram contemplados aproximadamente 250 estudantes dos mais variados cursos de Engenharia do Centro de Tecnologia da UFC. Devido sua boa repercusso, o Curso de MATLAB foi premiado no XVII Encontro de Iniciao Docncia nos Encontros Universitrios de 2008.

2. APRESENTAO

O MATLAB (MATrix LABoratory) uma linguagem de alto desempenho para computao tcnica. Integra computao, visualizao e programao em um ambiente de fcil uso onde problemas e solues so expressos em linguagem matemtica. Usos tpicos: ! Matemtica e computao; ! Desenvolvimento de algoritmos; ! Aquisio de dados; ! Modelagem, simulao e prototipagem; ! Anlise de dados, explorao e visualizao; ! Construo de interface visual do usurio.

2.1. Utilizando o HELP Indubitavelmente, a melhor apostila tutorial sobre o MATLAB que possa existir o HELP do prprio MATLAB. Todas as informaes possveis h no Pgina 4 de 93

Apostila de MATLAB 7.3 HELP, principalmente sobre as toolboxes, sobre funes, SIMULINK e entre outros. O HELP pode ser aberto de vrias formas. A primeira atravs da barra de menu, como mostrado na Figura 1:

Figura 1 HELP do MATLAB sendo acessado pela barra de menu.

Outra forma pela tecla de atalho F1. Uma terceira forma pelo boto START, posicionado logo abaixo do COMMAND HISTORY, de acordo com a Figura 2.

Figura 2 HELP do MATLAB sendo acessado pelo boto START.

Dando continuidade, quando se deseja obter informaes sobre uma dada funo, possvel consultar diretamente no HELP ou pelo COMMAND WINDOW. Para isso, basta digitar help e em seguida a funo requerida, de acordo com o exemplo abaixo:
>> help dirac DIRAC Delta function. DIRAC(X) is zero for all X, except X == 0 where it is

Pgina 5 de 93

Apostila de MATLAB 7.3


infinite. DIRAC(X) is not a function in the strict sense, but rather a distribution with int(dirac(x-a)*f(x),-inf,inf) = f(a) and diff(heaviside(x),x) = dirac(x). See also heaviside. Overloaded functions or methods (ones with the same name in other directories) help sym/dirac.m Reference page in Help browser doc dirac

Veja que as informaes sobre a funo dirac aparecem no prprio COMMAND WINDOW. Se for necessrio consultar a pgina do HELP, basta utilizar o comando doc e em seguida o nome da funo. Por exemplo:
>> doc dirac

Depois de efetuado este comando, ir aparecer a janela do HELP com o seguinte:

Figura 3 HELP da funo dirac.

Pgina 6 de 93

Apostila de MATLAB 7.3 3. FORMATAO

No MATLAB no h necessidade de declarar o tipo das variveis utilizadas no programa, mas o usurio pode escolher qual o formato que vai ser utilizado. So usados os comandos mostrados na Tabela 1:
Tabela 1 - Formato das variveis

Comando MATLAB Format long Format short Format short e Format long e

Varivel 3.141592653589793 3.1416 3.1416e+000 3.141592653589793e+000

Descrio Com 16 dgitos Com 5 dgitos Com 5 dgitos notao cientfica Com 16 dgitos em notao cientfica Retorna + para valores positivos e - para valores negativos Aproximao racional Formato hexadecimal

Format + Format rat Format hex

+ 355/113 400921fb54442d18

4. MATRIZES

4.1. Declarao A declarao de matrizes feita da seguinte maneira:


>> a = [1:10] 10] >> b = [0:0.5:3] A = 16 5 9 3 10 6 2 11 7 13 8 12 %cria o vetor [0 0.5 1 1.5 2 2.5 3] >> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] %cria o vetor linha [1 2 3 4 5 6 7 8 9

Pgina 7 de 93

Apostila de MATLAB 7.3


4 >>A(1,2); >>A(:,3); >>A(1,:); 15 14 1

%Elemento de linha 1 e coluna 2 %Elementos da coluna 3 %Elementos da linha 1

O MATLAB tambm aceita a concatenao de matrizes, por exemplo:


>> a=[ 4 1 ; 3 4]; >> b= [ 2 >> c=[a b]; c = 4 3 1 4 2 4 3 5 3; 4 5];

Obs.: bom lembrar que o MATLAB tem como primeiro ndice do vetor o nmero 1, diferente de outras linguagens que usam o primeiro ndice como 0.

4.2. Soma A soma de todos os elementos de uma matriz com um nmero feita da seguinte maneira:
>> c = 4 3 >> c+1 ans = 5 4 2 5 3 5 4 6 1 4 2 4 3 5

A soma de matrizes feita da maneira tradicional:


>> d=[ 1 2 7 8 ; 4 7 5 8] ; >> e=[ 5 -4 7 0; 3 -1 6 -4]; >> d+e ans = 6 -2 14 8

Pgina 8 de 93

Apostila de MATLAB 7.3


7 6 11 4

4.3. Multiplicao Usa-se o sinal da multiplicao:


>> a=[1 4 2; 7 8 5; 9 5 4]; >> >> c = 20 68 68 2 12 15 9 -6 -26 b=[4 2 -5; 0 1 3; 8 -2 1]; c=a*b

Obs.: Se for desejado realizar outra operao matemtica (exceto a soma e a subtrao) entre os elementos com mesmo ndice das matrizes devese colocar um ponto antes do operador. Observe os exemplos abaixo:
>> a=[1 4 2; 7 8 5; 9 5 4]; >> b=[4 2 -5; 0 1 3; 8 -2 1]; >> c=a.*b c = 4 0 72 >> b./a ans = 4.0000 0 0.8889 >> a.^2 ans = 1 49 81 16 64 25 4 25 16 0.5000 0.1250 -0.4000 -2.5000 0.6000 0.2500 8 8 -10 -10 15 4

Pgina 9 de 93

Apostila de MATLAB 7.3 Exerccio 1- Declare as matrizes A, B e C abaixo:

A # !1 2 3 4 5 6 7 "
$ 0 5 10 15 10 5 0 % C#& ' ) (1 (2 (3 (4 (5 (6 (7 *

B # !3 6 9 12 15 18 21"

Atravs das matrizes acima, determine as matrizes a seguir utilizando os comandos j mencionados.

D # ! 4 5 6 7"; E # ! 7 6 5 4" ; $4 F #& )7 $4 &7 G#& &6 & )5 5 6 7% ; 6 5 4' * 5% 6' '; 7' ' 4*

$12 % &15 ' H # & '; &18 ' & ' ) 21* $5% I # & '; ) (6 * $ 0 5 10 % J #& '; ) (1 (2 (3 *

$0 25 100 % K #& ; 9 ' )1 4 * $0 24 99 % L#& '; ) 2 5 10 * $ 0 (24 (99 % M #& '; ) (2 (5 (10 *

4.4. Matrizes Pr-Definidas + ones Definio: Esta funo gera uma matriz cujos valores so unitrios. Sintaxe: ones(n) " Gera uma matriz quadrada de ordem n cujos termos so unitrios. ones(m,n) " Gera ma matriz m x n cujos termos so unitrios.
>>ones(2) ans = 1 1 1 1

+ zeros Definio: Esta funo gera uma matriz cujos valores so nulos. Sintaxe: Pgina 10 de 93

Apostila de MATLAB 7.3 zeros(n) " Gera uma matriz quadrada de ordem n cujos termos so nulos. zeros(m,n) " Gera ma matriz m x n cujos termos so nulos.
>>zeros(2) ans = 0 0 0 0

+ eye Definio: Gera uma matriz identidade identidade. Sintaxe: eye(n) " Gera uma matriz identidade n x n. eye(m,n) " Gera era uma matriz de ordem m x n cujos termos que possuem i=j so unitrios.
>>eye(2) ans = 1 0 0 1

+ vander Definio: Calcula a matriz de Vandermonde a partir de um vetor dado. Sintaxe: vander(A) " Calcula a matriz de Vandermonde a partir de A.
A=[1 2 3 4]; >> vander(A) ans = 1 8 27 64 1 4 9 16 1 2 3 4 1 1 1 1

Pgina 11 de 93

Apostila de MATLAB 7.3 + rand Definio: Cria uma matriz com valores aleatrios aleatrios. Sintaxe: rand(m) " Cria uma matriz m x m com valores aleatrios entre 0 e 1. rand(m,n) " Cria uma matriz m x n com valores aleatrios entre 0 e 1.
rand(2) ans = 0.9501 0.2311 0.6068 0.4860

4.5. Propriedades de matrizes + (apstrofo) Definio Calcula a matriz transposta transposta. Sintaxe: A " Gera a matriz transposta de A.
>>A=[1 1; 2 3] >>A = 1 2 >> A' ans = 1 1 2 3 1 3

+ det Definio: Calcula o determinante de uma matriz matriz. Sintaxe: det(A) " Calcula o determinante da matriz A.
>>det(A) ans = 1

Pgina 12 de 93

Apostila de MATLAB 7.3 + trace Definio: Retorna um vetor com a soma dos elementos da diagonal principal de uma matriz. Sintaxe: trace(A) " Retorna a soma dos ele elementos mentos da diagonal principal da matriz A.
A = 1 2 >> trace(A) ans = 2 4 1

+ inv Definio: Determina a matriz inversa dada. Sintaxe: inv(A) " Retorna a matriz inversa da matriz A.
>> A = [5 8; 4 9] A = 5 4 >> inv(A) ans = 0.6923 -0.3077 0.3077 -0.6154 0.6154 0.3846 8 9

+ eig Definio: Calcula os autovalores e autovetores de uma matriz matriz. . Sintaxe: eig(A) " Retorna os autovalores de uma matriz quadrada A. [a, b] = eig(A) " Retorna em a, uma matriz com os autovetores e, e em b, uma matriz com os autovalores associados.
>> A=[1 -1; 4 1]

Pgina 13 de 93

Apostila de MATLAB 7.3


A = 1 4 a = 0 - 0.4472i -0.8944 0.8944 b = 1.0000 + 2.0000i 0 0 1.0000 - 2.0000i 0 + 0.4472i -0.8944 -1 1

>> [a,b]=eig(A)

Exerccio 2- Resolva o seguinte sistema de equaes lineares:

- 2 x1 , 1.5 x2 , x3 # 13.20 . / x1 , 6 x2 ( 2 x3 # 21.64 . 2 x2 , 4 x3 # 26.62 0

4.6. Trabalhando com matrizes + size Definio: Retorna as dimenses de uma matriz matriz. Sintaxe: [m,n] = size(A) " Retorna Retorna, em m, o nmero de linhas e, em n, o nmero de colunas da matriz A.
>> A=[1 1; 2 3]; >> [m,n]=size(A) m = 2 n = 2

+ find Definio: Procura os elementos em uma matriz de tal modo a respeitar a lgica fornecida, retornando os ndices que descrevem estes elementos. Sintaxe: Pgina 14 de 93

Apostila de MATLAB 7.3 ind = find(X) " Retorna os ndices dos elementos no-nulos nulos na matriz X. [row,col] = find(X, ...) " Retorna, em row, uma matriz coluna com os ndices das linhas dos elementos lementos da matriz X e, em col, a matriz coluna contendo os ndices correspondentes s col colunas unas dos elementos da matriz X. [row,col,v] = find(X, ...) " Retorna, em row, uma matriz coluna com os ndices das linhas dos elementos lementos da matriz X e, em col, a matriz coluna contendo os ndices que descrevem as colunas dos elementos da matriz X e, em v, a matriz contendo os elementos de X.
A=[1 1; 0 3]; >> find(A) ans = 1 3 4 >> X = [3 2 0; -5 5 0 7; 0 0 1]; >> [r,c,v] = find(X>2 >2); >> [r c] ans = 1 2 1 3

Veja no ultimo caso acima que r e c retornam em os ndices das linhas e das colunas correspondentes aos elementos que respeitam a expresso oferecida. Obviamente, os elementos a11 e a23 so os nicos maiores que 2. + sort Definio: Retorna o vetor dado ou elementos de uma matriz em ordem crescente ou decrescente decrescente. Sintaxe: sort(A,dim) " Retorna os elementos das colunas (dim = 1) ou da linha (dim = 2) da matriz A em ordem crescente crescente.

Pgina 15 de 93

Apostila de MATLAB 7.3 sort(A,mode) " Retorna os elementos das colunas da matriz A em ordem crescente (mode = ascend) ou em ordem decrescente (mode = descend).
>> sort(A) ans = 1 2 1 4

+ fliplr Definio: Espelha as colunas de uma matriz matriz. Sintaxe: fliplr(A) " Espelha as colunas da matriz A.
>> A=[1 2;3 4] A = 1 3 ans = 2 4 1 3 2 4

>> fliplr(A)

+ flipud Definio: Espelha as linhas de uma matriz. Sintaxe: flipud(A) " Espelha as linhas da matriz A.
>> A=[1 2;3 4] A = 1 3 ans = 3 1 4 2 2 4

>> flipud(A)

Pgina 16 de 93

Apostila de MATLAB 7.3 Exerccio 3- Crie um vetor A de 50 elementos aleatrios eatrios e em seguida crie a partir deste, outro vetor B obedecendo aos seguintes critrios: a. Conter somente os elementos de A maiores que 0.5; b. Os elementos devem de B estar em ordem decrescente. Exerccio 4- Realize as seguintes operaes no MATLAB, a partir das matrizes dadas, e interprete o resultado.

15 8 6 2 3 4 A # 3 9 2 10 4 37 6 1 4 5 6

$7 % ' B#& &1 ' &6 * ' )

1 5.5 8.1 4.9 2 3 4 C # 3 2.1 7.4 9.2 4 3 4 5 1.3 4.5 3.8 6


d) e) f)
A: F

D # ! 4 1 0"

a) b) c)

E # det 7 A ( 9 I 8 com 9 # (6
F # A(1 B

BT : C
D:B

G # A\ B

Exemplo 1- Dado o circuito da Figura 4, , calcule as tenses nos ns 1 e 2:


R1 1 V1 10Vdc R2 5 R4 10 I1 2Adc R3

Figura 4 Exemplo de circuito eltrico.

1 :v R i # G :v i# 11 1 1 1 10 2 3 , , 3 1 4 # 31 5 2 3 4 3 (1 5 26 3 2 5 G (1 : i # G (1 : G : v v # G (1 : i (1 2 2 4 1 v1 2 4:3 4 1 1 4 5 v2 6 , 4 2 10 6

Pgina 17 de 93

Apostila de MATLAB 7.3


>> i=[10/1 ; 2] i = 10 2 >> G=[1/1+1/5+1/2 -1/2 1/2 ; -1/2 1/2+1/10 ] G = 1.7000 -0.5000 0.5000 >> v=inv(G)*i v = 9.0909 10.9091 -0.5000 0.5000 0.6000

Os resultados obtidos podem ser confirmados por intermdio da Figura 5.


11.0V

10.5V

10.0V

9.5V

9.0V 0s 0.1ms 0.2ms V(R2:1) V(R4:1) 0.3ms 0.4ms 0.5ms Time 0.6ms 0.7ms 0.8ms 0.9ms 1.0ms

Figura 5 Formas de onda das tenses dos ns 1 e 2.

Pgina 18 de 93

Apostila de MATLAB 7.3 5. VETORES

5.1. Declarao possvel trabalhar com vetores no MATLAB MATLAB, , cuja representao feita baseando-se se numa matriz linha. Por exemplo, para obter o vetor (1,3,8), basta iniciarmos com:
>> R=[1 3 8] R = 1 3 8

Portanto, todas as operaes se tornam possveis a partir do uso de funes apropriadas. importante portante salientar que certas funes exigem a declarao de vetores por matriz coluna, entretanto, nada que uma consulta no help para ajudar. Uma operao bsica com vetores na determinao do nmero de elementos, a partir da funo length, assim como no clculo do seu mdulo, usando a funo norm, ambas definidas abaixo. Logo depois, sero dadas algumas funes que trabalham com vetores. + length Definio: Retorna o nmero de elementos que compem o vetor. vetor Sintaxe: length (A) " Calcula o numero de termos do vetor A.
>>A=[8 9 5 7]; >> length(A) ans = 4

+ norm Definio: Retorna o mdulo do vetor. Sintaxe: norm(A) " Calcula o mdulo do vetor A. Pgina 19 de 93

Apostila de MATLAB 7.3

>> x = [0 5 1 7]; >> sqrt(0+25+1+49) ans = 8.6603 >> norm(x) % Usando norm ans = 8.6603 % Forma Euclidiana

5.2. Operaes Quando se deseja calcular o produto vetorial (ou cruzado) de vetores, utiliza-se a funo cross, apresentada a seguir: + cross Definio: Calcula o produto vetorial entre A e B. Sintaxe: C = cross(A,B) " Retorna, em C, o produto vetorial dos vetores tridimensionais A e B. De modo anlogo, define define-se a funo dot como a responsvel pelo produto escalar de dois vetores dados, conforme definio a seguir. + dot Definio: Determina o produto escalar entre dois vetores. Sintaxe: C = dot(A,B) " Retorna, em C, o produto escalar dos vetores n-dimensionais dimensionais A e B.
>> a = [1 7 3]; >> b = [5 8 6]; >> c = cross(a,b) >> d = dot(a,b)

Alm disso, , qualquer outra operao possvel, como soma e subtrao, mas se deve atentar entar-se se ao fato de que ambos os vetores devem possuir a mesma dimenso.

Pgina 20 de 93

Apostila de MATLAB 7.3 Dando continuidade, sero definidas algumas funes que podero ser teis quando se trabalha com vetores ou at mesmo com matrizes. + min Definio: Retorna os valores mnimos de um vetor etor ou o das colunas colun de uma matriz. Sintaxe: min(A) " Retorna em um vetor linha os menores valores de cada linha da matriz A. min(A,B) " Retorna uma matriz com os menores valores de cada posio correspondente de ambas as matrizes [a,b]=min(A) " Retorna Retorna, em a, os menores valores de cada coluna e, e em b, a posio dos mesmos nas suas respectivas colunas colunas.
>> A=[1 4 5; 2 4 -2; 2; 78 2 1] A = 1 2 78 a = 1 b = 1 3 2 2 -2 4 4 2 5 -2 1

>> [a,b]=min(A)

+ max Definio: Retorna os valores mximo mximos de um vetor ou o das colunas colun de uma matriz. Sintaxe: max(A) " Retorna em um vetor linha os maiores valores de cada linha da matriz A. max(A,B) "Retorna uma matriz com os maiores valores de cada posio correspondente de ambas as matrizes matrizes. [a,b]=max(A) " Retorna Retorna, em a, os maiores valores de cada coluna e, e em b, a posio dos mesmos nas suas respectivas colunas colunas.

Pgina 21 de 93

Apostila de MATLAB 7.3

>> A=[1 4 5; 2 4 -2; 2; 78 2 1] A = 1 2 78 4 4 2 5 -2 1

>> [a,b]=max(A) a = 78 b = 3 1 1 4 5

+ sum Definio: Calcula o somatrio dos elementos de um vetor ou o somatrio das colunas de uma matriz. Sintaxe: sum(A) " Retorna etorna a(o) soma/produto dos elementos de um vetor ou a(o) soma/produto das colunas de uma matriz
>> sum(A) ans = 3 8

+ prod Definio: Calcula o produtrio dos elementos ntos de um vetor ou o produtrio das colunas de uma matriz. Sintaxe: prod(A) " Retorna etorna a(o) soma/produto dos elementos d do vetor A ou a(o) soma/produto das colunas da matriz A.
>> prod(A) ans = 2 16

Pgina 22 de 93

Apostila de MATLAB 7.3 Exerccio 5- Os s trs vrtices de um tringulo esto em A (6,-1,2), B (-2,3,-4) ( e C (-3,1,5). Determine o vetor unitrio perpendicular ao plano no qual o tringulo est localizado. Tambm determine o ngulo
BAC

no vrtice A.

Exerccio 6- Declare a matriz X no MATLAB e determine:

$ 6 2 45% ' X #& &65 32 9 ' & ) 3 (8 1 ' *


a. Um vetor Y que tenha o valor mnimo das trs primeiras colunas; b. A soma dos elementos de Y; c. Um vetor Z que tenha o valor mximo das trs primeiras linhas; d. O produtrio dos elementos do vetor Z; e. Calcule o mdulo dos elementos de cada linha linha.

5.3. Sistemas de Coordenadas Existem funes, no MATLAB MATLAB, que possibilitam as transformadas de coordenadas, conforme listadas a seguir: + cart2pol Definio: Converte do cartesiano para o polar/cilndrico. Observe a Figura 6. Sintaxe: [theta,rho,z] = cart2pol(x,y,z) " Converte o ponto de coordenadas cartesianas (x,y,z) para coordenadas cilndricas (theta,rho,z). [theta,rho] = cart2pol(x,y) " Converte o ponto de coordenadas cartesianas (x,y) para coordenadas polares (theta,rho).

Pgina 23 de 93

Apostila de MATLAB 7.3

Figura 6 Transformao entre coordenadas cartesianas e polares/cilndricas.

+ pol2cart Definio: Converte do sistema de coordenadas polares/cilndric /cilndricas para o sistema cartesiano. Sintaxe: [x,y] = pol2cart(theta,rho) " Converte o ponto de coordenadas polares (theta,rho) para coordenadas cartesianas (x,y). [x,y,z] = pol2cart(theta,rho,z) " Converte o ponto de coordenadas cilndricas (theta,rho,z) para coordenadas cartesianas (x,y,z). + cart2sph Definio: Transforma do sistema de coordenadas cartesianas as para o sistema de coordenadas esfric esfricas. Observe a Figura 7. Sintaxe: [theta,phi,r] = cart2sph(x,y,z) " Converte o ponto de coordenadas cartesianas (x,y,z) para coordenadas esfricas (theta,phi,r).

Figura 7 Transformao entre coordenadas cartesianas e esfricas.

Pgina 24 de 93

Apostila de MATLAB 7.3 + sph2cart Definio: Transforma do sistema de coordenadas esfricas as para o sistema de coordenadas cartesian cartesianas. Sintaxe: [x,y,z] = sph2cart(theta,phi,r) " Converte o ponto de coordenadas esfricas (theta,phi,r) para cartesianas (x,y,z). Um exemplo para o uso destas funes na utilizao das equaes de potenciais eltricos para determinadas distribuies de carga que so simtricos a um sistema de coordenadas. Vejamos o exemplo abaixo. Exemplo 2- Um dipolo eltrico formado colocando uma carga de 1nC em (1,0,0) e uma outra carga de -1nC em (-1,0,0). Determine as linhas equipotenciais potenciais geradas a partir dessa configurao configurao.
>> [x,y,z] = meshgrid( meshgrid(-0.5:.012:0.5); >> [teta,fi,r] = cart2sph(x,y,z); v = (1e-9*0.2*cos(teta))./(4.*pi.*8.85e 9*0.2*cos(teta))./(4.*pi.*8.85e-12.*r.^2); >> contourslice(x,y,z,v,[ contourslice(x,y,z,v,[-0.5:0.5],[-0.5:0.5],[-0.5:0.5]); 0.5:0.5]); >> colormap hsv
0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 -0.5 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5

Figura 8 Linhas equipotenciais.

Pgina 25 de 93

Apostila de MATLAB 7.3

6. M-FILE

6.1. Definio O M-File File uma ferramenta do MATLAB que auxilia a criao de funes. Atravs dela podemos definir o nome da funo, suas entradas e sadas. Para criar um novo M M-file deve-se clicar em File declarao inicial a seguinte:
function [saida1, 1, saida2, ...] = nome(entrada1, entrada2, ...) %declarao do cdigo ...

-File. A

Exemplo:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Funo exemplo vetor2 = vetor multiplicado por 2 % % % % % % A funo recebe um vetor qua qualquer e retorna dois valores: % e v1 = o valor do primeiro elemento do vetor

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% function [vetor2, v1]= funcao(vetor) vetor2=vetor*2; %multiplica o vetor por 2

Pgina 26 de 93

Apostila de MATLAB 7.3


v1=vetor(1); entrada %retorna o primeiro elemento do vetor de

Para chamar a funo basta digitar na janela de comando o nome da funo com as entradas entre parnteses. Lembrar de salvar o M-File File com o mesmo nome da funo!! Na janela de comandos do MATLAB podemos colocar um vetor como exemplo:
>> A=[2 A = 2 x = 4 y = 2 10 -16 16 8 2 12 5 -8 8 4 1 6 >> [x,y]=funcao(A) 5 -8 8 4 1 6]

6.2. Organizao Para uma melhor organizao podemos fazer comentrios utilizando o smbolo %, ou selecionando o texto inteiro e teclando Crtl+R, ou %{ para abrir o comentrio por bloco e %} para fechar. Podemos ainda utilizar o smbolo %% para que, no mesmo M M-File, o usurio possa rodar apenas algumas partes do programa. Para rodar somente a parte selecionada, tecle Ctrl+Enter e para rodar o programa inteiro clique em F5 ou em:

Exemplo:

Pgina 27 de 93

Apostila de MATLAB 7.3

Ao teclar Ctrl+Enter rl+Enter somente a Primeira Parte ser executada

7. FUNES MATEMTICAS

7.1. Funes Elementares O MATLAB contm um conjunto de funes que executam algumas funes matemticas elementares, como mdulo e raiz quadrada. A seguir disponibilizaremos uma lista de fun funes com uma breve descrio:

Funo log(X) log10(X) log2(X) exp(X) sqrt(X)

Descrio Determina o logaritmo natural de X Determina o logaritmo de X na base 10 Calcula o logaritmo de X na base 2 Determina a expresso de eX Retorna a raiz quadrada de X

7.2. Propriedades Fundamentais O MATLAB possui tambm funes que possibilitam os clculos elementares de matemtica, tais como mmc, mdc e entre outros. Por exemplo, as funes gcd e lcm retornam o mximo divisor comum e o mnimo mltiplo comum, respectivamente. Vejamos abaixo essas e outras funes similares: Pgina 28 de 93

Apostila de MATLAB 7.3

+ gcd Definio: Determina o mximo divisor comum entre dois parmetros. Sintaxe: G = gcd(A,B) " Retorna, em G, o mximo divisor comum entre A e B. + lcm Definio: Determina o mnimo mltiplo comum entre dois parmetros. Sintaxe: G = lcm(A,B) " Retorna, em G, o mnimo mltiplo comum entre A e B. + factorial Definio: Retorna o fatorial de um argumento. Sintaxe: factorial(N) " Calcula o fatorial de N. + nchoosek Definio: Desenvolve a fatorao binomial.Sintaxe: C = nchoosek(n,k) " Retorna o nmero de combinaes de n tomada k a k. + primes Definio: Devolve uma lista com uma quantidade desejada de nmeros primos. Sintaxe: p = primes(n) " Devolve uma lista com n de nmeros primos. + mod Definio: Calcula a congruncia entre dois argumentos. Sintaxe: M = mod(X,Y) " Retorna, em M, a congruncia entre os argumentos X e Y.

Pgina 29 de 93

Apostila de MATLAB 7.3 + rem Definio: Determina o resto da diviso de dois argumentos. Sintaxe: R = rem(X,Y) " Retorna, em R, o resto da diviso de X por Y. + perms Definio: argumentos dados. Sintaxe: P = perms(v) " v pode ser uma matriz com os nmeros nos quais deseja permut-los. Desenvolve todas as permutaes possveis dos

7.3. Nmeros Complexos O MATLAB proporciona um conjunto de funes que auxilia o manuseio de nmeros complexos complexos. Inicialmente, para definir um nmero complexo utilizam-se se os operadores i e j (voltado mais para a engenharia). Por exemplo, para definir a=5+8i , faz-se:
>> X=2+3i X = 2.0000 + 3.0000i >> Y=2+3j Y = 2.0000 + 3.0000i

H outra forma de definir um nmero complexo no MATLAB, atravs da funo complex. A sua vantagem est na maior liberdade que se tem para alterar a parte imaginria, real, mdulo ou at mesmo a fase do nmero, no ponto de vista computacional. . A de definio finio dessa funo descrita como: + complex Definio: Retorna um nmero complexo a partir da sua parte real e da sua parte imaginria. Sintaxe: Pgina 30 de 93

Apostila de MATLAB 7.3 c = complex(a,b) " Retorna, em c, o nmero complexo de parte real a e parte imaginria b. Quando se deseja trabalhar com mdulo, ngulo de fase, conjugado, ou entre outros, tornam-se se fceis de serem calculados quando se utiliza a funo adequada. Na Tabela 2 sero denotadas algumas funes que possibilitam isso.
Tabela 2 Funes com nmeros complexos.

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

7.4. Funes Trigonomtricas Quando trabalhamos com trigonometria, o MATLAB dispe de funes que operam neste ramo matemtico. Tabela 3 resume bem algumas funes que possuem este fim.
Tabela 3 Funes trigonomtricas.

Funo cos(X) sin(X) tan(X) sec(X) csc(X) cot(X)

Descrio Cosseno do argumento X em radianos Seno do argumento X em radianos Tangente do argumento X em radianos Secante do argumento X em radianos Cossecante do argumento X em radianos Cotangente do argumento X em radianos

Pgina 31 de 93

Apostila de MATLAB 7.3 Veja acima que estas funes retornam um valor correspondente a um argumento em radianos. Quando for desejado entrar com um argumento em grau, basta utilizar o sufixo d em cada funo. Por exemplo, o seno de 30:
>> sind(30) ans = 0.5000

Entretanto, quando deseja calcular o arco correspondente a um valor pra uma dada funo, basta utilizar o prefixo a diante as funes. Como exemplo, determinemos o arco arco-tangente de 1 em radianos:
>> atan(1) ans = 0.7854

Caso queiramos saber em grau, faramos:


>> atand(1) ans = 45

Por fim, quando se deseja determinar a funo hiperblica, basta utilizar o sufixo h na funo dada. Vejamos no comando a seguir:
>> cosh(3) ans = 10.0677

De fato, o resultado coerente, pois:


>> (exp(3)+exp(-3))/2 3))/2 ans = 10.0677

Pgina 32 de 93

Apostila de MATLAB 7.3 A Tabela 4 resume bem o uso de sufixo e prefixo nas funes trigonomtricas:
Tabela 4 Uso de sufixo e prefixo nas funes trigonomtricas.

Prefixo a -

Sufixo d h

Descrio Determina o arco de um valor Determina com um argumento em graus Determina a funo hiperblica

Exemplo atan cosd sinh

7.5. Aproximao Inteira Na biblioteca de funes do MATLAB, h uma variedade que trabalha no intuito do arredondamento de nmeros. Indubitavelmente, a mais importante a round, que arredonda para o inteiro mais prximo. Obviamente, esta importncia depende do ambiente prtico no qual a funo est sendo submetida. Abaixo segue uma lista de funes que tratam com aproximaes numricas. + round Definio: Arredonda os elementos de uma matriz ou de um vetor para o inteiro mais prximo desses elementos. Tambm vlido para nmeros complexos. Sintaxe: Y = round(X) " Retorna, em Y, os inteiros mais prximos dos elementos de X. + ceil Definio: Arredonda os elementos de uma matriz ou de um vetor para o inteiro imediatamente maior que os respectivos elementos . Sintaxe: B = ceil(A) " Retorna, em B, os inteiros imediatamente maiores que os elementos de A.

Pgina 33 de 93

Apostila de MATLAB 7.3

+ floor Definio: Arredonda os elementos de uma matriz ou de um vetor para o inteiro imediatamente menor que os respectivos elementos. Sintaxe: B = floor(A) " Retorna, em B, os inteiros imediatamente menores que os elementos de A. + fix Definio: Arredonda os elementos de uma matriz ou de um vetor para o inteiro mais prximo de tal modo que esteja em direo ao zero. Sintaxe: B = fix(A) " Retorna, em B, os inteiros mais prximos, ximos, em direo ao zero, dos elementos de A.

Pgina 34 de 93

Apostila de MATLAB 7.3 8. GRFICOS

8.1. Grficos Bidimensionais + ezplot Definio: Plota a expresso simblica


f ( x) no domnio padro

(2; < x < 2; . Observe a Figura 9.


Sintaxe: ezplot(f) " Plota a expresso f ( x) .
>> ezplot('sin(x)')

sin(x) 1 0.5 0 -0.5 -1 -6 -4 -2 0 x 2 4 6

Figura 9 Grfico sin(x) gerado pela funo ezplot.

+ plot Definio: Plota as colunas de um vetor versus os ndices de cada elemento, se o vetor for real. Se for complexo, plota a parte real pela parte imaginria de cada elemento. . Observe a Figura 10. Sintaxe: plot(X) " Se X for real, plota as colunas de X pelos ndices de cada elemento. plot(X) " Se X for complexo, plota a parte real pela parte imaginria de cada elemento. equivalente a plot(real(X),imag(X)). plot(X,Y) " Plota os elementos de X pelos de Y.
>> t = 0:pi/50:10*pi; >> plot(t,sin(t))

Pgina 35 de 93

Apostila de MATLAB 7.3


1

0.5

-0.5

-1

10

20

30

40

Figura 10 Grfico sin(t) gerado pela funo plot.

+ line Definio: Cria uma linha no grfico atual. Observe a Figura 11. 11 Sintaxe: line(X,Y) " Cria uma linha definida nos vetores X e Y no grfico atual. line(X,Y,Z) " Cria uma linha no espao tridimensional.
>> x=-2:0.01:5; >> line(x,exp(x))

150

100

50

0 -2

0
x

Figura 11 Grfico e gerado pela funo line.

Pgina 36 de 93

Apostila de MATLAB 7.3 + stem Definio: Plota uma seqncia de dados discretos. Observe a Figura 12. Sintaxe: stem(Y) " Plota a seqncia de dados do vetor Y em um domnio discreto ao longo do eixo-x. stem(X,Y) " Plota X em funo de Y em um domnio discreto. X e Y devem ser vetores ou matrizes izes de mesmo tamanho.
>> x=-4:4; >> y=exp(x); >> stem(x,y)
60

50

40

30

20

10

0 -4

-3

-2

-1

Figura 12 Grfico e gerado pela funo stem.

+ compass Definio: Plota vetores de componentes cartesianas a partir da origem de um grfico polar. Observe a Figura 13. Sintaxe: compass(U,V) " Plota o vetor de componentes cartesianas U e V partindo da origem do grfico polar.
>> compass(2,3)

Pgina 37 de 93

Apostila de MATLAB 7.3

120 150 180

90 4 2

60 30

0 330 240 270 300

210

Figura 13 Grfico polar gerado pela funo compass.

+ quiver Definio: Plota vetores de componentes cartesianas de acordo com posio e mdulo definidos pelo usurio. Observe a Figura 13. Sintaxe: quiver(x,y,u,v,scale) " Plota um vetor com origem nos pontos x e y mdulo proporcional hipotenusa dos catetos u e v. Na varivel scale o usurio pode definir a proporo do mdulo do vetor com as variveis u e v. Para scale igual a 0, a proporo ser de 1:1. Veja os exemplos na Figura 14 e .
>> x=[1 2 3]; >> y=[3 4 7]; >> u=[-1 -1 -1]; >> v=[1 1 1]; >> quiver(x,y,u,v,0) >> grid on

Pgina 38 de 93

Apostila de MATLAB 7.3


8 7.5 7 6.5 6 5.5 5 4.5 4 3.5 3 0 0.5 1 1.5 2 2.5 3

Figura 14 - Grfico de vetores gerado pela funo quiver

>> x=[1 2 3]; >> y=[3 4 7]; >> u=[-1 1 -1]; >> v=[1 -1 1]; >> quiver(x,y,u,v,0) >> grid on

0.5

1.5

2.5

Figura 15 - Grfico gerado pela funo quiver com algumas variaes nas variveis dos mdulos dos vetores

Pgina 39 de 93

Apostila de MATLAB 7.3 8.2. Grficos Tridimensionais + ezplot3 Definio: Plota uma curva espacial de trs equaes paramtricas no domnio padro 0 < t < 2; . Observe a Figura 16. Sintaxe: ezplot3(x,y,z) " Plota a curva paramtrica x # x(t ) , y # y (t ) e z # z (t ) .
>> ezplot3('cos(t)','sin(t)','t')

x = cos(t), y = sin(t), z = t

10

0 1 0 y -1 -1 x 0

Figura 16 Grfico cos(t), sin(t), t gerado pela funo ezplot3.

+ plot3 Definio: Plota tridimensionalmente um grfico. Observe a Figura 17. Sintaxe: plot(X,Y,Z) " Plota uma ou mais linhas no espao tridimensional atravs de pontos cujas coordenadas so elementos dos vetores ou matrizes X,Y e Z.
>> t = 0:pi/50:10*pi; >> plot3(cos(t),sin(t),t) s(t),sin(t),t)

Pgina 40 de 93

Apostila de MATLAB 7.3


40

20

0 1 0 -1 -1 0

Figura 17 Grfico cos(t), sin(t), t gerado pela funo plot3.

+ ezsurf Definio: Plota a superfcie de um grfico de uma funo de duas variveis no domnio padro (2; < x < 2; e (2; < y < 2; . Observe a Figura 18. Sintaxe: ezsurf(X,Y,Z) " Plota a superfcie paramtrica x # x 7 s, t 8 , y # y 7 s, t 8 e

z # z 7 s, t 8 no domnio (2; < s < 2; e (2; < t < 2; .


>> ezsurf('1/sqrt(x^2 + y^2)')

1/sqrt(x2 + y 2)

10

0 5 0 y
Figura 18 Superfcie

-5

0 -5 x

1 x , y2
2

gerada pela funo ezsurf.

+ meshgrid Definio: Prepara a criao de uma superfcie de um grfico tridimensional. Sintaxe:

Pgina 41 de 93

Apostila de MATLAB 7.3 [X,Y] = meshgrid(x,y) " Transforma o domnio nio especificado pelos vetores x e y em matrizes de vetores X e Y, as quais podem ser usadas para preparar a plotagem de superfcie de um grfico tridimensional de uma funo de duas variveis.
>> [X,Y]=meshgrid(-6:0.1:6, 6:0.1:6,-6:0.1:6); >> Z=1./(sqrt(X.^2+Y.^2));

+ surf Definio: Plota a superfcie de um grfico de uma funo de duas variveis cujo domnio determinado pelo usurio usurio. Observe a Figura 19. 19 Sintaxe: surf(X,Y,Z) " Plota a superfcie paramtrica de Z em funo de X e Y.
>> surf(X,Y,Z)

10

0 4 4 2 0 -2 -4 -6 -6 -4 -2 2 0

Figura 19 Superfcie

1 x2 , y2

gerada pela funo ezsurf.

Pgina 42 de 93

Apostila de MATLAB 7.3 8.3. Configurao + text Definio: Cria objetos de texto em locais especficos do grfico. Observe a Figura 20. Sintaxe: text(x,y,string) " Escreve string no local (x,y). Pode-se se modificar string das mais diversas formas.
>> plot(0:pi/20:2*pi,sin(0:pi/20:2*pi)) >> text(pi,0,' \leftarrow leftarrow sin( sin(\pi)','FontSize',18)

0.5

= sin(;)

-0.5

-1

Figura 20 Grfico sin(x) gerado pela funo plot com texto gerado pela funo text.

+ title Definio: D um ttulo ao grfico. Observe a Figura 21. Sintaxe: title(string) " D o ttulo string ao grfico atual.
>> compass(2,3) >> title('Grfico Polar')

Pgina 43 de 93

Apostila de MATLAB 7.3


Grfico Polar 90 4 120 60 150 180 210 240 270 300 2 30 0 330

Figura 21 Grfico polar gerado pela funo compass com ttulo gerado pela funo title.

+ axis Definio: Determina os limites dos eixos coordenados X, Y e Z. Observe a Figura 22. Sintaxe: axis([xmin xis([xmin xmax ymin ymax zmin zmax]) " define o eixo X de xmin a xmax, o eixo Y de ymin a ymax e o eixo Z de zmin a zmax.
>> t = 0:pi/50:10*pi; >> > plot3(cos(t),sin(t),t) >> axis([-1.5 1.5 -1.5 1.5 1.5 -1 34])

30 20 10 0 1 0 -1 -1 0 1

Figura 22 Grfico cos(t), sin(t), t gerado pela funo plot3 com eixos ajustados pela funo axis.

Pgina 44 de 93

Apostila de MATLAB 7.3 + grid Definio: Adiciona ou remove as linhas de grade em um grfico. Observe a Figura 23. Sintaxe: grid on " Adiciona as linhas de grade em um grfico. grid off " Remove as linhas de grade em um grfico.
>> t = 0:pi/50:10*pi; >> plot3(cos(t),sin(t),t) >> grid on

40

20

0 1 0 -1 -1 0

Figura 23 Grfico cos(t), sin(t), t gerado pela funo plot3 com linhas de grade geradas pela funo grid.

+ hold Definio: Determina se objetos so adicionados ao grfico ou se substituem o existente. Observe a Figura 24. Sintaxe: hold on " Adiciona objetos no mesmo grfico hold off " Substitui os objetos existentes em um grfico pelos atuais.
>> x=-6:0.01:6; >> y=sin(x); >> plot(x,y) >> hold on >> t=-6:0.01:2; >> k=exp(t); >> plot(t,k)

Pgina 45 de 93

Apostila de MATLAB 7.3


8 6 4 2 0 -2 -6

-4

-2
x

Figura 24 Grficos sin(x) e e gerados pela funo plot e ezplot respectivamente e colocados na mesma janela de grfico pela funo hold.

+ legend Definio: Adiciona uma legenda ao grfico. Observe a Figura 25. 25 Sintaxe: legend(string1,string2) (string1,string2) " Adiciona as legendas string1 e string2 ao grfico atual.
>> x=-6:0.01:6; >> y=sin(x); >> plot(x,y) >> hold on >> t=-6:0.01:2; >> k=exp(t); >> plot(t,k,'k') >> legend('Grfico 1: y=sen(x)','Grfico 2: y=exp(x)')

Pgina 46 de 93

Apostila de MATLAB 7.3


8 6 4 2 0 -2 -6 Grfico 1: y=sen(x) Grfico 2: y=exp(x)

-4

-2
x

Figura 25 Grficos sin(x) e e gerados pela funo plot com legenda.

+ xlabel, ylabel, zlabel Definio: D um ttulo aos eixos X, Y e Z. Observe a Figura 26. 26 Sintaxe: xlabel(string) " D o ttulo string ao eixo X. ylabel(string) " D o ttulo string ao eixo Y. zlabel(string) " D o ttulo string ao eixo Z.
>> t = 0:pi/50:10*pi; >> plot3(cos(t),sin(t),t) >> xlabel('x=cos(t)') >> ylabel('y=sin(t)') >> zlabel('z=t')

40

z=t

20

0 1 0 y=sin(t) -1 -1 0 x=cos(t)

Figura 26 Grfico cos(t), sin(t), t gerado pela funo plot3 com ttulos nos eixos coordenados.

Pgina 47 de 93

Apostila de MATLAB 7.3 + xlim, ylim, zlim Definio: Estipula os limites dos eixos X,Y e Z. Observe a Figura 27. Sintaxe: 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.
>> t = 0:pi/50:10*pi; >> plot3(cos(t),sin(t),t) >> xlim([-1.5 1.5]) >> ylim([-1.5 1.5]) >> zlim([-1 34])

30 20 10 0 1 0 -1 -1 0 1

Figura 27 Grfico cos(t), sin(t), t gerado pela funo plot3 com eixos ajustados pelas funes xlim, ylim e zlim.

+ figure Definio: Cria uma nova janela para plotar grficos. Sintaxe: figure " Abre uma nova janela de grfico, definindo definindo-a a como janela atual. + subplot Definio: Divide a janela do grfico em uma matriz definida pelo usurio, podendo trabalhar com qualquer um. Observe a Figura 28. Sintaxe:

Pgina 48 de 93

Apostila de MATLAB 7.3 h = subplot(m,n,p) ( ou subplot(mnp)) " Divide em m linhas, n colunas, plotando o grfico na posio p. Caso tenha uma matriz retangular, a contagem inicia-se no sentido anti-horrio horrio do grfico superior esquerdo. subplot(m,n,p,'replace') " Se o grfico j existe, deleta o grfico especificado, substituindo por outro grfico desejado.
>> subplot(2,1,1),ezplot('sin(x)') >> subplot(2,1,2),ezplot('exp(x)')

sin(x) 1 0.5 0 -0.5 -1 -6 -4 -2 0 x exp(x) 2 4 6

200

100

0 -4 -3 -2 -1 0 x
Figura 28 Janela de grfico dividida atravs da funo subplot.

possvel configurar as propriedades do grfico atravs da manipulao de uma varivel. Isso vivel quando armazena a plotagem em uma varivel, como no exemplo abaixo:
>> x=-6:0.01:6; >> y=sin(x); >> h=plot(x,y) h = 172.0143

Pgina 49 de 93

Apostila de MATLAB 7.3 As propriedades do grfico ficam armazenadas na varivel de objeto h. Assim, para configur-lo lo utiliza utiliza-se se a funo set, de acordo com o exposto abaixo: + set Definio: Configura as propriedades de objeto. Sintaxe: set(H,'PropertyName',PropertyValue,...) PropertyValue no objeto identificado identificador H.
Tabela 5 Propriedades de Grfico

"

configura

aspe aspecto

denotado por PropertyName (vide Tabela 5) para o valor especificado em

Propriedade FontName FontSize FontWeight FontAngle

Descrio Especifica a fonte do texto Determina o tamanho da fonte Altera a espessura do texto, como coloc coloc-lo lo em negrito Ajusta para fonte oblqua

HorizontalAlignment Especifica o alinhamento do texto Color Rotate BackgroundColor EdgeColor LineStyle LineWidth Marker MarkerEdgeColor MarkerFaceColor MarkerSize Relacionada cor Ajusta a orientao do texto Aplica uma cor em um retngulo que envolve o texto Cor da borda desenhada em torno do texto Especifica o estilo da linha Determine a espessura da linha Especifica o tipo de marcador para os pontos Ajusta a cor da borda do marcador Ajusta a cor de preenchimento do marcador Especifica o tamanho do marcador

Pgina 50 de 93

Apostila de MATLAB 7.3 A seguir dado um exemplo que possa contemplar o mximo de propriedades a fim de expor as suas aplicaes.
% Fazendo a formatao do grfico t = 0:1/20:2; h=plot(t,sin(2*pi*t)); set(h,'linewidth',2,'color','red','Marker','o','MarkerEdgeColor',... 'k','MarkerFaceColor',[.49 1 .63],'MarkerSize',12) grid on title('Grfico para exemplo','Fontsize',12,'Fontweight','bold',... 'BackgroundColor',[0.49 1 0.63]) xlabel('tempo (s)','Fontweight','bold','Fontsize',12) ylabel('f(t)=sin(2*\pi*t)','rotatio pi*t)','rotation',90,'Fontweight','bold',... n',90,'Fontweight','bold',... 'Fontsize',12)

Exerccio 7- Esboce as funes a seguir com os respectivos comandos e de acordo com cada item: Plot Ezplot stem

5sin 7 x 8

;2 1 4 sin 3 x , 4 36 5

3sin 7 2 x 8

a) Todas as funes no mesmo grfico; b) Cada ada funo em uma janela diferente; c) Todas as funes na mesma janela, mas em grficos diferentes.

Exemplo 3- Plotar a velocidade tangencial de um projtil em lanamento oblquo, , lanamento horizontal e queda livre no espao. Observe o grfico plotado do algoritmo abaixo na Figura 29.
%Rotina para plotar um grfico 3D da velocidade de um objeto lanado ao ar z0=0; vz=50; a=-10; t=0:1:10;

%velocidade %acelerao %amostra de tempo

Pgina 51 de 93

Apostila de MATLAB 7.3


z=z0+vz*t+(a*t.^2)/2 %velocidade no eixo-x vx=2; x=vx*t; %velocidade no eixo-y vy=3; y=vy*t; %Clculo dos gradientes u=gradient(x); v=gradient(y); w=gradient(z); scale=0.5; plot3(x,y,z,'o','markerfacecolor' 'markerfacecolor','b'); hold on quiver3(x,y,z,u,v,w,scale, quiver3(x,y,z,u,v,w,scale,'r') hold off grid on

140

120

100

80

60

40

20

-20 40 30 20 10 0 -10 -5 0 5 10 15 20 25

Figura 29 - Grfico de um projtil em lanamento oblquo

J a Figura 30 e a Figura 31, , comparam o movimento e velocidade de dois projteis em trajetrias diferentes: lanamento horizontal e queda livre.
%rotina para plotar um grfico 3D da velocidade de um objeto lanado horizontalmente ao ar e um em queda livre z0=0; vz=0; a=-10;

%velocidade %acelerao

Pgina 52 de 93

Apostila de MATLAB 7.3


t=0:1:10; %amostra de tempo z=z0+vz*t+(a*t.^2)/2 (a*t.^2)/2 %velocidade no eixo-x do lanamento oblquo vx=2; x=vx*t; %velocidade no eixo-y do lanamento oblquo vy=3; y=vy*t; %Clculo dos gradientes do lanamento oblquo u=gradient(x); v=gradient(y); w=gradient(z); scale=0.5; %Em queda livre xq=zeros(1,11) yq=ones(1,11)*20 uq=gradient(xq); vq=gradient(yq); plot3(x,y,z,'o','markerfacecolor' 'markerfacecolor','b'); hold on plot3(xq,yq,z,'o','markerfacecolor' 'markerfacecolor','b'); quiver3(x,y,z,u,v,w,scale, quiver3(x,y,z,u,v,w,scale,'r') quiver3(xq,yq,z,uq,vq,w,scale, quiver3(xq,yq,z,uq,vq,w,scale,'r') % hold off grid on

-100

-200

-300

-400

40 30

-500 20 -600 -10 -5 0 5 10 10 15 0 30

20

25

Figura 30 - Vista em 3 dimenses dos projteis em queda livre e lanamento horizontal

Pgina 53 de 93

Apostila de MATLAB 7.3

-100

-200

-300

-400

-500

-600 -10

-5

10

15

20

25

30

Figura 31 Vista na dimenso X X-Z dos projteis em queda livre e lanamento horizontal

Veja que os dois projteis esto mesma altura e com mesma velocidade na direo z independente do tipo de lanamento. Exemplo 4- Criao de arquivo em formato AVI. Observe as Figura 32 e Figura 33.
aviobj=avifile('Filme Seno.avi','fps',50); hold on; grid on; x=-4*pi:0.1:4*pi; for k=1:1:size(x,2)-1 xx=[x(k) x(k+1)] x(k+1)]; yy=[sin(x(k)) sin(x(k+1))]; h=plot(xx,yy); set(h,'EraseMode','xor'); axis ([-10 10 -1.5 1.5 1.5]); frame=getframe(gca); aviobj=addframe(aviobj,frame); end aviobj=close(aviobj); close(aviobj);

Pgina 54 de 93

Apostila de MATLAB 7.3

Figura 32 Janela de criao de arquivo em formato AVI do grfico sin(x).

aviobj=avifile('Complexo.avi','fps',50); hold off; grid on; t=0:0.01:4*pi; x=cos(t); y=sin(t); for k=1:1:length(t) c=x(k)+i*y(k); h=compass(c); set(h,'EraseMode','xor'); frame=getframe(gca); aviobj=addframe(aviobj,frame); end aviobj = close(aviobj);

Pgina 55 de 93

Apostila de MATLAB 7.3

Figura 33 Janela de criao de arquivo em formato AVI de grfico polar.

Pgina 56 de 93

Apostila de MATLAB 7.3 9. MATEMTICA ATEMTICA SIMBLICA

H, em algumas situaes, a necessidade de se trabalhar com variveis simbolicamente, pois possibilita uma viso mais geral sobre o resultado de um problema. Neste contexto, u uma ma funo importante a syms, que declara as variveis como simblica. Uma outra funo a sym, que transforma uma expresso para a forma literal. Mais detalhes dessas funes so dadas a seguir: + syms Definio: Determina que os argumentos acompanhados tero carter simblico . Sintaxe: syms arg1 arg2 ... + sym Definio: simblicos. Sintaxe: 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)

Definioi Definioine ne

variveis,

expresses e objetos como

Em alguns casos, quando se desejar determinar quais as variveis simblicas numa expresso, usa usa-se a funo findsym, que retorna os parmetros que so simblicos. Uma outra funo a subs, que substitui a varivel declarada inicialmente simblica por uma outra ou mesmo por um nmero. Suas Definioinies esto listadas abaixo: Pgina 57 de 93

Apostila de MATLAB 7.3 + findsym Definio: Determina as variveis simblicas em uma expresso. Sintaxe: findsym(S) findsym(S,n) + subs Definio: Substituio simblica em expresso simblica ou em matriz. Sintaxe: R = subs(S) R = subs(S, new) R = subs(S,old,new) Exemplo: Dado o procedimento abaixo:
y=3;w=30; syms a b n t x z f = x^n+y; g = sin(a*t + b) b)-cosd(w);

Determine os parmetros que so simblicos em f e em g, assim como, de acordo com a ordem das variveis simblicas que aparecer, substituir todos pelo valor 2,3 para f e 4,7,1 para g, respectivamente. Exerccio 8- Dado o procedimento abaixo:
y=3;w=30; syms a b n t x z f = x^n+y; g = sin(a*t + b) b)-cosd(w);

Determine os parmetros que so simblicos em f e em g. Substitua, em f, x por 2 e y por 3, e em g, a por 4, t por 7 e b por 1.

Pgina 58 de 93

Apostila de MATLAB 7.3 10.OPERAES PERAES MATEMTICAS BSICAS

10.1. Expresses Numricas Uma curiosidade que o MATLAB dispe de um conjunto de funes que contribuem para a fatorao, expanso, simplificaes e entre outros. O quadro abaixo resume bem cada funo.

Funo collect expand horner factor simplify compose finverse

Definio Reescreve a expresso como um polinmio Expande a expresso em produtos e somas Determina o fator em comum da expresso Fatora o polinmio, se os coeficientes so racionais Simplifica as expresses, de forma mais geral. Calcula a composio das funes Encontra a inversa funcional da funo

O uso dessas funes bastante semelhante, por exemplo, dada a expresso:

x 7 x 7 x ( 6 8 , 118 ( 6
Para agrup-la la de tal modo que possa ter uma organizao em relao ao grau do polinmio, faz-se:
>> syms x >> collect(x*(x*(x-6)+11) 6)+11)-6) ans = -6+x^3-6*x^2+11*x

Exerccio 9- Verifique a relao trigonomtrica fundamental utilizando a funo simplify, , logo aps, determine a forma expandida de tan( x , y ) .

Pgina 59 de 93

Apostila de MATLAB 7.3 Exerccio 10- Dado o polinmio

f ( x ) # 2x 2 , 3 x ( 5
(a)

g( x ) # x 2 ( x , 7 .
(b) f 7 g 7 x 8 8

Determine os s seguintes polinmios:

10.2. Polinmios Agora trataremos com os polinmios. Para definir um polinmio no MATLAB, basta entrar com uma matriz linha, nos quais os elementos dela representam os coeficientes do maior para o menor grau. Por exemplo, o
8 4 polinmio 5 x3 ( 9 x 2 , x , representa representado como p=[5 -9 9 8/5 4/7]. bom 5 7

lembrar que o polinmio pode ter elementos irracionais como, por exemplo, ou ; .

As principais funes destinadas para os polinmios so descritas a seguir. + poly Definio: Determina os coeficientes do polinmio a partir de suas razes. Caso a entrada seja uma matriz, este calcula o polinmio caracterstico da matriz. Sintaxe: p = poly(A) p = poly(r)
>> y=[-2 -1] y = -2 z = 1 A = 1 0 2 >> poly(A) 5 -2 11 3 9 -1 %calcula o seu polinmio cara caracterstico 3 2 %Declara matriz -1 %z o polinmio mio (x+2)(x+1)=x!+3x+2 %que tem como razes -2 e -1 >> z=poly(y) % Declara um vetor linha [-2 -1]

>> A=[1 5 3; 0 -2 2 9; 2 11 -1]

Pgina 60 de 93

Apostila de MATLAB 7.3


ans = 1.0000 2.0000 -106.0000 -5.0000

+ roots Definio: Retorna um vetor coluna com a(s) raiz(es) do polinmio fornecido. Sintaxe: r = roots(c)
>> c=[1 3 2] c = 1 e -1 %Observe a oposio entre as funes roots e poly x = -2 -1 3 2 %Calcula as ra razes zes desse polinmio, que so -2 >> x=roots(c) % declara um vetor correspondente ao polin polinmio

% x!+3x+2

+ polyval Definio: Determina o valor do polinmio para uma determinada entrada. Se a entrada for um uma a matriz, a funo retorna o valor do polinmio para cada elemento. Sintaxe: y = polyval(p,X) " y receber os valores do polinmio desenvolvido para cada elemento da matriz X.
>> polinomio=[1 5 -2 2 8 3.2] polinomio = 1.0000 a = 1.0000 3.0000 valores = -1.0000 1.0000 2.8300 5.0000 -2.0000 8.0000 3.2000 >> a=[1 -1; 3 2.83] %polinmio=x4+5x3-2x 2x!+8x+3.2

>> valores=polyval(polinomio,a)

Pgina 61 de 93

Apostila de MATLAB 7.3


15.2000 225.2000 -10.8000 10.8000 187.2906

%valores(1,1)= a(1,1)4+5a(1,1)3-2 a(1,1)!+8 a(1,1)+3.2

+ polyfit Definio: Determina o polinmio interpolador com os pontos dados por x e y com o grau n. Os coeficientes so retornados numa matriz linha. Sintaxe: p = polyfit(x,y,n)
>> x=[0: 0.1: 2.5]; >> y=sqrt(x); >> polinomio_interpolador= polinomio_interpolador=polyfit(x,y,3); >> pontos_interpoladores=polyval(polinomio_interpolador,x) pontos_interpoladores=polyval(polinomio_interpolador,x); >> plot(x,y,'color','r') >> hold on >> plot(x,pontos_interpoladores)

Exerccio 11- So dados os pontos (1; (1;-1), (2;-7), (5;-8) e (8;10). (a) Determine o polinmio mio que interpola estes pontos; (b) Calcule as suas razes azes e o esboce em um grfico; (c) Destaque o ponto no qual se tem o valor do polinmio para x # 3 .

10.3. Soluo de Equaes quaes ou Sistemas Quando voc tiver um emaranhado de equaes, resultando em um sistema, o MATLAB poder ser uma tima soluo. Ao utilizar a funo solve, voc ser capaz de economizar tempo e evitar resolver um tedioso sistema braalmente. A declarao desta funo segue abaixo:

Pgina 62 de 93

Apostila de MATLAB 7.3 + solve Definio: Determina o valor do polinmio para uma determinada entrada. Quando a soluo armazenada em uma varivel, o retorno dado em uma estrutura de dados. Sintaxe: solve(eq) " Resolve a equao eq=0 solve(eq,var) " Determina as solues de eq=0, em funo da varivel var. solve(eq1,eq2,...,eqn) " Resolve um sistema de equaes definidas. g = solve(eq1,eq2,...,eqn,var1,var2,...,varn) " Calcula as solues de um sistema de solues em funo das variveis pr pr-definidas. Partindo para um mbito mais complexo, quando se trata de equaes diferenciais, a funo destinada para este caso a dsolve, definida abaixo: + dsolve Definio: Soluciona simbolicamente uma equao ou sistema de equaes diferenciais ordinrias. Sintaxe: r = dsolve('eq1,eq2,...', 'cond1,cond2,...','v') r = dsolve('eq1','eq2',...,'cond1','cond2',...,'v') dsolve('eq1,eq2,...','cond1,cond2,...', 'v') Exerccio 12- Eu tinha o triplo da idade que tu tinhas, quando eu tinha a idade que tu tens. Quando tu tiveres a minha idade, a diferena de nossas ossas idades ser de duas dcadas. . Determine nossas idades utilizando a funo solve. solve Exerccio 13- Sabe que a acelerao de um carro em uma estrada a # (4 x , em que x representa a posio no instante t . Determine a posio no instante , sabendo que este carro parte, no instante 0, do ponto 1, sendo que o motorista parou instantaneamente tantaneamente enquanto estava em unidades no S.I.

; . Considere todas as 2

Pgina 63 de 93

Apostila de MATLAB 7.3 11.CLCULO DIFERENCIAL

O MATLAB disponibiliza funes que facilitam a operao de certos clculos que so difceis para o usurio. Por exemplo, a funo diff(), int() e limit so algumas delas, nas quais diferenciam, integram ou calculam o limite de uma funo de acordo com os parmetros oferecidos, respectivamente. Vejamos essas e outras funes a seguir:

11.1. Limites + limit Definio: Determina o limite de uma expresso simblica Sintaxe: limit(F,x,a) " calcula o limite de uma expresso simblica F com x tendendo a a; limit(F,a) " determina o limite de F com uma varivel simblica 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; x2 ( 1 x2 ( 1

Exemplo 5- Faa o seguinte limite pelo MATLAB: lim ,


x >1

>> limit('(abs(x^2)-1)/(x^2-1)',x,1,'right')

11.2. Diferenciao + diff Definio: Calcula a diferencial de uma funo/matriz dada. Sintaxe: diff(S) " diferencia a expresso simblica S em funo de uma varivel simblica; diff(S,'v') " diferencia S em torno de uma varivel simblica v; Pgina 64 de 93

Apostila de MATLAB 7.3 diff(S,n) " diferencia, para um n inteiro positivo, S por n vezes; diff(S,'v',n) " diferencia em torno de uma varivel v, S por n vezes.

Exemplo 6- Para determinar a derivada de 1 1 ordem de f ( x) # ln( x) , e x , faz-se:


>> syms x; >>f=sqrt(log(x)+exp(x)); >> diff(f) ans = 1/2/(log(x)+exp(x))^(1/2)*(1/x+exp(x)) >> pretty(ans)

11.3. Integrao + int Definio: Calcula integral de uma funo simblica dada. Sintaxe: int(S) " integrao indefinida a funo S em respeito a uma varivel 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;

Exemplo 7- Dado a funo f ( x ) # x 2 , 5 , calcule a integral: + Indefinida


>> syms x >> y=sqrt(x^2+5); >> f=int(y,x) 1/2*x*(x^2+5)^(1/2)+5/2*asinh(1/5*5^(1/2)*x)

+ Definida de 2 a 5
>>g = int(y,x,2,5) 5/2*30^(1/2)+5/2*log(5^(1/2)+6^(1/2)) 5/2*30^(1/2)+5/2*log(5^(1/2)+6^(1/2))-3-5/4*log(5)

Pgina 65 de 93

Apostila de MATLAB 7.3

Caso a visualizao de f no seja satisfatria, usa usa-se se a funo pretty, que transforma a sada de acordo com a representao matemtica, conforme ilustra abaixo:
>> pretty(f)

Como a integral calculada de forma simblica, no calculado o valor numrico da funo g. Entretanto, o MATLAB no deixa a desejar neste ponto, como ao utilizar a funo eval. Por exemplo, fazendo a instruo abaixo, voc obtm:
>> eval(g)

11.4. Integrais definidas pela Regra Trapezoidal um mtodo utilizado quando a rea sob uma curva representada por trapzios entre um intervalo [a,b] pr-definido, definido, sendo o nmero de divises n. Em representao matemtica, tem tem-se:
b(a 7 f ( x0 ) , 2 f ( x1 ) , ... , 2 f ( xn(1 ) , f ( xn ) 8 2n

f ( x)dx #

em que xi representa o ponto no final de cada trapzio, sendo x0 # a e

xn # b . No MATLAB a funo que possibilita a partir deste mtodo o trapz,


definida abaixo: + trapz Definio: Determina a integrao de uma funo a partir da Regra do Trapzio. Sintaxe: Z = trapz(Y) Z = trapz(X,Y)

Pgina 66 de 93

Apostila de MATLAB 7.3 11.5. Integrais definidas pela Regra de Simpson O mtodo de Simpson baseado baseado, , dado trs pontos sobre a curva da funo, na aproximao o desses pontos em uma parbola. Ento, tomados n subintervalos, onde n par, e cuja extr extremidade emidade da curva delimitada por f ( a ) e por f (b) , logo, a integral de uma funo f ( x ) denotada por:

f ( x)dx @

b(a ! f ( x0 ) , 4 f ( x1 ) , 2 f ( x2 ) , 4 f ( x3 ) , ... , 2 f ( xn(2 ) , 4 f ( xn(1 ) , f ( xn ) " 3n

A maioria das calculadoras programadas utiliza e esta a regra, regra que mais utilizada em termos computacionais. No MATLAB, a funo encarrega para esse fim a quad, mostrada abaixo: + quad Definio: Determina a integrao de uma funo a partir da Regra de Simpson. Sintaxe: q = quad(fun,a,b) q = quad(fun,a,b,tool) fun,a,b,tool) tool corresponde ao erro que a integral retornar, sendo o default de 10 3 - . bom destacar que fun deve ser uma funo do tipo arquivo.m. Por exemplo, para calcular a integral de y # e( x no intervalo de 0 a 3, faz-se faz o seguinte: Primeiro se cria o arquivo.m correspondente a funo que deseja integrar, ou seja:
function y=funcao(x) y=exp(-x^2);
2

Em seguida, basta utilizar a funo quad, conforme modelo abaixo:


>> quad('funcao',0,3) ans = 0.8862

Pgina 67 6 de 93

Apostila de MATLAB 7.3 11.6. Integrao Dupla O MATLAB possui a funo dblquad que determina a integral dupla de uma funo, conforme definio abaixo: + dblquad Definio: Determina a integrao dupla de uma funo. Sintaxe: q = dblquad(fun,xmin,xmax,ymin,ymax) q = dblquad(fun,xmin,xmax,ymin,ymax,tol dblquad(fun,xmin,xmax,ymin,ymax,tol) " tol a preciso que deseja calcular, sendo o default 10 (6 .

11.7. Integrao Tripla Tambm possvel calcular a integral tripla de uma funo no MATLAB, utilizando neste caso a funo triplequad, cuja definio segue abaixo: + triplequad Definio: Determina a integrao tripla de uma funo. Sintaxe: triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax) triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)" tol a preciso que deseja calcular, sendo o default 10 (6 .

11.8. Outras utras funes + gradient Definio: Determina o gradiente numericamente. Sintaxe: FX = gradient(F) " retorna o coeficiente do gradiente de F em relao a x(default). [FX,FY,FZ,...] = gradient(F) " retorna a matriz com os valores de x, respectivamente. Pgina 68 de 93

Apostila de MATLAB 7.3 + divergence Definio: Determina o divergente de um campo vetorial. Sintaxe: div = divergence(X,Y,Z,U,V,W) " determina o divergente do campo vetorial 3D U, V e W. X, Y e Z definem os limites de U, V e W, respectivamente. div = divergence(X,Y,U,V) " calcula agora para 2D. div = divergence(U,V,W) " usa como default para X, Y e Z o valor de meshgrid(1:n,1:m,1:p). Exemplo 8- Um exemplo clssico para o uso de gradiente seria na determinao do Campo Eltrico devido ao efeito de uma carga p pontual ontual de digo segue abaixo.
>> [x,y,z]=meshgrid( [x,y,z]=meshgrid(-1:0.3:1); >> V=(18e-12)./(4.*pi.*8.85e 12)./(4.*pi.*8.85e-12.*sqrt(x.^2+y.^2+z.^2)); >> [px,py,pz]=gradient(V,0.3,0.3,0.3); >> Ex=(-1).*px; >> Ey=(-1).*py; >> Ez=(-1).*pz; >> quiver3(x,y,z,Ex,Ey,Ez) >> axis([-1 1 -1 1 -1 1])

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 1 0.5 0 -0.5 -1 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Veja que a funo quiver plota o que representaria o campo eltrico devido carga. Pgina 69 de 93

Apostila de MATLAB 7.3 12.SRIES NUMRICAS

12.1. Somatrio Uma funo muito utilizada em Sries Numricas a symsum, que encontra o somatrio simblico de uma expresso. A sua descrio segue abaixo: + symsum Definio: Determina o somatrio simblico de uma expresso. Sintaxe: r = symsum(s) " encontra o somatrio da funo s em funo de uma varivel simblica pr-definida. definida. r = symsum(s,v) " fornece o somatrio em funo da varivel v. r = symsum(s,a,b) " determina o somatrio de s variando a incgnita de a at b. r = symsum(s,v,a,b) " determina o somatrio de s variando a incgnita v de a at b. Exerccio 14- Determine os seguintes somatrios:
x (1 0

a)

A x2

b)

A
1

7 2n ( 18

12.2. Srie de Taylor A Srie de Taylor definida como sendo:


P 7 x 8 # A 7 x ( x0 8
n #0 B

f7

n8

7 x0 8

n!

Considerando P 7 x 8 como sendo o polinmio de Taylor, de ordem n , em torno do ponto x0 , ento P 7 x 8 o nico polinmio de grau no mximo n

Pgina 70 de 93

Apostila de MATLAB 7.3 que aproxima localmente f em volta de x0 de modo que o erro E 7 x 8 tenda a zero mais rapidamente que 7 x ( x0 8 , quando x > x0 .
n

O MATLAB dispe da funo taylor , conforme pode ser visto abaixo: + taylor Definio: Expande em srie de Taylor Taylor. Sintaxe: taylor(f) " faz a aproximao pelo polinmio de Taylor at a quinta ordem para a funo simblica f. taylor(f,n,v) " retorna o polinmio de Taylor para a funo simblica f at o grau n-1 para a varivel especificada por v. taylor(f,n,v,a) " retorna a aproximao de Taylor de f em torno do ponto a, que pode ser simblica ou um valor numrico. Por exemplo, calculando o polinmio de Taylor para a funo

f 7x8 #

1 , tem-se: 5 , 4 : cos 7 x 8

>> syms x >> f = 1/(5+4*cos(x)) f = 1/(5+4*cos(x)) >> T = taylor(f,8) T = 1/9+2/81*x^2+5/1458*x^4+49/131220*x^6 >> pretty(T)

Exerccio 15- Determine, pelo polinmio de Taylor de ordem 2, , o valor aproximado de


3

8,2 .

Pgina 71 de 93

Apostila de MATLAB 7.3 13.PROGRAMANDO EM MATLA MATLAB

O MATLAB tambm oferece um ambiente para a programao assim como a linguagem C. As funes so bem parecidas, modificando apenas a forma de declar-la. + if Definio: Operao condicional. Executa as funes contidas no comando. Pode ser utilizado com else, que executa caso a condio declarada for falsa, e com elseif, que executa a funo caso outra condio posteriormente declarada for verdadeira. Para mais de uma condio, ut utiliza-se se para e, &&, e para ou, ||. Sintaxe: if <condio> [Comandos] elseif <condio> [Comandos] else [Comandos] end + for Definio: Comando de iterao. Permite que um conjunto de instrues seja executado at que a condio seja sati satisfeita. Sintaxe: for <condio> [Comandos] end + while Definio: Comando de iterao. Executa um bloco de instrues enquanto a condio for verdadeira. Sintaxe:

Pgina 72 de 93

Apostila de MATLAB 7.3 while <condio> [Comandos] end + switch Definio: Operao condicional. Testa sucessivamente o valor da expresso dada e direciona para o caso especificado. Funciona como um bloco de ifs Sintaxe: switch <condio> case caso1 [Comandos] case {caso1, caso2, caso3, ...} [Comandos] otherwise condies) [Comandos] end
a = 3; switch a case {2} disp('Resposta um') case {3} disp(' Resposta dois') case '5' disp(' Resposta tres') otherwise disp('Resposta ?') end

(Caso no o seja nenhuma das outras

+ disp Definio: Escreve no command window um texto ou o valor de um vetor, sem escrever seu nome. Sintaxe:

Pgina 73 de 93

Apostila de MATLAB 7.3 disp(x) + input Definio: Pede uma entrada do usurio pelo command window. Sintaxe: entrada = input(O que deseja?)
X = input('Entre um nmero nmero\n') num = 10*X

Command Window:
Entre um nmero 23 X = 23 num = 230

+ break Definio: Quebra um lao for ou while. Sintaxe: break


for i = 0:5 if i == 1 break end i = i + 1 end

Command Window:
i = 0 i = 1

Pgina 74 de 93

Apostila de MATLAB 7.3 + continue Definio: Passa para o prximo lao de um for ou while. Sintaxe: continue
for i = 0:3 if i == 1 && i == 2 continue end i = i + 1 end

Command Window:
i = 1 i = 4

+ Operadores Lgicos Definio: Operadores lgicos

Entradas A 0 0 1 1 B 0 1 0 1

and A&B 0 0 0 1

or A|B 0 1 1 1

not ~A 1 1 0 0

Xor Xor(A,B) 0 1 1 0

Exerccio 16- Utilizando matemtica simblica simblica, crie rie um programa que calcule as razes de uma dada funo atravs dos mtodos abaixo. A entrada deve conter uma funo simblica e a preciso da raiz. a) Bisseco b) Newton-Raphson Pgina 75 de 93

Apostila de MATLAB 7.3 13.1. Verificao de Erros

muito comum que depois de implementado, um programa apresente erros de lgica ou de sintaxe. O MATLAB, como em compiladores C, tambm apresenta uma ferramenta de Debug. Com essa ferramenta possvel se executar o cdigo do programa passo a passo, de modo a tornar mais fcil a localizao e de um erro e a sua correo. Abaixo segue alguns procedimentos para se Debugar: 1. Primeiro se adiciona break points, clicando com o boto direi direito do mouse nas linhas em que temos interesse de comear a verificao, e escolhendo a opo Set/Clear Breakpoint. Quando utilizamos um breakpoint numa linha, surge um ponto vermelho sua esquerda. 2. Depois de se criar os breakpoints pode pode-se chamar o m.file digitando o seu nome no workspace 3. O programa ser rodado at que o primeiro breakpoint seja encontrado. A partir da pode pode-se se pressionar F10 para a execuo da linha seguinte do programa. 4. Caso se queira pular para o prximo breakpoint, basta pressionar F5 echo on/off " Mostra o cdigo do M M-file file que est sendo executado no momento.

Pgina 76 de 93

Apostila de MATLAB 7.3 14.ANLISE DE SINAIS

14.1. Transformao de Varivel Independente

x 7 t 8 > x 7C t , D 8

C < 1 " Expanso C E 1 " Compresso


C < 0 " Reflexo

D F 0 " Deslocamento
+

Deslocamento no tempo:
clear, clc, clf x=-2:6; y=2*x; n0=input('n0= '); subplot(2,1,1),stem(x,y), grid on, xlim([ xlim([-20 20]) hold on xnovo=x+n0; subplot(2,1,2),stem(xnovo,y);grid on, xlim([-20 20]) hold off

12 10 8 6 4 2 0 -2 -4 -20 -15 -10 -5 0 5 10 15 20

12 10 8 6 4 2 0 -2 -4 -20 -15 -10 -5 0 5 10 15 20

Pgina 77 de 93

Apostila de MATLAB 7.3 + Reflexo


clear, clc, clf x=-2:8; y=x; subplot(2,1,1),stem(x,y), grid on, xlim([ xlim([-20 20]) hold on xl=-x; subplot(2,1,2),stem(xl,y);grid on, xlim([ xlim([-20 20]) hold off

-2 -20

-15

-10

-5

10

15

20

-2 -20

-15

-10

-5

10

15

20

Escalonamento
clear, clc, clf x=-2:6; y=2*x; a=input('a= ') subplot(2,1,1),stem(x,y), grid on, xlim([ xlim([-20 20]) hold on xl=x/a; subplot(2,1,2),stem(xl,y);grid on, xlim([ xlim([-20 20]) hold off

Pgina 78 de 93

Apostila de MATLAB 7.3


12 10 8 6 4 2 0 -2 -4 -20 -15 -10 -5 0 5 10 15 20

12 10 8 6 4 2 0 -2 -4 -20 -15 -10 -5 0 5 10 15 20

14.2. Funes Pr-definidas definidas + Impulso: -0, n F 0 G ! n" # / 01, n # 0 -0, t F 0 G 7t 8 # / 01, t # 0
function [u] = impulso(n,N) for k=1:length(n) if n(k)~=N u(k)=0; else u(k)=1; end end

Command Window:
>> x=-2:7; >> y=impulso(x,3); >> stem(x,y)

Pgina 79 de 93

Apostila de MATLAB 7.3

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 -2

-1

Degrau -0, n < 0 u !n" # / 01, n H 0 -0, t < 0 u 7t 8 # / 01, t H 0


function [u] = degrau(n,N) for k=1:length(n) if n(k)<N u(k)=0; else u(k)=1; end end

Command Window:
>> n=-2:7; >> y=degrau(n,3); >> stem(n,y)

Pgina 80 de 93

Apostila de MATLAB 7.3


1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 -2

-1

Exerccio: Determine: a) y ! n" # u ! n , 10" ( 2u ! n , 5" , u ! n ( 6"

>> n=-20:20; >> y=degrau(n,-10) 10)-2*degrau(n,-5)+degrau(n,6); >> stem(n,y)


1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1 -20

-15

-10

-5

10

15

20

112 b) y ! n " # 3 4 u ! n ( 3" 526


>> n=-20:20; >> y=((1/2).^(n)).*degrau( )).*degrau(n,3);

Pgina 81 de 93

Apostila de MATLAB 7.3


>> stem(n,y)
0.14

0.12

0.1

0.08

0.06

0.04

0.02

0 -20

-15

-10

-5

10

15

20

11 2 c) y ! n " # cos 3 ; n 4 u ! n , 4 " 52 6


>> n=-20:20; >> y=cos(0.5*pi*n).*degrau(n, y=cos(0.5*pi*n).*degrau(n,-4); >> stem(n,y)
1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1 -20

-15

-10

-5

10

15

20

d) y ! n " # e 2 sen ( n )
>> n=-20:20;

Pgina 82 de 93

Apostila de MATLAB 7.3


>> y=exp(2*(sin(n n))); >> stem(n,y)
8

0 -20

-15

-10

-5

10

15

20

1n2 e) y ! n " # sinc 3 4 526


>> x=-20:1:20; >> y=sinc(x/2); >> stem(x,y)
1

0.8

0.6

0.4

0.2

-0.2

-0.4 -20

-15

-10

-5

10

15

20

Pgina 83 de 93

Apostila de MATLAB 7.3 bom salientar que nos exemplos anteriores foram dados exemplos de programas no qual se obtm as funes impulso e degrau. Entretanto, o MATLAB tambm possui funes que possibilitam isso de forma mais rpida, que so as funes dirac e a heaviside, conforme veremos a seguir: + dirac Definio: Obtm a funo delta de Dirac, ou seja, a funo impulso no intervalo determionado por x.. Sintaxe: dirac(x)
>> x=-10:10; >> y=dirac(x-5); 5); >> stem(x,y) %Impulso no instante 5

+ heaviside Definio: Determina a funo degrau no intervalo determinado por x. Sintaxe: dirac(x)
>> x=-10:10; >> y=dirac(x-5); 5); >> stem(x,y) %Impulso no instante 5

Exemplo 9- Sabe-se se que a funo impulso a derivada da funo degrau. Determina este fato utilizando o MATLAB MATLAB.
>> syms x >> diff(heaviside(x),x) ans = dirac(x)

Exerccio 17- Verifique a integral de sen( x) : G ( x ( 5) .

Pgina 84 de 93

Apostila de MATLAB 7.3 14.3. Convoluo A convoluo uma ferramenta matemtica que expressa a sada de um sistema de tempo, seja este discreto ou contnuo, em funo de uma entrada pr-definida e da resposta ao impulso do sistema sistema. O MATLAB possui uma funo chamada de conv que realiza a convoluo de sinais de durao finita. Por exemplo, sejam dois vetores x e h representando sinais. O comando y = conv(x, h) gera um vetor y que denota a convoluo dos sinais x e y. Veja que o nmero de elementos em y dado pela soma do nmero de elementos em x e y menos um um, devido ao processo de convoluo. . O vetor ny dado pelo espao de tempo tomado pela convoluo definido pelo intervalo entre a soma dos primeiros elementos de nx e nh e a soma dos ltimos elementos de nx e nh, sendo nx o espao tempo definido para o vetor x e nh o espao de tempo definido para o vetor h. ( ny = [(min(nx) + min(nh)):(max(nx) +max(nh))]; ) . Vejamos a sintaxe de conv abaixo: + conv Definio: Determina a convoluco de dois sinais ou a multiplicao de dois polinmios. Sintaxe: w = conv(u,v)
h=[1,2,1]; x=[2,3,-2]; y=conv(x,y)

Exemplo 10- Determine os coeficientes do polinmio obtido ao multiplicar os polinmios 5x 2 , 3x com 2x , 2 .


>> a=[3 3 0]; >> b=[2 2]; >> y=conv(a,b)

Pgina 85 de 93

Apostila de MATLAB 7.3


y = 6 12 6 0

Logo, o polinmio obtido seria 6x 3 , 12x 2 , 6x . Exemplo 11- Determine


h[n] # u[n] ( u[n ( 10] .

resposta

de

um

sistema

com

entrada

x[n] # u[n ( 2] ( u[n ( 7] , sabendo que a resposta desse sistema ao impulso

h=ones(1,10); x=ones(1,5); n=2:15; y=conv(x,h); stem(n,y);

Exerccio 18- Use o MATLAB para determinar a sada do sistema com entrada

x[n] # 2Iu[n , 2] ( u[n ( 12]J sabendo que a resposta ao impulso desse sistema
h[n] # 0,9n Iu[n ( 2] ( u[n ( 13]J .

14.4. Equaes de Diferenas As Equaes de Diferenas uma forma de expressarmos um sistem sistema na forma recursiva que permit permita a que a sada do sistema fosse computada a partir do sinal de entrada e das sadas passadas. Um comando que possvel realizar uma funo similar seria o filter, definida a seguir: + filter Definio: Expressa a descrio em equao de diferenas de um sistema em uma forma recursiva que permita que a sada do sistema seja computada a partir do sinal de entrada e das sadas passadas. Sintaxe: y = filter(b,a,X) y = filter(b,a,X,zi) Pgina 86 de 93

Apostila de MATLAB 7.3 Veja acima que apareceu o parmetro zi, que determina termina a condio inicial de y. Este zi uma matriz com as condies iniciais, sendo os valores passados de y. Exemplo 12- Um exemplo clssico no uso de filter determinar a seqncia de Fibonacci, definida como o nmero atual ser igual a soma dos dois nmeros anteriores. Em linguagem matemtica, tem tem-se y[n] ( y[n ( 1] ( y[n ( 2] # 0 em que y a sada do sistema. Veja que ele no depende de uma entrada, mas ao usarmos o filter, necessrio usar a entrada apenas para definir o nmero de elementos da seqncia no qual se deseja obter, assim como um parmetro indispensvel para o uso da funo filter. Ser dado como condio inicial a matriz [1 0], correspondentes a entrada no desejada y[-1] 1] e y[ y[-2], 2], indispensvel para obter os outros valores. O cdigo do programa que pode ser implementado no M-file segue abaixo. Neste caso, se deseja adquirir 20 valores.
a=[1, -1, -1]; b=[0]; x=ones(1,20); y=filter(b,a,x,[1 0])

Exerccio 19- Determine, utilizando ilizando filter, a seqncia tribonacci. Quando se trabalha com sistemas de equaes de diferenas, no qual precisa determinar a resposta desse sistema ao impulso, o comando impz se torna bastante til. A sua sintaxe segue abaixo: + impz Definio: Determina a resposta ao impulso de um sistema de equaes de diferenas. Sintaxe: [h,t] = impz(b,a) [h,t] = impz(b,a,n) Pgina 87 de 93

Apostila de MATLAB 7.3 O comando [h,t] = impz(b,a,n) avalia n valores da resposta ao impulso de um sistema descrito por uma equao de diferenas diferenas. . Os coeficientes coeficie da equao de diferenas esto contidos nos vetores b e a no que se refere a filter. O vetor h contm os valores da resposta ao impulso e t contm os ndices de tempo correspondentes.

14.5. FFT (Transformada Rpida de Fourier) A Transformada de Fourier leva uma funo no domnio do tempo para o domnio da freqncia, no qual podemos analisar as freqncias mais importantes (com maior amplitude) de uma funo. A transformada inversa de Fourier faz o processo inverso, passa uma fu funo no do domnio da freqncia para o domnio do tempo. A Transformada de Fourier e sua inversa podem ser calculadas a partir das expresses abaixo, respectivamente:
B

F (K ) #

(B

? S (t )e
B

( jKt

dt

1 S (t ) # 2;

(B

? F (K)e

jKt

dK

Onde K a freqncia fundamental. A FFT (Transformada rpida de Fourier) um algoritmo computacional otimizado que calcula a Transformada Discreta de Fourier mais rapidamente. A FFT tambm pode servir de aproximao para a Transformada de Tempo Discreto de Fourier, er, Srie de Fourier e a prpria Transformada de Fourier. Uma propriedade da Transformada de Fourier que a transformada da convoluo de duas funes equivale multiplicao das duas no domnio da freqncia. Portanto para calcular a convoluo de uma funo levamos os Pgina 88 de 93

Apostila de MATLAB 7.3 dois sinais para o domnio da freqncia, multiplicamos e voltamos para o domnio do tempo. Veja a expresso abaixo:
y (t ) # x(t ) )* * h(t ) # IFFT [ FFT ( x (t )).FFT ( h (t ))]

Exemplo 13- Dado o circuito RC abaixo, determine a resposta ao impulso e a corrente no capacitor iC (t ) quando a entrada x (t ) igual a e ( t .

Resoluo: Clculo da resposta ao impulso:


Lei dos ns: i # iR , iC
dV dt Em t=0, i # G (t ) e iR # 0 i # iR , C

1 dV 1 G (t ) # > V (0) # V (0, ) # C dt C

Em t # 0, , i (0, ) # 0 V dV 1 (t Re soluoequao diferencial (1) 0 # , C MMMMMMMM> V (t ) # e RC R dt C dV 1 ( t RC i (t ) # h(t ) # C #( e dt RC


h(t ) # ( 1 ( t 12 e A 12

Para R=40k L e C=300 N F >

Clculo da convoluo analiticamente:

Pgina 89 de 93

Apostila de MATLAB 7.3 iC (t ) # y (t ) #


(t

1 ((t (9 )12 2 (9 1 x ( 9 ) h ( t ( 9 ) d 9 # e ( e 3 4 d9 ? ? 5 12 6 (B 0
t (t

e 12 (119 12 e 12 ( e(t #( e d 9 # 12 ? 11 0 Clculo da convoluo atravs do MATLAB:


n=[0:0.08:81.84]; x=exp(-n); n); h=-exp(-n/12)/12; n/12)/12; fftx=fft(x); ffth=fft(h); fft(h); ffty=fftx.*ffth; y=ifft(ffty); plot(n,-abs(y)*0.08) abs(y)*0.08) title('Convoluo'); xlabel('t(s)'); ylabel('i(A)');
Convoluo 0

%amostragem %definio da entrada %definio da sada %clculo da fft %multiplicao %inversa

-0.01

-0.02

-0.03 i(A) -0.04 -0.05 -0.06 -0.07

10

20

30

40 t(s)

50

60

70

80

90

- x(t ) # e(5t Exerccio 20- Calcule a convoluo das formas de onda / 0h(t ) # cos(2.5t ) ( t

Pgina 90 de 93

Apostila de MATLAB 7.3 14.6. Filtros Digitais O Matlab possui inmeras funes que permitem ao usurio descobrir a funo transferncia de diferentes tipos de filtros digitais: A funo de transferncia digital definida por H(z) onde z # e forma geral a funo de transferncia ansferncia H(z) a seguinte:
jwt

. Na

H ( z) #

B( z ) A( z )

b0 , b1 z -1 , b2 z -2 , ... , bn z - n H ( z) # a0 , a1 z -1 , a2 z -2 , ... , an z - n + Butter Definio: Determina os coeficientes de um filtro Butterworth. Esse filtro pode ser passa baixa, , passa alta, passa banda, rejeita banda. Sintaxe: [B,A] = Butter(N, Wn, tipo) " Determina os coeficientes da funo transferncia dada a freqncia de corte e o tipo de filtro. Caso nada seja posto em tipo, o Matlab interpreta filtro passa baixa como padro. + Freqz Definio: Calcula os valores de uma funo complexa H(z) Sintaxe: Freqz(B,A,n) " Utiliza 3 argumentos de entrada. O primeiro um vetor contendo os coeficientes do polinmio B(z) da Equao (1). O segundo um vetor contendo os coeficientes do polinmio A(z). O terceiro para especificar o nmero de valores de freqncias normalizada normalizadas s que se quer no intervalo de 0 a ;. Exemplo 14+ + + + Gerar um sinal com duas as senides de freqncias 5 e 8 80 0 Hz, com fs=200 Hz. Projetar um filtro para fs=200 Hz. Usar filtro de 2a ordem, Butterworth. Filtrar o sinal. Plotar a resposta em freqncia.

Pgina 91 de 93

Apostila de MATLAB 7.3


% Exemplo de filtros fs=200; t=0:1/fs:1; T=1/fs; x=sin(2*pi*5*t)+sin(2*pi*80*t); figure(4) plot(t,x) title('Sinal de Entrada') xlabel('tempo (s)') ylabel('amplitude') [B,A]=butter(2,20/(fs/2)); A]=butter(2,20/(fs/2)); B A % Determinar os coeficientes % sinal de entrada % Freqncia de amostragem % Tempo de amostragem

% Mostrar coeficientes B % Mostrar coeficientes A

% Plotagem da resposta em freqncia h1=freqz(B,A,100) figure(1) plot(abs(h1)) grid title('Resposta em freqncia') xlabel('freqnca (Hz (Hz)') ylabel('amplitude') % Filtragem figure(2) y=filter(B,A,x); plot(t,y,'k-') title('Sinal de Entrada') xlabel('tempo (s)') ylabel('amplitude')

Exerccio 21- Projete um filtro passa passa-alta alta de Butterworth de ordem 6, com freqncia de corte de 10 Hz. Use fs=400 Hz. Sinais a serem filtrados: senides de 1 e 20 Hz. Use as funes butter, filter e freqz.

Pgina 92 de 93

Apostila de MATLAB 7.3 15.REFERNCIAS BIBLIOGR BIBLIOGRFICAS

[1]

CARNAHAN, Brice, LUTHER, H. A. & WILKES, James O. Applied

numerical methods. John Wiley & Sons, Inc. Nova Iorque 1969. [2] GES, Hilder & TONAR ONAR, Ubaldo. Matemtica para Concursos. 6

Edio. ABC Editora. Fortaleza CE. 2001. [3] HAYKIN, Simon & VEEN, Barry Van. Sinais e Sistemas. Editora

Bookman. Porto Alegre RS. . 2001 [4] HAYT, William H. Jr. & BUCK, Jonh A. Eletromagnetismo. 6 Edio.

Editora LTC. Rio de Janeiro RJ. 2001. [5] LEITHOLD, Louis. O Clculo com Geometria Analtica. 3 Edio.

Volume I. Editora Habra. So Paulo SP. 1994. [6] NILSSON, James W & RIEDEL, Susan A. Circuitos Eltricos. 6 Edio.

Editora LTC. Rio de Janeiro RJ. 2003.

Pgina 93 de 93

Anda mungkin juga menyukai