Sunteți pe pagina 1din 84

Noes de Matlab

Engenharia Introduo Computao


Noes de Matlab

ndice
Capitulo 01
Introduo.............................................................................................................. 04
Ambiente................................................................................................................ 04
Ambiente de Ajuda................................................................................................. 07
Operaes Bsicas.................................................................................................. 10

Capitulo 02
Exponenciais........................................................................................................... 13
Logaritmos.............................................................................................................. 14

Capitulo 03
Funes trigonomtricas........................................................................................ 17
Lei dos senos........................................................................................................... 18
Teorema dos co-senos............................................................................................ 18

Capitulo 04
Matrizes.................................................................................................................. 22
Adio..................................................................................................................... 23
Subtrao................................................................................................................ 24
Multiplicao de um escalar por uma matriz......................................................... 24
Produto entre matrizes........................................................................................... 25
Matriz Transposta................................................................................................... 26
Matrizes Especiais.................................................................................................. 27
Matriz Inversa........................................................................................................ 28
Sistemas Lineares................................................................................................... 29
Determinantes........................................................................................................ 30

Capitulo 05
Polinmios.............................................................................................................. 33
Operaes polinomiais........................................................................................... 34
Adio..................................................................................................................... 34
Multiplicao.......................................................................................................... 34
Diviso.................................................................................................................... 35
Derivada................................................................................................................. 35

Capitulo 06
Grficos.................................................................................................................. 36

Profa. Dora Pgina 2


Engenharia Introduo Computao
Noes de Matlab

Operaes elemento por elemento....................................................................... 37


Cor, Estilo, Marcador............................................................................................. 38
Comandos iniciais.................................................................................................. 39
Legenda................................................................................................................. 40
Fixar grficos......................................................................................................... 41
Sub-grficos........................................................................................................... 42
Recursos................................................................................................................. 44

Capitulo 07
Arquivo m.............................................................................................................. 47
Script comandos iniciais........................................................................................ 49

Capitulo 08
Estrutura Condicional If...................................................................................... 52
If...then.................................................................................................................. 52
If...then...else......................................................................................................... 53
Operadores relacionais......................................................................................... 54
Operadores lgicos............................................................................................... 55
Condicional encadeada......................................................................................... 57

Capitulo 09
Estrutura de repetio For...end........................................................................ 61
Converso nmero para string.......................................................................... 66
Converso string para nmero.......................................................................... 66

Capitulo 10
Estrutura de repetio while...end.................................................................... 68

Capitulo 11
Formatos numricos............................................................................................. 75
Variveis permanentes......................................................................................... 78
Funes matemticas comuns.............................................................................. 78

Capitulo 12
Limite.................................................................................................................... 79
Derivada................................................................................................................ 79
Integral.................................................................................................................. 82

Profa. Dora Pgina 3


Engenharia Introduo Computao
Noes de Matlab

Captulo 01
Introduo
O Matlab (abreviatura de MATrix LABoratory - Laboratrio de Matrizes) um software
de simulao matemtica que realiza operaes matriciais, constri grficos em duas
ou trs dimenses, auxilia no processamento de sinais, alm de manipular outras
funes especializadas.

Ele trabalha com uma linguagem de programao de alto-nvel, em um ambiente


interativo, para o desenvolvimento de algoritmos, anlise e visualizao de dados e
computao numrica. Prprio para as reas tcnicas e cientficas, o software tem
funes de tratamento numrico de alto desempenho, capazes de resolver problemas
computacionais tcnicos de forma mais eficiente do que as tradicionais linguagens de
programao.
Alm do ambiente interativo, outra facilidade do Matlab a possibilidade de execuo
de arquivos texto contendo uma seqncia de instrues definidas pelo usurio. Esses
arquivos texto, que tm extenso '.m', podem ser criados e editados dentro ou fora do
seu ambiente.

Ambiente
Inicializando o software, tem-se acesso o seguinte ambiente, como mostra a figura a
seguir:

Profa. Dora Pgina 4


Engenharia Introduo Computao
Noes de Matlab

Compreendendo as divises do ambiente numa fase inicial tem-se:

Na parte superior da tela encontra-se o menu suspenso, bem como o chamado


SpeedBar, isto , os cones de acesso rpido, alm do Current Directory que o
caminho onde o desenvolvimento feito em Matlab ser gravado ou at mesmo lido
algo que j se encontre disponvel.

A coluna que se apresenta do lado esquerdo exibe os eventuais arquivos que estariam
disponveis para futuros acessos, especificando o nome do arquivo e sua data de
gravao.

Do lado direito existe uma rea denominada Workspace que caracteriza a memria de
armazenamento, isto , as variveis (name) e seus respectivos valores(value).

Profa. Dora Pgina 5


Engenharia Introduo Computao
Noes de Matlab

Embaixo tem-se o Command History que registrar o histrico dos comandos


executados.

A janela Command Window a janela de interao, assim sendo, a mais importante


nesse instante. Cabe agora a seguinte pergunta:

Quando sei que est pronto para uso?

Assim que o prompt fique disponvel, isto ,

Todo comando deve ser finalizado teclando-se Enter.

Para encerrar uma sesso de trabalho do MATLAB digita-se o comando exit (ou quit)
no prompt do programa.

IMPORTANTE: O Matlab um software sensitive case, isto , faz diferena entre letras
MAIUSCULAS e MINUSCULAS. Assim sendo, seus comandos devem ser digitados
sempre em letras MINSCULAS.

Profa. Dora Pgina 6


Engenharia Introduo Computao
Noes de Matlab

Ambiente de Ajuda
Comando help

Apresenta uma listagem de todos os pacotes disponveis.

Para se ter ajuda sobre um pacote especfico ou sobre um comando ou funo


especfica, deve-se combinar o comando help e o nome do pacote, comando ou funo
de interesse.

Por exemplo: >> help elfun

Comando helpwin

Abre-se uma nova janela textual de ajuda.

Profa. Dora Pgina 7


Engenharia Introduo Computao
Noes de Matlab

Combinando-se o double-click sobre um dos itens obtm-se os vrios nveis de ajuda


de um pacote especfico e de um comando ou funo de interesse.

O nome de uma funo pode ser introduzido no campo superior esquerdo para se ter
diretamente uma ajuda deste comando.

No pull-down menu direita deste campo encontram-se os tpicos relacionados com a


funo que est sendo explicada no momento.

Comando helpdesk

Dispara-se um programa de navegao instalado no seu computador (Netscape,


Internet Explorer, etc) com um ambiente de ajuda mais completo que utiliza a
linguagem de hipertexto.

Profa. Dora Pgina 8


Engenharia Introduo Computao
Noes de Matlab

Neste ambiente de ajuda possvel obter uma listagem das funes:

Por bloco de especificidade (MATLAB/Functions/by Subject ) ou

Por ordem alfabtica (MATLAB/Functions/by Index).

A ajuda especfica de um determinado comando pode ser feito diretamente no campo


abaixo de Go to MATLAB function. Alm disto, esto disponveis vrios documentos
explicativos (Online Manuals).

Operaes Bsicas
A primeira forma de se utilizar o MATLAB como uma calculadora cientfica atravs da
digitao de comandos diretamente no seu prompt. Assim sendo, vamos discutir
inicialmente a notao das operaes bsicas, a saber:

Notao Notao Prioridade


Matemtica MATLAB Natural

+ + 3

- - 3

. ou x * 2

ou / / 2

y
x^y 1
x

Vamos propor inicialmente a seguinte clculo: -1+5, executando no MatLab, temos:

Profa. Dora Pgina 9


Engenharia Introduo Computao
Noes de Matlab

Para melhorar esse tipo de notao poderamos executar o mesmo clculo da seguinte
forma:

Nmeros decimais so representados por ponto, isto , =0.5, ento efetue:

0.5 + 3.2 1.3

Profa. Dora Pgina 10


Engenharia Introduo Computao
Noes de Matlab

Com base nesses conceitos execute no Matlab as seguintes expresses:

Profa. Dora Pgina 11


Engenharia Introduo Computao
Noes de Matlab

Captulo 02
Exponenciais

Exemplos Efetuem os clculos

Profa. Dora Pgina 12


Engenharia Introduo Computao
Noes de Matlab

Logaritmos

Exemplos:

Profa. Dora Pgina 13


Engenharia Introduo Computao
Noes de Matlab

Considere x=2, y=3 e z =5, com essas informaes calculem os prximos exerccios:

>> x=2;y=3;z=5;

>> a=log2(x+y);

>> b=log10(x+z);
x y
3. log 2 2. log x z 4 ln z 2

>> c=log(z^2);
5
>> resultado=(3*a-2*b+4*c)/5

resultado =

3.6302

Com base nesses conceitos execute no Matlab as seguintes expresses:

Profa. Dora Pgina 14


Engenharia Introduo Computao
Noes de Matlab

Profa. Dora Pgina 15


Engenharia Introduo Computao
Noes de Matlab

Captulo 03

Funes Trigonomtricas
A princpio um conceito fundamental, quando se trata valor trigonomtrico no
computador, s admitido valor em radianos, assim sendo, se deve recordar a
mudana de unidades de graus para radianos, isto :

Notao Matemtica Notao MATLAB

sen(x) sin(x)

cos(x) cos(x)

sen( x)
tg ( x) tan(x)
cos( x)
1
cos sec( x) 1/sin(x)
sen( x)
1
sec( x) 1/cos(x)
cos( x)
1 cos( x)
cot g ( x) 1/tan(x)
tg ( x) sen( x)

arccos(x) acos(x)

arcsen(x) asin(x)

arctg(x) atan(x)

Profa. Dora Pgina 16


Engenharia Introduo Computao
Noes de Matlab
Resolver um tringulo conhecendo um lado a e os dois ngulos adjacentes
a ele (B e C), ento:


A 180 B C
a.sen( B )
b
sen( A )
a sen(C )
c
sen( A )

Aplicando numericamente tem-se:

Resolver um tringulo conhecendo dois lados (b e c) e o ngulo que eles formam (A).

a b 2 c 2 2bc cos( A)
a2 c2 b2 a2 c2 b2
b 2 a 2 c 2 2ac cos( B) cos( B) B arccos
2ac 2ac
a2 b2 c2 a 2 b2 c2
c 2 a 2 b 2 2ab cos(C ) cos(C ) C arccos
2ab 2ab
Profa. Dora Pgina 17
Engenharia Introduo Computao
Noes de Matlab

Aplicando numericamente tem-se:

Vejamos agora como traar os primeiros grficos no MatLab, utilizando as funes


trigonomtricas em uma volta completa na circunferncia trigonomtrica, no sentido
anti-horrio, isto , [0,2].

Para fazermos um grfico no computador precisamos definir


um passo bem pequeno de tal sorte que o computador seja
capaz de traar o grfico com preciso.

Nesse caso temos a varivel x variando de 0 at 6.2838,


ento para atender as necessidades computacionais
podemos entender que se o passo fosse 1, teramos apenas
os valores: 0 1 2 3 4 5 6.

Ento fixaremos o passo como sendo 0.1, ento teremos:

0 0.1 0.2 0.3 -.... 6.0 6.1 6.2

Assim teremos uma gama muito maior de pontos para obter a preciso do desenho da
funo.

Profa. Dora Pgina 18


Engenharia Introduo Computao
Noes de Matlab

Como definir o passo? Cabe destacar que:

0 (zero) define o valor inicial de x

>> x=0:0.1:6.28; 0.1 define o passo de variao do x

6.28 define o valor final de x

Qual o comando capaz de traar grfico no Matlab

plot(x,y)

Com base nesses conceitos tracemos o grfico y=sen(x)

Ento no command window digita-se:

>> x=0:0.1:6.28;

>> y=sin(x);

>> plot(x,y)

Tem-se ento o seguinte resultado:

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7

Profa. Dora Pgina 19


Engenharia Introduo Computao
Noes de Matlab

Com base nesses conceitos execute no MatLab os seguintes exerccios:

1. Calcule os valores das funes trigonomtricas para os ngulos notveis, isto ,


30, 45 e 60

2. Sabendo que a 2 3 , b 2 , c 4calcule o valor de S, sabendo que

S = arccos(a/c) arcsen(b/c)

3. Nos conceitos trigonomtricos uma relao tida como fundamental, isto ,


sen(x)+cos(x) = 1, ento calcule: cos(x), tg(x), cotg(x), sec(x) e cossec(x),
sabendo que sen(x)=4/5 e que x pertence ao II quadrante.

4. Dado o triangulo com suas medidas,

calcule os valores sinalizados em vermelho.

5. Trace o grfico da funo:

y=cos(x), com 0x2

Profa. Dora Pgina 20


Engenharia Introduo Computao
Noes de Matlab

Captulo 04

Matrizes
Para criar uma varivel onde armazenada uma matriz, basta escrever os elementos
da matriz entre colchetes [ ... ], sendo os elementos de uma mesma linha da matriz
separados por vrgula (ou espao em branco) e as linhas separadas por ponto e vrgula.
Por exemplo, para armazenar a matriz

1 2 3
A
4 5 6

Acessar os elementos de uma matriz usando os comandos

O elemento que est na 2 linha e 3coluna


>> A(2,3)
ans =
6

A 2 linha da matriz
>> A(2,:)
ans =
4 5 6

A 1 coluna da matriz
>> A(:,1)
ans =
1
4

Profa. Dora Pgina 21


Engenharia Introduo Computao
Noes de Matlab

Exibir a sub-matriz formada pela 1 e 2 colunas da matriz A.


>> A(:,1:2)
ans =
1 2
4 5

Utilizando a matriz A, gere uma matriz B colocando mais uma coluna com os
nmeros 7 e 8 respectivamente:
>> B=[A,[7;8]]
B=
1 2 3 7
4 5 6 8

Utilizando a matriz A, gere uma matriz C colocando mais uma linha com os
nmeros 7, 8 e 9 respectivamente:
>> C=[A;[7 8 9]]
C=
1 2 3
4 5 6
7 8 9

Adio de matrizes
Dadas duas matrizes A=(aij)mxn e B=(bij)mxn chama-se adio A+B a matriz C=(cij)mxn tal
que cij=aij+bij para todo i e todo j. Isto significa que a adio de duas matrizes A e B do
tipo mxn uma matriz C do mesmo tipo em que cada elemento a soma dos
elementos correspondentes em A e B.

Exemplo: Dadas as matrizes A e B, calcule a adio de A por B

1 7 2 3 21 6
A e B
5 1 2 15 3 6
A B ?

Ento no Command Window, digita-se:

>> A=[1 7 2; 5 -1 -2];

>> B=[3 21 6; 15 -3 -6];

>> ADICAO = A+B

Profa. Dora Pgina 22


Engenharia Introduo Computao
Noes de Matlab

ADICAO =

4 28 8

20 -4 -8

Subtrao de matrizes
Dadas duas matrizes A=(aij)mxn e B=(bij)mxn chama-se subtrao A+B a matriz C=(cij)mxn
tal que cij=aij-bij para todo i e todo j. Isto significa que a adio de duas matrizes A e B
do tipo mxn uma matriz C do mesmo tipo em que cada elemento a soma dos
elementos correspondentes em A e B.

Exemplo: Dadas as matrizes A e B, calcule a adio de A por B

1 7 2 3 21 6
A e B
5 1 2 15 3 6
A B ?

Ento no Command Window, digita-se:

>> A=[1 7 2; 5 -1 -2];

>> B=[3 21 6; 15 -3 -6];

>> SUBTRACAO = A-B

SUBTRACAO =

-2 -14 -4

-10 2 4

Multiplicao de um escalar por uma matriz


Dado um nmero k e uma matriz A=(aij)mxn chama-se produto k.A a matriz B=(bij)mxn tal
que bij =k.aij para todo i e todo j. Isto significa que multiplicar uma matriz A por um
nmero k construir uma matriz B formada pelos elementos de A todos multiplicados
por k.

Profa. Dora Pgina 23


Engenharia Introduo Computao
Noes de Matlab

Exemplo: Dadas a matriz A e o nmero k = 3, calcule k.A


1 7 2
k 3 e A
5 1 2

Ento se digita no Command Window:

>> A=[1 7 2; 5 -1 -2];

>> k=3;

>> RESULTADO = k*A

RESULTADO =

3 21 6

15 -3 -6

Produto entre Matrizes


Dadas duas matrizes A=(aij)mxn e B=(bjk)nxp chama-se produto A.B a matriz C=(cik)mxp
n
tal que: cik ai1 b1k ai 2 b2 k ai 3 b3k ... ain bnk aij b jk
j 1

para todo i {1,2,,m} e todo k {1,2,..,p}

Exemplo: Dadas as matrizes A e B, calcule A.B

7
1 2 3
A e B 8
4 5 6 9
Ento se digita no Command Window:

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

>> B=[7;8;9];

>> PRODUTO = A*B

PRODUTO =

50

122

Profa. Dora Pgina 24


Engenharia Introduo Computao
Noes de Matlab

Matriz Transposta

Dada uma matriz A aij mxnchama-se transposta de A, a matriz


At a 'ji tal que
nxm

a 'ji aij para todo i e todo j. Isto significa que, as colunas de A t so ordenadamente
iguais s linhas de A.

Notao da matriz transposta At no MATLAB : A.

Exemplos: Dadas as matrizes A e B, calcule At e Bt.

1 4
A At ?
7 2

Ento se digita no Command Window:

>> A=[1 4;7 2];

>> TRANSPOSTA = A.'

TRANSPOSTA =

1 7

4 2

1 2 5
B Bt ?
1 7 2

Ento se digita no Command Window:

>> B=[1 2 5; -1 7 2];

>> TRANSPOSTA = B.'

TRANSPOSTA =

1 -1

2 7

5 2

Profa. Dora Pgina 25


Engenharia Introduo Computao
Noes de Matlab

Matrizes Especiais
eye(m,n) - gera matriz com m-linhas e n-colunas com valor unitrio nos elementos de
ndices iguais e zero para os demais elementos. Por exemplo:

>> A=eye(2,3)

A=

1 0 0

0 1 0

>> I=eye(3,3)
Matematicamente conhecida como
I=
Matriz Identidade (I3) toda matriz
1 0 0 quadrada aonde na diagonal principal
os elementos so sempre 1 e o resto
0 1 0 igual a zero.

0 0 1

zeros(m,n) - gera matriz nula com m-linhas e n-colunas.

>> A=zeros(2,3)

A=

0 0 0

0 0 0

>> B=zeros(2,2)

B=

0 0

0 0

>> C=zeros(1,4)
C=
0 0 0 0

Profa. Dora Pgina 26


Engenharia Introduo Computao
Noes de Matlab

Matriz Inversa

Seja A uma matriz quadrada de ordem n. Dizemos que A matriz inversvel se existir
uma matriz B=A-1 tal que A.B=B.A=In. Se A no inversvel, dizemos que A uma matriz
singular.

Notao da matriz inversa A-1 no MATLAB : inv(A)

Exemplos: Dadas as matrizes A e B, calcule A-1 e B-1.

5 6
A A1 ?
4 5

>> A=[5 6;4 5];


>> INVERSA = inv(A)
INVERSA =
5.0000 -6.0000
-4.0000 5.0000

1 0 1
B 1 2 3 B 1 ?
1 2 4

>> B=[1 0 1; 1 2 3; 1 2 4];


>> INVERSA = inv(B)
INVERSA =
1.0000 1.0000 -1.0000
-0.5000 1.5000 -1.0000
0 -1.0000 1.0000

Profa. Dora Pgina 27


Engenharia Introduo Computao
Noes de Matlab

Sistemas Lineares

um conjunto de m (m1) equaes lineares, nas incgnitas x1,x2,x3,...,xn. Assim o


sistema S linear:

a11x1 a12 x2 a13 x3 a1n xn b1


a x a x a x a x b

S 21 1 22 2 23 3 2n n 2


am1 x1 am 2 x2 am3 x3 amn xn bm

Lembrando a definio de produto de matrizes, notemos que o sistema linear S pode


ser escrito na forma matricial.

x1 b1
a11 a12 a13 a1n A X B
a a23 a2 n 2 2
x b
21 a22 A1 A X A1 B
x b
3 3 I . X A1 B

am1 am 2 am3 amn X A1 B
xn bm

Notao no MatLab para esse tipo de situao:

X=inv(A)*B ou simplesmente X = A\B

Resolva o seguinte sistema linear:

x yz 6 1 1 1 x 6 1 1 1 x 6

x y z 4 1 1 1 y 4 A 1 1 1 X y B 4
2 x y z 1 2 1 1 z 1 2 1 1 z 1

Ento:

>> A=[1 1 1; 1 -1 -1; 2 -1 1];


>> B=[6; -4; 1];
>> X=inv(A)*B

X=

1
3
2

Profa. Dora Pgina 28


Engenharia Introduo Computao
Noes de Matlab

Determinantes

Consideremos o conjunto das matrizes quadradas de elementos reais. Seja M uma


matriz de ordem n desse conjunto. Chamamos determinante da matriz M (det M) o
nmero que podemos obter operando com os elementos de M

Notao do determinante da matriz M no MATLAB : det(M)

Exemplos: Dadas as matrizes A e B, calcule det A e det B.

5 6
A det A ?
4 5

>> A=[5 6; 4 5];


>> DETERMINANTE = det(A)
DETERMINANTE =
1

1 0 1
B 1 2 3 det B ?
1 2 4

>> B=[1 0 1; 1 2 3; 1 2 4];


>> DETERMINANTE = det(B)
DETERMINANTE =
2

Profa. Dora Pgina 29


Engenharia Introduo Computao
Noes de Matlab

Com base nos conceitos desenvolvidos faa os exerccios a seguir:


1. Dadas as matrizes
1 5 7 2 4 6 0 1 5
A 8 10 12 C
7
, B e
3 9 11 1 4
Calcule: A+B+C, A-B+C, A-B-C e A+B-C

2 1 1 2
2. Sendo A 3 2 e B 3 3 Calcule 2A-B

4 0 2 1

3. Calcule o produto das matrizes:

1 1
1
1 1 5 0 2
2 3 7 1 3
1

1 1

1 1
2 2 1 2 3
4 5 1

3 4
1 2 5
4. Dada a matriz X Calcule a sua transposta.
1 7 2

1 1 1
5. Se Y calcule Z = .Yt
2 3 4
6. Dadas as matrizes a seguir, calcule suas inversas:
1 9 5
2 5
A e B 3 1 2
1 3 6 4 4
2 2 1 2 1 7
7. Determine a matriz X, tal que:
5 5 3 5 X 2 7

8. Resolva os seguintes sistemas lineares:

5 x 2 y 3z 2

3x y 4 z 1
4x 3y z 3

Profa. Dora Pgina 30
Engenharia Introduo Computao
Noes de Matlab

3x 5 y 2 z 26

x 7 y z 16
5 x y 3z 14

9. Calcule o valor de:

1 1 9
det A 1 8 7
1 5 3

3 2 4 3
5 7 2 4
det B
2 4 5 3
2 3 0 7

1 2 3 4 5
1 2 4 5
6 7 8 9 10
0 1 0 0
det C 11 12 13 14 15
1 3 0 1
16 17 18 19 20
1 4 2 1
21 22 23 24 25

Profa. Dora Pgina 31


Engenharia Introduo Computao
Noes de Matlab

Captulo 05
Polinmios

Algumas vezes precisamos calcular as razes de um polinmio. Isto pode ser


feito no MATLAB atravs do comando roots. Veja o seguinte exemplo:

Calcule os zeros do seguinte polinmio: p(x) = x2 + 5x + 6. Ento:

>> p=[1 5 6];

>> raizes=roots(p)

raizes =

-3.0000

-2.0000

Em algumas situaes temos as razes e precisamos obter o polinmio, para tanto,


utliza-se o comando poly. Veja o exemplo:

Sabendo que o polinmio tem duas razes, a saber, -3 e -2 quais so os seus


coeficientes? Ento:

>> raizes=[-3 -2];

>> coeficientes=poly(raizes)

coeficientes =

1 5 6

Como so duas razes distintas, temos: p(x)=x2+5x+6

Para obter o valor do polinmio num determinado ponto tem-se o comando polyval.
Veja o exemplo: Sabendo que p(x) = x2 + 5x + 6, calcule o valor no ponto x=7. Ento:

>> p=[1 5 6];


>> polyval(p,7)
ans =
90

Profa. Dora Pgina 32


Engenharia Introduo Computao
Noes de Matlab

Operaes polinomiais

Para entender as operaes que se seguem utilizaremos o seguinte exemplo:


Sejam os polinmios p(x) = x4 3x2 +5x 30 e w(x) = 2x4 7x3 +2x 15. Calcule:

Adio
Se a dimenso de p igual dimenso de w, a adio ser dada por: c = p + w

Se a dimenso de p for diferente da dimenso de w, devemos:

Preencher com zeros os coeficientes das potncias que faltam em um


polinmio para este igualarem em dimenso com outro
A adio ser dada por: c = p + w

>> p=[1 0 -3 5 -30];


>> w=[2 -7 0 2 -15];
>> Adicao=p+w
Adicao =
3 -7 -3 7 -45

Portanto p(x)+w(x)=3x4-7x3-3x2+7x-45

Multiplicao

Para multiplicar um polinmio pelo outro, utiliza-se o comando conv(p,w) entendendo


que ser feita a multiplicao do polinmio p pelo polinmio w. Ento:

>> p=[1 0 -3 5 -30];


>> w=[2 -7 0 2 -15];
>> multiplicacao = conv(p,w)
multiplicacao =
2 -7 -6 33 -110 204 55 -135 450

Portanto p(x).w(x) = 2x8-7x7-6x6+33x5-110x4+204x3+55x2-135x+450

Profa. Dora Pgina 33


Engenharia Introduo Computao
Noes de Matlab

Diviso

Para efetuar a diviso entre polinmios, tem-se o seguinte procedimento

[q,r] = deconv (p,w)

Cuja resposta consta de duas variveis:

q: o quociente da diviso de p por w.

r: o resto da diviso de p por w.

Ento:
>> p=[1 0 -3 5 -30];
>> w=[2 -7 0 2 -15];
>> [q,r]=deconv(p,w)
q=
0.5000
r=
0 3.5000 -3.0000 4.0000 -22.5000

Derivada

Para determina a derivada de um polinmio, utiliza-se o comando polyder (p) onde sero
exibidos os coeficientes do polinmio que representam a derivada. Ento:

>> p=[1 0 -3 5 -30];


>> derivada = polyder(p)
derivada =
4 0 -6 5

Portanto o polinmio p(x) = x4 3x2 +5x 30 tem como derivada p(x)=4x3-6x+5

Profa. Dora Pgina 34


Engenharia Introduo Computao
Noes de Matlab

Captulo 06

Grficos

Para traar um grfico, deve-se fundamentar na notao das funes, isto , toda
funo uma relao binria de A em B, portanto, toda funo um conjunto de pares
ordenados.
Geralmente, existe uma sentena aberta y=f(x) que expressa a lei mediante a qual,
dado xA, determina-se yB tal que (x,y)f, ento:

f = { (x,y) | x A, y B e y = f(x) }

Isto significa que, dados os conjuntos A e B, a funo f tem a lei de correspondncia y =


f(x).

Assim sendo, apoiado nesse conceito, entendemos que devemos variar a abscissa (x),
para determinarmos a ordenada (y) e desta forma traar o grfico.

Por exemplo: Tracemos o grfico y = x


Matematicamente tem-se

Para implementar o exemplo no Matlab a abscissa deve variar de -5 at 5, ento:


>>x=-5:5;
Porm para calcular y devemos elevar x ao quadrado, ento:
>>y=x^2;
??? Error using ==> mpower
Matrix must be square.
Isso nos obriga a entender um novo conceito, isto :

Profa. Dora Pgina 35


Engenharia Introduo Computao
Noes de Matlab

Operaes elemento por elemento


Ao contrrio das operaes tradicionais como multiplicao de matriz, so operaes
entre elementos. Para tanto, dispomos de uma notao especial, como mostra o
quadro a seguir:

Smbolo Operao
.* Multiplicao
./ ou .\ Diviso
.^ Potncia

Utilizando essa notao no estaremos multiplicando a matriz X1x11 por X1x11 sendo isso
que provocou o erro atravs da sintaxe >> y=x^2.

O correto seria >> y=x.^2, onde teramos a seguinte multiplicao:


x11.x11, x12.x12, x13.x13, x14.x14, ...
(-5).(-5), (-4).(-4), (-3).(-3), (-2).(-2), ...
25

Assim sendo, o grfico da funo y = x2, em 20

Matlab ficaria:
>> x=-5:5; 15

>> y=x.^2;
10

>> plot(x,y)
Com o seguinte resultado: 5

0
-5 -4 -3 -2 -1 0 1 2 3 4 5

Ainda assim, nota-se que a curva no tem muita preciso, pois o passo como no foi
definido, assume o valor 1. Para que a curva fique mais precisa deve-se definir um
passo diferente de 1, como exemplificado a seguir:

25
>> x=-5:0.1:5;
>> y=x.^2;
20
>> plot(x,y)
15

Tem-se:
10

0
-5 -4 -3 -2 -1 0 1 2 3 4 5

Profa. Dora Pgina 36


Engenharia Introduo Computao
Noes de Matlab

Como traar um grfico, variando o estilo da linha, as marcaes dos pontos e a cor.
Para isso existe um padro, a saber:

Cor Marcador Estilo

Cdigo Descrio Cdigo Descrio Cdigo Descrio

y Amarelo . Ponto - Slido

m Magneta o Circulo : Pontilhado

c Ciano x x -. Ponto-trao

r Vermelho + mais -- Tracejado

g Verde * asterisco <none> Sem linha

b Azul s quadrado

w Branco d losango

k Preto v Triang.p/baixo

^ Triang.p/cima

< Triang.p/esquerda

> Triang.p/direita

p Pentgono

h Hexgono

<none> Sem marcador

Profa. Dora Pgina 37


Engenharia Introduo Computao
Noes de Matlab

Para explorar os recursos apresentados, vejamos o seguinte exemplo:


Dada a funo y=sen(2x), calcule a derivada e trace o grfico de funo, bem como da
derivada.
y sen(2 x) funo
y 2 cos(2 x) derivada

Em Matlab vem:
>> x=0:0.1:2*pi;
>> y1=sin(2*x);
>> y2=2*cos(2*x);
>> plot(x,y1,'o-',x,y2,'--r')

Cujo resultado :

1.5

0.5

-0.5

-1

-1.5

-2
0 1 2 3 4 5 6 7

Para refinar o grfico temos alguns comandos, a saber:

Como definir o eixo da abscissa com sua respectiva identificao


xlabel(texto);
Como definir o eixo da ordenada com sua respectiva identificao
ylabel(texto);
Como definir o ttulo do grfico com sua respectiva identificao
title(texto);
Como ativar as linhas de grade para referenciar o traado
grid on;
Como desativar as linhas de grade para referenciar o traado
grid off;

Profa. Dora Pgina 38


Engenharia Introduo Computao
Noes de Matlab

Para explorar esses comandos, faamos o grfico da reta y=2x-4, com x [0,5].
>> x=0:5;
>> y=2*x-4;
>> plot(x,y)
>> xlabel('Eixo das abscissas');
>> ylabel('Eixo das ordenadas');
>> title('y=2x-4');
>> grid on;
y=2x-4
6

3
Eixo das ordenadas

-1

-2

-3

-4
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Eixo das abscissas

Como ativar/desativar a legenda em um grfico?

Ativando legenda - comando: legend(texto,texto,...texto,posio)


Desativando legenda comando: legend off

Valor Posio Valor Posio Valor Posio

0 Escolha automtica 2 Canto superior esquerdo 4 Canto inferior direito

1 Canto superior direito 3 Canto inferior esquerdo -1 direita do desenho

Profa. Dora Pgina 39


Engenharia Introduo Computao
Noes de Matlab

Exemplo: y=cos(x) e y=sen(x)

>> x=0:0.1:2*pi;
>> y1=cos(x);
>> y2=sin(x);
>> plot(x,y1,'k',x,y2,':r');
>> grid on
>> xlabel('0<=x<=2pi');
>> ylabel('-1<=y<=1');
>> title('Funes trigonomtricas');
>> legend('cos(x)','sen(x)')

Funes trigonomtricas
1
cos(x)
0.8 sen(x)

0.6

0.4

0.2
-1<=y<=1

-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7
0<=x<=2pi

Como traar vrios grficos com distintos comandos plot?

Para atender essa necessidade se tem o seguinte comando:

hold on fixa as definies para os prximos grficos subsequentes


hold off desativa as definies

Profa. Dora Pgina 40


Engenharia Introduo Computao
Noes de Matlab

Para tanto trace os grficos de cada funo a seguir:


y=sen(x), y=sen(x-200) e y=sen(x-400), ento:
>> x=0:0.1:2*pi;
>> y1=sin(x);
>> plot(x,y1);
>> hold on;
>> y2=sin(x-20*pi/180);
>> plot(x,y2,'r--');
>> y3=sin(x-40*pi/180);
>> plot(x,y3,'k-.');
>> grid on;
>> xlabel('eixo X');
>> ylabel('eixo Y');
>> title('Variao do seno');
>> legend('sen(x)','sen(x-20)','sen(x-40)');

Variao do seno
1
sen(x)
0.8 sen(x-20)
sen(x-40)
0.6

0.4

0.2
eixo Y

-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7
eixo X

Como gerar vrios grficos cada qual em seu plano, isto , sub-grficos.

Comando: subplot(linha,coluna,plano em foco)

Exemplo: Vamos traar os grficos: sen(x), sen(2x),sen(3x) e sen(4x), com x[-,].

Profa. Dora Pgina 41


Engenharia Introduo Computao
Noes de Matlab

>> x=-pi:0.1:pi;
>> subplot(2,2,1); plot(x,sin(x));
>> grid on; title('y=sen(x)');
>> xlabel('eixo X'); ylabel('eixo Y');
>> subplot(2,2,2); plot(x,sin(2*x));
>> grid on; title('y=sen(2x)');
>> subplot(2,2,3); plot(x,sin(3*x));
>> grid on; title('y=sen(3x)');
>> subplot(2,2,4); plot(x,sin(4*x));
>> grid on; title('y=sen(4x)');
y-sen(x) y=sen(2x)
1 1

0.5 0.5
eixo Y

0 0

-0.5 -0.5

-1 -1
-4 -2 0 2 4 -4 -2 0 2 4
eixo X
y=sen(3x) y=sen(4x)
1 1

0.5 0.5

0 0

-0.5 -0.5

-1 -1
-4 -2 0 2 4 -4 -2 0 2 4

E se nos sub-grficos a quantidade no for par?


Exemplo: Trace os seguintes grficos y=sen(x), y=0.25sen(3x) e y=sen(x)+0.25sen(3x).

>> x=-pi:0.1:pi;
>> subplot(2,2,1); plot(x,sin(x));
>> grid on, title('y=sen(x)');
>> subplot(2,2,3); plot(x,0.25*sin(3*x));
>> grid on, title('y=0.25sen(3x)');
>> subplot(1,2,2); y=sin(x)+0.25*sin(3*x);
>> plot(x,y); grid on;
>> title('y=sen(x)+0.25sen(3x)');

Profa. Dora Pgina 42


Engenharia Introduo Computao
Noes de Matlab

y=sen(x) y=sen(x)+0.25sen(3x)
1 1

0.5 0.8

0 0.6

-0.5 0.4

0.2
-1
-4 -2 0 2 4
0
y=0.25sen(3x)
0.4 -0.2

0.2 -0.4

0 -0.6

-0.2 -0.8

-0.4 -1
-4 -2 0 2 4 -4 -2 0 2 4

Quando temos dados que variam em uma ampla gama de valores positivos, pode-se
utilizar o recurso grfico monolog, isto , escala logartmica, muito utilizado em vrias
situaes da rea de Engenharia. Para tanto, faamos o grfico da funo:

y ex com x 0,4 passo 0.1

>> subplot(1,1,1);
>> x=0:0.1:4;
>> y=exp(x);
>> semilogy(x,y);
>> grid on;
>> xlabel('0 <= x <= 4');
>> ylabel('eixo das ordenadas');
>> title ('Funo exponencial');

Profa. Dora Pgina 43


Engenharia Introduo Computao
Noes de Matlab

2
Funo exponencial
10

eixo das ordenadas

1
10

0
10
0 0.5 1 1.5 2 2.5 3 3.5 4
0 <= x <= 4

Como traar um grfico formado por pontos discretos?

Comando: stem(valores discretos, funo)

Exemplo: Para n={0,1,2,3,4,5,6,7,8,9,10,11} (valores discretos), trace o grfico da


funo:
2n
y sen
11

>> n=0:11; 0.8


>> y=sin(2*pi*n/11); 0.6
>> stem(n,y,'r'); 0.4
>> grid on;
0.2

-0.2

-0.4

-0.6

-0.8

-1
0 2 4 6 8 10 12

Profa. Dora Pgina 44


Engenharia Introduo Computao
Noes de Matlab

Com base nos conceitos desenvolvidos faa os exerccios a seguir:

1.Trace o grfico das funes lineares a seguir sabendo que x [-10,10]

2x 3 4 3x
a) y b) y
2 2

2.Tracem num mesmo grfico as funes: y x 2 1 e y x2 1

Sabendo que x [-3,3] com passo 0.1. Sendo que a primeira funo dever estar na
cor vermelha, circulo e slido, enquanto que a segunda funo dever estar na cor
preta e pontilhada.

y x 2 (1 3 ) x 3

3.Trace o grfico da funo quadrtica

com x [-2,2] com passo 0.1, defina tambm o eixo da abscissa, da ordenada e o
ttulo do grfico.

4.Trace o grfico y=2x para x [-3,3] com passo 0.1, definindo o eixo da abscissa,
ordenada, ativando a grade, fixada as definies trace o grfico de y log 2x e gere a
legenda.

5.Utilizando a escala molog construa o grfico de temperatura (F)x(K), isto ,


sabendo que a temperatura em (F) varia de -110 a 212 calcule a temperatura em (K),
sabendo que k 5 f 32 273.15
9

6.Sabendo que a fonte de voltagem V=120V com resistncia interna Rs de 50 e que a


resistncia de carga Rl varia de 1 at 100 . Faa o grfico da resistncia de carga
(Rl) pela carga em potncia mxima, sabendo que:

V V
I
RTOT Rs Rl
P I 2 Rl

Profa. Dora Pgina 45


Engenharia Introduo Computao
Noes de Matlab

Captulo 07

Arquivos M

Matlab pode executar uma seqncia de declaraes armazenada em arquivos


chamados "Arquivos M" (devido extenso ".m"). Muito do trabalho com Matlab est
na criao e refinamento de arquivos M.

Os arquivos M podem ser scripts (roteiros) ou funes.

Um script consiste em uma seqncia de comandos do Matlab. Se o arquivo tem um


nome, por exemplo, teste.m, ento o comando teste far o Matlab executar os
comandos declarados no arquivo teste.m. Todas as variveis em um script so
globais e mudam os valores das variveis de mesmo nome no ambiente da sesso de
Matlab atual.

Arquivos funes fornecem flexibilidade ao Matlab. Pode-se criar novas funes


especficas para o problema. Tais funes tm o mesmo status de qualquer outra
funo do Matlab. Em uma funo as variveis so locais.

Vamos inicialmente imaginar uma situao: precisamos traar o grfico da funo


y=sen(x).cos(x) com x[0,10] e passo = 0.1. Mas gostaramos de guardar essa tarefa
para utilizar em outra atividade.

Como podemos observar a tarefa foi completada, mas est armazenada em memria,
isto , se fecharmos o Matlab teremos que digitar todos os cdigos acima novamente.
Para melhorar a performance iremos criar um arquivo na forma de script.

Ento inicialmente no command window podemos ativar o editor nativo, porm um


arquivo .m pode ser criado usando-se qualquer editor de texto.

Profa. Dora Pgina 46


Engenharia Introduo Computao
Noes de Matlab

Com o editor disponvel, basta digitar os comandos e depois grav-lo com o nome
ex1.m, isto :

Uma vez armazenado o script para poder acion-lo, basta fazer o seguinte:

Agora mesmo que o Matlab seja desligado o script est armazenado para novas
execues, no sendo necessrio editar o cdigo, basta escrever o nome do script.

Profa. Dora Pgina 47


Engenharia Introduo Computao
Noes de Matlab

Para melhorar a implementao de um script em MatLab, discutiremos alguns


comandos, a saber:

Comando: %

Finalidade: Utilizado para gerar comentrio em uma linha do script.

Comando: disp(texto)

Finalidade: Exibir uma mensagem para o usurio

Comando: <varivel> = input(texto);

Finalidade: Atribuir para a varivel um determinado valor em tempo de execuo.

Comando: fprintf(texto e caracteres de formatao de resultado,<varivel>);

Finalidade: Exibir o resultado obedecendo a uma determinada formatao.

Caracteres de formatao de resultado

Caracter Descrio

%d Exibe valor como inteiro

%e Exibe valor em formato exponencial

%f Exibe valor em formato de ponto flutuante

%g Exibe valor em formato de ponto flutuante ou exponencial


o que for mais curto

%c.df Exibe uma quantidade de casas numricas (c) e fixa quantidade de


casas decimais (d)

\n Muda o prompt de linha.

Profa. Dora Pgina 48


Engenharia Introduo Computao
Noes de Matlab

Com base nesses conceitos vamos fazer um programa que:

Calcula a distncia entre dois pontos (x1,y1) e (x2,y2) em um plano


de coordenadas cartesianas, para tanto temos a seguinte
equao: d x1 x2 2 y1 y2 2

Ento executando vem:

Profa. Dora Pgina 49


Engenharia Introduo Computao
Noes de Matlab

Faamos ento os seguintes scripts:

1. Observando a verso simplificada


Ante na da parte frontal de um receptor de rdio
L C
AM, faa um programa interativo que
calcula a carga resistiva atravs da frmula
+ +
abaixo. Para tanto, deve ser fornecido os
Vo seguintes dados, o Indutor (L), o Capacitor
R VR
(C), a Resistncia (R), a Voltagem (Vo) e a
-
-
Freqncia (f). Ento calcule = 2..f e
T erra R
VR Vo
2
1
R 2 L
C

2. Fazer um script que calcula valores para a funo f (x) = a.e-2x+b e trace o grfico x
versus f (x), a partir dos valores inicial e final de x (xi e x f, tendo 100 valores de x entre
xi e xf) e dos parmetros a e b.

Profa. Dora Pgina 50


Engenharia Introduo Computao
Noes de Matlab

Captulo 08

Comando If

O comando if permite que se utilize comandos condicionais no MATLAB, tanto no


Command Window como no interior de scripts ou funes.

Vejamos agora a variao do comando IF

Fluxograma Algoritmo Sintaxe no MatLab

Se < condio > if <condio>

< instruo > <instruo>

Fim end

Para exemplificar sua utilizao faamos o seguinte programa:

Dada as impedncias (Z0 e Z1) do circuito, calcule as resistncias e a perda mnima,


desde que Z0 > Z1. Conforme figura e formulas a seguir:

R1

Z0 R2 Z1

z1 z1 z z
R1 z0 1 R2 PM 20 log 0 0 1
z0 z1 z1 z1
1
z0

Profa. Dora Pgina 51


Engenharia Introduo Computao
Noes de Matlab

Executando temos:

If...then...else

Fluxograma Algoritmo Sintaxe em MatLab

Se <condio> if <condio>
<instruo> <instruo>
: :
<instruo> <instruo>
Seno else
< instruo > <instruo>
: :
< instruo > <instruo>
Fim end

Profa. Dora Pgina 52


Engenharia Introduo Computao
Noes de Matlab

Para exemplificar sua utilizao faamos o seguinte programa:

Suponha que um txi esteja passando entre dois edifcios.


Considere que a varivel d contenha a distncia do veculo ao
edifcio mais prximo. Se o carro estiver a 10 metros do
edifcio, a velocidade calculada usando a seguinte equao:
v = 0,425 + 0,00175d2.
Se o txi estiver a uma distncia maior que 10 metros, use a
equao a seguir:
v = 0,625 + 0,12d 0,00025d2

Programando temos:

Executando:

Condio
a sintaxe da pergunta formulada na condicional para tanto, usa-se operadores e
estes se dividem em dois grandes grupos, a saber:

Operadores relacionais
Estes operadores permitem que se estabelea uma relao entre variveis ou variveis
e constantes, assim sendo, utiliza-se os seguintes smbolos conforme tabela a seguir:

Profa. Dora Pgina 53


Engenharia Introduo Computao
Noes de Matlab

Notao Matemtica Notao em MatLab Exemplos

= == A == B X == 2

> > A>B X>2

< < A<B X<2

>= A >= B X >= 2

<= A <= B X <= 2

~= A ~= B X ~=2

Operadores lgicos

Para exemplificar sua utilizao faamos o seguinte programa:

Dada a velocidade inicial (m/s), acelerao (m/s) e o


intervalo de tempo (s). Calcule a velocidade (m/s) e o
tipo de movimento, para tanto, se acelerao for zero a
velocidade ser igual velocidade inicial e o tipo de
movimento ser uniforme. Porm, uma vez calculada a
velocidade pela formula abaixo, deve ser analisada a
acelerao se esta for maior que zero para qualquer

a t
tipo de velocidade o tipo de movimento ser acelerado seno retardado. v v0t
2

Profa. Dora Pgina 54


Engenharia Introduo Computao
Noes de Matlab

Executando:

Profa. Dora Pgina 55


Engenharia Introduo Computao
Noes de Matlab

Condicional encadeada:

Fluxograma Algoritmo Sintaxe em MatLab

Se <condio> if <condio>
<instruo> <instruo>
: :
<instruo> <instruo>
Seno Se elseif <condio >
< instruo > <instruo>
: :
< instruo > <instruo>
Seno Se elseif <condio >
< instruo > <instruo>
: :
< instruo > <instruo>
Seno else
< instruo > <instruo>
: :
< instruo > <instruo>
Fim End

Faamos um programa utilizando esse recurso.

Tomemos trs corpos de prova, a saber, um esfrico outro cilndrico e outro


paralelogramo e calculemos o seu volume de acordo com a escolha do usurio. Isto :
Se a escolha for 1 ser esfrico,
Se a escolha for 2 ser cilndrico e
Se a escolha for 3 ser paralelogramo,
Qualquer outro valor deve ser desconsiderado com a respectiva mensagem
Uma vez feita a escolha dever ser solicitadas as medidas necessrias para o clculo do
volume, a saber:

4
esfrico r 3
3
cilindrico r 2 h
parale log ramo h c l

Profa. Dora Pgina 56


Engenharia Introduo Computao
Noes de Matlab

Executando, temos:

Profa. Dora Pgina 57


Engenharia Introduo Computao
Noes de Matlab

Profa. Dora Pgina 58


Engenharia Introduo Computao
Noes de Matlab

Faa os seguintes programas

1. Nesse programa de ser fornecido o fluido (em litros), a temperatura inicial e final
(em C), com relao ao aquecedor ter a potncia (em W). Com essas
informaes deve-se calcular o tempo de aquecimento da gua. Para tanto, leva-
se em considerao que o fluido e os dados do aquecedor devem ser positivos,
caso no seja deve exibir uma mensagem para o usurio. Para efetuar o clculo
solicitado devem-se levar em conta as seguintes frmulas:

Q A 1000TF TI
E
E Q 4,18 T
P
Onde Q o calor, E a energia e T o tempo.

2. Nesse programa de serem fornecidos os seguintes dados do ensaio, a saber:


espao inicial (em m), velocidade inicial (em m/s), acelerao (em m/s) e o
tempo (em s), com esses dados iro calcular o espao percorrido (em m) e a
velocidade (em m/s).Para tanto devemos levar em
considerao a acelerao for igual a zero devemos
efetuar o seguinte calculo (1) seno (2),
como formulas abaixo:
(1) s s0 v0 t v v0
a t2
(2) s s0 v0 t v v0 a t
2

Profa. Dora Pgina 59


Engenharia Introduo Computao
Noes de Matlab

Captulo 09

Estrutura de Repetio

Lao For...End

Observao importante:

A ausncia do incremento implica que cada execuo do lao seja somado 1 e o valor
inicial deve ser sempre menor que o valor final.

Para exemplificar a utilizao do lao for, faamos um exemplo que calcula o fatorial
de um nmero natural qualquer. Isto :

Sabemos matematicamente que:


0!=1 1!=1 n! = n.(n-1).(n-2)....3.2.1

Profa. Dora Pgina 60


Engenharia Introduo Computao
Noes de Matlab

Executando:

Calcule a distncia percorrida por um projtil quando ele lanado com uma
velocidade inicial em m/s e ngulo inicial a em graus entre 5 e 85, com incremento
de 10, ento desenhe a trajetria do percurso. Assumiremos que no h resistncia
do ar.

Para efetuar os clculos, devemos levar em considerao:

vOx vo cos(a )
vOy vo sen(a )
vOy
Ins tan te _ max
g
x(t ) vOx t
1
y (t ) vOy t g t 2
2
g 9.81(m / s ) 2

Profa. Dora Pgina 61


Engenharia Introduo Computao
Noes de Matlab

Executando:

Profa. Dora Pgina 62


Engenharia Introduo Computao
Noes de Matlab

Faamos um programa que nos permita calcular valores para a funo e traar seu
respectivo grfico.

1, se x 1
2
f ( x) x , se 1 x 1
x 2, se x 1

% traa o grfico de uma funo com intervalo


clear all;
clc;
n=0;
for t=-2:0.01:2
n=n+1;
x(n)=t;
if x(n)<-1
y(n) = 1;
elseif x(n)>=-1 & x(n)<=1
y(n) = x(n)^2;
else
y(n) = -x(n)+2;
end
end
plot(x,y,'r*-')

Executando:

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Profa. Dora Pgina 63


Engenharia Introduo Computao
Noes de Matlab

Vamos criar um programa que gere uma tabela de converso de C (Celsius) para F
(Farenheit) e K (Kelvin), entendendo que os C iro variar de 25 a 40 graus com
incremento 1.

%converte temperatura em celsius para farenheit


clear all;
clc;
disp('Gera tabela de converso de Celsius');
disp(' ');

fprintf('C \t F \t K \n')

for C=25:40

F = 1.8 * C + 32;
k = 273.15+C;

fprintf('%2.0f \t %5.1f \t %8.3f \n',[C F k])

end

Executando:

Gera tabela de converso de Celsius para Farenheit

C F K
25 77.0 298.150
26 78.8 299.150
27 80.6 300.150
28 82.4 301.150
29 84.2 302.150
30 86.0 303.150
31 87.8 304.150
32 89.6 305.150
33 91.4 306.150
34 93.2 307.150
35 95.0 308.150
36 96.8 309.150
37 98.6 310.150
38 100.4 311.150
39 102.2 312.150
40 104.0 313.150

Profa. Dora Pgina 64


Engenharia Introduo Computao
Noes de Matlab

Converso nmero para string e vice-versa

Para executar essa tarefa devemos conhecer alguns conceitos importantes, a saber:

num2str uma funo responsvel por converter um nmero em string


Sintaxe: num2str(nmero)

str2num uma funo responsvel por converte string em um nmero


Sintaxe: str2num(string)

Observao: para compor uma string que ser exibida, mesclando string fixas com
valores convertidos, devemos gerar uma varivel string, concatenando as informaes,
isto : <varivel> = [ string fixa string convertida ];

Para utilizar esses conceitos, faa um programa que gere a tabuada de um nmero
qualquer.

%tabuada de um nmero
clc;
clear all;
msg = 'D o nmero para gerar a tabuada = ';
n = input(msg);
for i = 1:10
m = n*i;
tabuada = [num2str(n) 'x' num2str(i) ' = ' num2str(m) '\n'];
fprintf(tabuada);
end

Executando:

D o nmero para gerar a tabuada = 7


7x1 = 7
7x2 = 14
7x3 = 21
7x4 = 28
7x5 = 35
7x6 = 42
7x7 = 49
7x8 = 56
7x9 = 63
7x10 = 70

Profa. Dora Pgina 65


Engenharia Introduo Computao
Noes de Matlab

Faa agora os seguintes programas:

1.Dada a funo abaixo, faa um programa que trace o seu respectivo grfico:

4 ex 2 para 6 x 2

f ( x) x2 para 2 x 0
x 6.51 / 3 para 0 x4

2.Faa um programa que determine a soma dos m primeiros termos da srie de


Leibniz, aonde a quantidade m deve ser informada pelo usurio.
m
1
(1)
n 0
n

2n 1
com (n 0,1,2,, m)

3.Faamos um programa que gere uma tabela da tenso sobre o capacitor, em funo
do tempo, durante a descarga, para tanto, dever ser fornecida as seguintes
informaes: V0 a tenso inicial do capacitor, R a resistncia do resistor e C a
capacitncia do capacitor.
B
t R

V V0e RC
A
V0
C V

Profa. Dora Pgina 66


Engenharia Introduo Computao
Noes de Matlab

Captulo 10
Comando While
O loop while uma importante estrutura para repetio de um grupo de comandos
quando a condio especificada for verdadeira. O formato geral para esta estrutura de
controle :

Fluxograma Algoritmo Sintaxe no MatLab

condio
n
Enquanto < while <condio>
s condio > <instruo>;
instruo < instruo >; :
: :
instruo : <instruo>;
< instruo >; end
Fim

Se a expresso for verdadeira, ento o grupo de comandos A executado. Depois


destes comandos serem executados, a condio novamente questionada. Se for
verdadeira, o grupo de comandos novamente executado. Quando a condio for
falsa, o controle pula para o comando posterior ao comando end. As variveis
modificadas no grupo de comandos A devem incluir as variveis na expresso, ou o
valor da expresso nunca ser mudado. Se a expresso for verdadeira (ou um valor
no-nulo), o loop torna-se um loop infinito. (Lembre-se que voc pode usar ^c para
sair um loop infinito).

Como primeira aplicao, faamos um programa que traa uma funo do segundo
grau, aonde o usurio determina o intervalo da abscissa e os coeficientes da funo.
Isto :

lim inicial x lim final


f ( x) ax 2 bx c
lim inicial ?
lim final ?
a?
b?
c?

Profa. Dora Pgina 67


Engenharia Introduo Computao
Noes de Matlab

%Traar o grfico de funo quadrtica num intervalo determinado


resp = 's';
while resp == 's'
clear all;
clc;
disp('Funo quadrtica y=A.x+B.x+C');
disp(' ');
li = input('D o limite inicial para x = ');
lf = input('D o limite final para x = ');
if li>=lf
disp('LIMITE errado...');
pause;
resp = 's';
else
p = input('D a variao de x ');
if p<=0
disp('PASSO errado...');
pause;
resp = 's';
else
a = input('D o coeficiente A da funo ');
if a==0
disp('Coeficiente A errado...');
pause;
resp = 's';
else
b = input('D o coeficiente B da funo ');
c = input('D o coeficiente C da funo ');
x = li:p:lf;
y = a*x.^2 + b*x + c;
plot(x,y,'*r-')
resp = input('Nova funo? (s/n)? ');
end
end
end
end

Executando:

Funo quadrtica y=A.x+B.x+C

D o limite inicial para x = 2


D o limite final para x = 1
LIMITE errado...

Funo quadrtica y=A.x+B.x+C

D o limite inicial para x = 1


D o limite final para x = 2
D a variao de x 0.1
D o coeficiente A da funo 0
Coeficiente A errado...

Profa. Dora Pgina 68


Engenharia Introduo Computao
Noes de Matlab

Funo quadrtica y=A.x+B.x+C

D o limite inicial para x = -2


D o limite final para x = 2
D a variao de x 0.1
D o coeficiente A da funo 1
D o coeficiente B da funo 0
D o coeficiente C da funo 0
Nova funo? (s/n)?

3.5

2.5

1.5

0.5

0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Obs.: a resposta uma string assim sendo se a resposta for sim digite s caso a
resposta seja no digite n

Vamos fazer um programa para calcular o perodo e o


deslocamento de um pendulo conforme escolha do
usurio, para tanto, ser necessrio fornecer o
comprimento do pendulo em cm, o ngulo em graus e o
tempo em segundos.
Os dados devero ser consistidos para garantir sua
validade operacional.
Para a confeco do programa devemos levar em considerao os seguintes conceitos:

Profa. Dora Pgina 69


Engenharia Introduo Computao
Noes de Matlab
A escolha deve ser 1 para perodo e 2 para deslocamento, qualquer outro
valor deve ser ignorado.
O comprimento e o tempo deve ser um valor positivo.
Ento:
c
Periodo p 2 .
980
t
Deslocamento d cos 2
p

% Periodo e deslocamento de um pendulo


resp = 's';
while resp == 's'
clc;
clear all;
disp('+-------------------------------+');
disp('| ESTUDO DE UM PENDULO |');
disp('| |');
disp('| 1. Perodo |');
disp('| |');
disp('| 2. Deslocamento |');
disp('| |');
disp('+-------------------------------+');
disp(' ');
escolha = input('Faa sua opo: ');
disp(' ');
if escolha ~= 1 & escolha ~= 2
fprintf('Opo errada.... \n');
pause;
resp = 's';
continue;
else
if escolha == 2
a = input('D o angulo em graus = ');
t = input('D o tempo em segundos = ');
if t <= 0
fprintf('Tempo errado..... \n');
pause;
resp = 's';
else
c = input('D o comprimento em metros = ');
if c<=0
fprintf('Comprimento errado... \n');
pause;
resp='s';
else
c = input('D o comprimento em metros = ');
if c<=0
fprintf('Comprimento errado... \n');
pause;
resp='s';
end
end
end
disp(' ');
if escolha == 1
fprintf ('Comp. \t Periodo \n');
else

Profa. Dora Pgina 70


Engenharia Introduo Computao
Noes de Matlab
fprintf ('Ang \t Deslocamento \n');
end
if c>0 | (escolha==2 & t>0)
controle = 0;
while controle <= 4
p = 2*pi*sqrt(c/980);
if escolha ==1
fprintf ('%5.1f \t %8.3f \n',[c p]);
c = c+5;
else
ard = a*pi/180;
d = ard*cos(2*pi*(t/p));
fprintf ('%4.0f \t %8.3f \n',[a d]);
a = a+10;
end
controle = controle + 1;
end
end
disp(' ');
resp = input('Novo estudo do pendulo? (s/n) = ');
end
end
end

Faamos um programa que estudo o efeito DOPPLER. Para tanto, devemos levar em
considerao a velocidade da fonte (Vf) em m/s, velocidade do observador (Vo) em m/s
e a freqncia da fonte (f) em kHz. Ao estudar o efeito DOPPLER, temos que escolher
como a fonte e o observador se comportam, isto , se o efeito convergente,
divergente, sentido da fonte ou sentido do observador.
Ento temos as seguintes possibilidades:

Assim possvel calcular a freqncia ouvida pelo observador medida que a


velocidade do observador aumenta ou diminui de uma unidade em relao fonte de
acordo com o caso em estudo. Cabe destacar que estamos considerao o meio de
propagao o ar cuja velocidade de 340 m/s e cuja temperatura de 25C. Com base
nessas informaes vamos gerar uma tabela da velocidade e freqncia em relao ao
observador.
%Efeito DOPPLER
clear all;
clc;
resp = 's';
while resp == 's'
clc;
clear all;
disp (' ');

Profa. Dora Pgina 71


Engenharia Introduo Computao
Noes de Matlab
disp ('+--------------------------+');
disp ('| Efeito DOPPLER |');
disp ('| |');
disp ('| 1. Convergente |');
disp ('| 2. Divergente |');
disp ('| 3. Sentido da fonte |');
disp ('| 4. Sentido do observador |');
disp ('| |');
disp ('+--------------------------+');
disp (' ');
escolha = input('Faa sua opo: ');
if escolha ~=1 && escolha ~=2 && escolha ~= 3 && escolha ~= 4
fprintf('Opao errada \n');
pause;
resp='s';
else
disp(' ');
f = input('D a frequncia da fonte em (kHz) ');
if f<=0
fprintf ('FREQUNCIA errada...');
pause;
resp = 's';
continue;
end
vf = input('D a velocidade da fonte em (m/s) ');
if vf<=0
fprintf('VELOCIDADE DA FONTE errada...');
pause;
resp = 's';
continue;
end
vo = input('D a velocidade do observador em (m/s) ');
if vo<=0
fprintf('VELOCIDADE DO OBSERVADOR errada...');
pause;
resp = 's';
continue;
end
disp(' ');
fprintf ('V_Observador \t F_Observador \n');
controle = 0;
while controle <=4
if escolha == 1
fo = f*((340+vo)/(340 - vf));
fprintf('%10.4f \t %12.4f \n',[vo fo]);
vo = vo+1;
elseif escolha == 2
fo = f*((340-vo)/(340 + vf));
fprintf('%10.4f \t %12.4f \n',[vo fo]);
vo = vo-1;
if vo<0
break;
end
elseif escolha == 3
fo = f*((340+vo)/(340 + vf));
fprintf('%10.4f \t %12.4f \n',[vo fo]);
vo = vo+1;
elseif escolha == 4
fo = f*((340-vo)/(340 - vf));
fprintf('%10.4f \t %12.4f \n',[vo fo]);
vo = vo-1;

Profa. Dora Pgina 72


Engenharia Introduo Computao
Noes de Matlab
if vo<0
break;
end
end
controle = controle + 1;
end
disp(' ');
resp = input('Novo estudo (s/n) = ');
end
end

Faamos um programa para exibir a velocidade mdia do fluxo na seo total de gua
corrente de um canal.

Para tanto, ser necessrio receber as seguintes informaes: a profundidade mdia


hidrulica em (m), a diferena de superfcie em (m), o
comprimento do curso da gua em (m) e o coeficiente de Manning.
Dever ser perguntado se existe variao da profundidade mdia
hidrulica se a resposta for no deve assumir o valor zero, caso
haja dever ser fornecido esse valor em (m) sendo o mesmo
acrescido na profundidade mdia hidrulica fornecida inicialmente
fazendo dez interaes gerando uma tabela da profundidade pela
velocidade mdia em cada simulao.
Ao final deve haver a pergunta se haver novo ensaio. Caso a
resposta seja sim retorne ao inicio do programa e se a resposta for
no encerre o programa.

Para tanto temos as seguintes frmulas:

Onde:
D = Diferena de superfcie
C = Comprimento do curso da gua;
P = Profundidade mdia hidrulica;
N = Coeficiente de Manning.

Profa. Dora Pgina 73


Engenharia Introduo Computao
Noes de Matlab

Captulo 11

Formatos Numricos

Quando o MATLAB mostra um resultado numrico ele segue certas regras.

No caso de nenhum formato estar definido, se um resultado um nmero inteiro, o


MATLAB mostra como um inteiro.

Quando um resultado um nmero real, o MATLAB mostra uma aproximao com at


quatro casas decimais.

Se os dgitos significativos estiverem fora desta faixa, o MATLAB mostra o resultado em


notao cientfica.

Voc pode definir um formato diferente. Vejamos agora algumas possibilidades:

Comando: format short exibe o resultado com 4(quatro) dgitos decimais (formato
padro). Veja o exemplo:

Profa. Dora Pgina 74


Engenharia Introduo Computao
Noes de Matlab

Comando: format short g exibe o resultado com 5(cinco) dgitos decimais com ou
sem expoente.Veja o exemplo:

Comando: format short e exibe o resultado com 5(cinco) dgitos decimais mais
expoente.Veja o exemplo:

Comando: format long exibe o resultado com 14 (quartoze) dgitos decimais. Veja o
exemplo:

Comando: format long g exibe o resultado com 15 (quinze) dgitos decimais,com ou


sem expoente. Veja o exemplo:

Profa. Dora Pgina 75


Engenharia Introduo Computao
Noes de Matlab

Comando: format long e exibe o resultado com 15 (quinze) dgitos decimais mais
expoente. Veja o exemplo:

Comando: format bank exibe o resultado com 2(dois) dgitos decimais. Veja o
exemplo:

Comando: format compact exibe o resultado suprimindo as linhas adicionais. Veja o


exemplo:

Comando: format loose exibe o resultado restabelecendo as linhas adicionais. Veja


o exemplo:

Profa. Dora Pgina 76


Engenharia Introduo Computao
Noes de Matlab

Comando: format rat exibe a razo aproximada entre inteiros pequenos. Veja o
exemplo:

Variveis permanentes
Existem algumas variveis que so intrnsecas ao MATLAB e que no podem ser
apagadas. Algumas so interessantes:

ans Resposta mais recente, que no flops Contador de operaes


foi atribuda a nenhuma varivel. matemticas
eps Preciso da mquina NaN Not a Number
(indeterminao)
realmax Maior nmero de ponto flutuante inf Infinito
realmin Menor nmero de ponto computer Tipo de computador
flutuante
pi 3.14159265358979 why Resposta sucinta
i, j Unidade imaginria version Verso do Matlab

Funes matemticas comuns:


Funo Descrio
abs(x) Modulo ou valor absoluto de x
cosh(x) Coseno hiperblico de x
gcd(x,y) MDC dos inteiros x e y
imag(x) Parte imaginria de um nmero complexo
lcm(x,y) MMC dos inteiros x e y
max(x) Retorna o mximo valor do vetor x
mean(x) Retorna a mdia aritmtica do vetor x
min(x) Retorna o menor valor do vetor x
real(x) Parte real de um nmero complexo
round(x) Arredonda o valor de x
sinh(x) Seno hiperblico de x
std(x) Retorna o desvio padro do vetor x

Profa. Dora Pgina 77


Engenharia Introduo Computao
Noes de Matlab

Captulo 12

Limite
Seja I um intervalo aberto ao qual pertence o nmero real a. Seja f uma funo
definida para x I {a}. Dizemos que o limite de f(x), quando x tende a a, L e
escrevemos:


lim xa f ( x) L 0, 0 0 x a f ( x) L
Em Matlab temos a seguinte sintaxe:

Operao Matemtica Comando no MatLab

lim f ( x) limit(f)
x0

lim f ( x) limit(f,x,a) ou limit(f,a)


xa

lim f ( x) limit(f,x,a,left)
x a

lim f ( x) limit(f,x,a,right)
x

Para executar o limite no MatLab se faz necessrio definir a varivel que ser
calculada, para tanto, temos o seguinte comando:

syms <variavel> <variavel> ... <variavel>

Obs.: possvel declarar apenas uma ou no caso de haver mais de uma declara-se a
varivel separada por espao.

Exemplos:

sen( x)
lim
x 0 x

Definio de Derivada

Seja f uma funo definida em um intervalo aberto I e x0 um elemento de I. Chama-se


f ( x) f ( x0 )
derivadas de f no ponto x0 o limite lim se este existir e for finito.
x x0 x x0

Profa. Dora Pgina 78


Engenharia Introduo Computao
Noes de Matlab

A derivada de f no ponto x0 pode ser indicada das seguintes formas:

f ( x) f ( x0 )
f ( x0 ) lim ou
x x0 x x0
y
f ( x0 ) lim ou
x 0 x

f ( x0 x) f ( x0 )
f ( x0 ) lim
x 0 x

Exemplos:

No Matlab temos a seguinte sintaxe:

diff(f, var, ord), onde:


f: funo literal de uma ou mais variveis
var: varivel em relao a qual deseja-se derivar
ord: ordem da derivada a ser calculada

Assim, tem-se:
diff(f) derivada de f em relao a x
diff(f,s) derivada de f em relao a s
diff(f,2) derivada de f duas vezes em relao a x
diff(f,s,2) derivada de f em relao a s duas vezes

Profa. Dora Pgina 79


Engenharia Introduo Computao
Noes de Matlab

Aplicao: Um mvel desloca-se sobre um segmento de reta obedecendo equao


horria s = cos(t) atravs do sistema internacional de unidades, ento determine a
equao da velocidade e da acelerao. Lembrando que: v(t)=s(t) e a(t)=v(t). Faa
ento um programa que trace o grfico das trs equaes para 0t 6.

Pelo Command Window

Gerando as linhas de cdigo, vem:

Profa. Dora Pgina 80


Engenharia Introduo Computao
Noes de Matlab

Exemplos:

Integral

Integral Vamos agora procurar um processo para calcular a


integral de f em [a,b] sem termos que recorrer definio.
Para tanto, consideremos f contnua e no negativa em [a,b].
b

O nmero f ( x)dx representa a rea A sob o grfico de f(x) no intervalo [a,b]. Isso :
a

Profa. Dora Pgina 81


Engenharia Introduo Computao
Noes de Matlab

No MatLab so dadas trs funes para calcular a rea sob a curva num intervalo
finito. A saber:

1. A integrao numrica usando o processo chamado de quadratura, no MATLAB,


pode ser feita atravs da seguinte sintaxe:
quad(fun,a,b) onde fun a funo contnua
a o limite inferior do intervalo de integrao
b o limite superior do intervalo de integrao.

Integrao numrica usando a regra de Simpson recursiva

Exemplo: Calcule a rea sob o grfico de f(x)=x - 5x + 9, x[1,4]

Matematicamente temos:
4
x3 x2
A x 2 5x 9 4
1 5 9x
1
3 2
43 42 13 12 52 41 21
5 9.4 5 9.1 10.5
3 2 3 2 3 6 2

No Matlab, utilizando a funo quad, temos:

Para definir a funo cujos valores de clculo sero


definidos a posteriores utiliza-se a seguinte forma
sinttica:
@(x) funo;
Aonde so tratados os possveis valores de x, sendo
obrigatrio o seu uso nessa funo.

ou

2. Aproxima a integral sobre a funo, pelo


somatrio das reas dos trapzios, no MATLAB,
pode ser feita atravs da seguinte sintaxe:
z = trapz(x,y)
Onde: x = intervalo fechado da integrao
b
y = funo de integrao. n
A f ( x)dx f ( xi ) i x
a i 1

Profa. Dora Pgina 82


Engenharia Introduo Computao
Noes de Matlab

x2
Exemplo: Faa uma estimativa da rea A sob o grfico de f ( x) 250
10
com 0 x 50, dividindo o intervalo [0,50] em sub-intervalos de comprimento 10.

Matematicamente seria:

50
x2
A 250
0
10

No Matlab tem-se:

3. Outra notao para o clculo da integral de uma funo no MATLAB pode ser feita
atravs das seguintes sintaxes:

int(f) a integral indefinida da funo f em relao varivel x


int(f,a,b) a integral definida da funo f em relao varivel x de a at b

Exemplos:

x. cos( x)dx

1
x3

0 1 x
dx ?

Profa. Dora Pgina 83


Engenharia Introduo Computao
Noes de Matlab

Exerccio

Faa um programa que estude o sistema massa-mola. Para tanto devemos receber via
teclado as seguintes informaes: a constante elstica da mola em (N/m), o
deslocamento mximo da mola em (cm) e a massa do bloco ligado mola em (g).
Calcula-se ento a Energia total, a fora na mola, a energia potencial, a energia cintica
e a velocidade da massa. Fazendo ento em subgrficos as seguintes representaes:
deslocamento versus energia cintica, deslocamento versus energia potencial,
deslocamento versus energia total e deslocamento versus velocidade da massa. Para
tanto temos as seguintes sentenas:
Fisicament e temos :
dv d 2 x
acelerao a
dt dt 2
dx
dt
velocidade v adt

deslocamen to x vdt
Sistema massa mola :
d 2x d 2x k
Fora f kx ma kx m 2
a 2
x
dt dt m
1 2
Energia potencial E p kx
2
1 2
Energia cintica Ec mv
2

Profa. Dora Pgina 84

S-ar putea să vă placă și