Sei sulla pagina 1di 97

Curso Introdutório

Antonio Duarte –Autor do material


Guilherme Winck – Ministrante
Dandara C. Cembranel – Monitora
César Augusto - Monitor
Aproximadamente 36.600.000 resultados (0,18 segundos)
Help
Doc
Clear command window
Case sensitive

Tipos básicos

1. Matriz
2. Char Array
3. Estrutura
Matriz
Char Array
Banco de Dados da “Turma”:
Alunos: Jorge, Camila, Rafaela, Pedro
Professor: Marcelo
Horário: 13h
Sala: 221

Estrutura “Turma”
turma.alunos.nomes=strvcat( ‘jorge',’camila',‘rafaela', ...
‘pedro');
turma.professor.nome=(‘Marcelo‘)
turma.horario=1300
turma.sala=221
Estrutura
Comando who e whos
Dicas
Use “clear A” para apagar a variável A.

Use “clear all” para apagar todas as variáveis armazenadas.

Use “size(A) ” para identificar as dimensões da matriz. A


maior dimensão é dada pelo comando “length(A) ”

Use A=0:0.5:10 para gerar vetores com dados em seqüência.


Operações com Matrizes
i) Soma e subtração: soma (ou subtrai) elemento por elemento
da matriz.

A+B
A-B
Operações com Matrizes
ii) Multiplicação e Divisão de matrizes: atenção às regras da
álgebra, pois as dimensões das matrizes têm que ser coerentes!

A*B
B/A
Operações com Matrizes
iii) Multiplicação e divisão elemento por elemento:

A .* B
A ./ B
Operações com Matrizes
1. Matriz Transposta: A’

2. Cria Matriz Identidade: eye(número de linhas, número de


colunas)

3. Cria Matriz Zeros: zeros(número de linhas, número de


colunas)

4. Cria Matriz Unitárias: ones(número de linhas, número de


colunas)
Operações com Matrizes
5. Cria Matriz Randômica (composta de números aleatórios):
rand(número de linhas, número de colunas)

6. Determinante: det(matriz)

7. Inversa: inv(matriz)

flipud & fliplr


Operações com Matrizes
5. Cria Matriz Randômica (composta de números aleatórios):
rand(número de linhas, número de colunas)

6. Determinante: det(matriz)

7. Inversa: inv(matriz)

flipud & fliplr


Operações com Matrizes
5. Cria Matriz Randômica (composta de números aleatórios):
rand(número de linhas, número de colunas)

6. Determinante: det(matriz)

7. Inversa: inv(matriz)

flipud & fliplr


1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16

Elemento = Matriz(2,3) ou Matriz(10)


Polinômios
O MATLAB representa polinômios como vetores de uma linha,
contendo os coeficientes ordenados em ordem decrescente. Por
exemplo, o polinômio:

É representado por:
Polinômios
Funções relacionadas a polinômios:
Polinômios
Funções relacionadas a polinômios:
Polinômios
Funções relacionadas a polinômios:
Polinômios
Funções relacionadas a polinômios:
Polinômios
Funções relacionadas a polinômios:
Polinômios
Funções relacionadas a polinômios:
Gráficos (plot)
>> t=0:0.01:10;
>> figure >> y=sin(t);
>> plot(t,y)
Dicas
Use “[x,y]=ginput(2)” para capturar dois pontos no gráfico

Use “close all” para fechar todas as figuras

Use “clf” para apagar a figura atual


(Subplot)
(Visibilidade)
>> t=0:0.01:10;
>> y=sin(t); Hold on
>> z=cos(t);
>> plot(t,y,'g-',t,z,'r-')
>> legend('seno','cosseno')
>> t=0:0.01:10;
>> y=sin(t); Hold on
>> z=cos(t);
>> plot(t,y,'g-',t,z,'r-')
>> legend('seno','cosseno')

Ou...

>> t=0:0.01:10;
>> y=sin(t);
>> z=cos(t);
>> plot(t,y,'g-‘)
>> hold on
>> plot(t,z,'r-')
>> legend('seno','cosseno')
>> t=0:0.01:10;
>> y=sin(t); Hold on
>> z=cos(t);
>> plot(t,y,'g-',t,z,'r-')
>> legend('seno','cosseno')

Ou...

>> t=0:0.01:10;
>> y=sin(t);
>> z=cos(t);
>> plot(t,y,'g-‘)
>> hold on
>> plot(t,z,'r-')
>> legend('seno','cosseno')
>> t = 0:0.01:10;
>> x = sin(t);
Plot3 / Grid on
>> y = sin(t);
>> z = cos(t);
>> figure; plot3(x, y, z);
>> grid on
>> xlabel('x'); ylabel('y');
zlabel('z');
xx=0:0.01:1;
yy=0:0.01:1;
Surf
[X,Y]=meshgrid(xx,yy);

Z=exp(-0.5*(X.^2+Y.^2));

colormap jet
figure;

surf(X,Y,Z);

rotate3d on;
shading interp;
Customização
Dicas
abs(x) - valor absoluto de x.
cos(x) – cosseno de x.
acos(x) - arco cosseno de x.
sin(x) – seno de x.
asin(x) - arco seno de x.
tan(x) – tangente de x.
atan(x) - arco tangente de x.
exp(x) - exponencial de x.
gcd(x,y) – máximo divisor comum de x e y.
lcm(x,y) - mínimo múltiplo comum de x e y.
log(x) - logaritmo de x na base e.
log10(x) - logaritmo de x na base 10.
rem(x,y) - resto da divisão de x por y.
sqrt(x) - raiz quadrada de x.
Funções
(if - else)
(AND - OR)
(Switch)
(While)
(While)

(For)
Dicas
Use save ‘nome do arquivo’ nome das variáveis para
salvar as variáveis do workspace

Use load ‘nome do arquivo’ para retornar valores salvos


ao workspace
Exemplo 1
Sequência de Fibonacci
A sequência de Fibonacci é uma sucessão de números que,
misteriosamente, aparece em muitos fenômenos da natureza. Descrita
no final do século 12 pelo italiano Leonardo Fibonacci, ela é infinita e
começa com 0 e 1. Os números seguintes são sempre a soma dos dois
números anteriores. Portanto, depois de 0 e 1, vêm 1, 2, 3, 5, 8, 13, 21,
34…

Ao transformar esses números em quadrados e dispô-los de maneira


geométrica, é possível traçar uma espiral perfeita, que também
aparece em diversos organismos vivos.
Exemplo 1
Resolução
Exemplo 2
Proporção áurea
Proporção Áurea
Outra curiosidade é que os termos da sequência de Fibonacci também
estabelecem a chamada “proporção áurea”, muito usada na arte, na
arquitetura e no design por ser considerada agradável aos olhos.

Seu valor é de 1,618 e, quanto mais você avança na sequência de


Fibonacci, mais a divisão entre um termo e seu antecessor se aproxima
desse número.

Essa sequência aparece na natureza, no comportamento da refração da


luz, dos átomos, crescimento das plantas, nas espirais das galáxias, dos
marfins de elefantes, ondas no oceano, furacões, etc.
Exemplo 2
Resolução
Convergência da proporção áurea
1.621

1.62

1.619

1.618

1.617

1.616

1.615
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
20
x 10
Exemplo 3
Função Custo / Mínimo Local
Determinado processo possui função custo definida pela equação:

Y=((x-3)2)-6
É necessário encontrar x que minimize o valor de Y. Mesmo sabendo
previamente a solução, vamos resolver através do MATLAB. Utilizamos
então a função “fminsearch”.
3

-1

-2

-3

-4

-5

-6
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Exemplo 4
Circuitos Elétricos
A partir desse circuito obtemos o seguinte sistema de equações
lineares, cujas incógnitas são as correntes no circuito:

Observe que as equações foram escritas de forma literal. A vantagem de


escrever as equações assim é que, mesmo que os valores dos resistores
e das fontes mudem, elas continuarão válidas.
Uma vez que as operações no MATLAB® são de característica matricial, ao se
representar o sistema linear na forma de igualdade de matrizes A× I = B , foi dado o
passo final para a representação do problema na linguagem do mesmo.
Exemplo 4
Resolução
Exemplo 5
Modelagem & Dinâmica de Processos
Modelos simples - o tanque de nível
pode-se escrever o balanço de massa do sistema

dmt 
  FE  F  (2)
dt
Ainda,

dmt  dht 
 A (3)
dt dt
e, portanto,

dht  1
 FE  F  (4)
dt A

1
Modelos simples - o tanque de nível
Freqüentemente, considera-se a vazão de saída do tanque
proporcional à altura da coluna de líquido é inversamente
proporcional a uma resistência ao escoamento (R):

h
F  (5)
R
Logo,

dht  1  h
  FE   (6)
dt A R

1
Modelos simples - o tanque de nível
Este modelo simples de um tanque de nível, sem balanço de
energia, possui uma solução analítica:

 t

ht   RFE 1  e 

RA
(7)
 

Para simular este modelo, basta escolher os valores das


constantes R, A e FE, das condições iniciais h0 e t0.
A simulação da solução analítica do modelo do tanque de
nível é mostrada a seguir.

1
Verifique a consistência do calculo: length(h) deve ser igual a length(t), já que cada
instante “t” gerou um valor “h”. É sempre útil conferir a dimensão das variáveis,
principalmente a medida que as rotinas forem tornando-se complexas.
Exemplo 6
Processamento de Sinais
Sinal
2

1.5

0.5

-0.5

-1

-1.5

-2
0 5 10 15 20 25 30 35 40 45 50
Tempo (milisegundos)
Distribuição de Frequências de y
120

100

80

60

40

20

0
0 50 100 150 200 250 300 350 400 450 500
Frequencia (Hz)
Sinal Corrompido com Ruído Aleatório e Média Zero
6

-2

-4

-6

-8
0 5 10 15 20 25 30 35 40 45 50
Tempo (milisegundos)
Distribuição de Frequências de y
100

90

80

70

60

50

40

30

20

10

0
0 50 100 150 200 250 300 350 400 450 500
Frequencia (Hz)
Fim!
Obrigado por sua presença.

Potrebbero piacerti anche