Você está na página 1de 36

O que é MATLAB?

MATLAB é um espaço de trabalho.

MATLAB é uma linguagem de programação.


COMENTARIOS GERAIS

MATLAB (matrix laboratory).

MATLAB foi originalmente escrito para facilitar o


acesso aos softwares de cálculo matricial
LINPACK e EISPACK.

A DIFERENCIA COM OUTRAS LINGUAGENS


É QUE PODE-SE REALIZAR OPERAÇÕES
COM MATRIZES COMO SÃO ESCRITAS
MATEMATICAMENTE:

A=matriz*vetor

VAMOS COMEÇAR
MATLAB como espaço de trabalho
MATLAB é um espaço de trabalho onde estão
definidas as operações básicas para escalares, e
entre vetores e matrizes.

Operação entre escalares:

» 4*5
ans =
20

Operação entre matrizes:

Para realizar operações com matrizes é conveniente


definir variáveis e atribuir-lhes valores
Para operar com variáveis é necessário primeiro
atribuir valor às variáveis.
» a=4
a =
4
As matrizes se definem:
» A=[1 2
3 5]

ou com outra sintaxe:


A=[1,2;3,5]

Uma operação entre a matriz A e o vetor b dando c


define-se:

» c=A*b
c = 9
25
O MATLAB assume que todas as variáveis são
definidas como matrizes de números complexos.

É importante lembrar de respeitar as regras de


operações com matrizes.

Como em uma calculadora podem ser utilizadas


funções trigonométricas e matriciais, e realizar
"chamadas a funções e subrotinas" com os dados
ingressados no espaço de trabalho.
» sin(A)
ans =
0.8415 0.9093
0.1411 -0.9589

No espaço de trabalho são armazenadas todas


as variáveis utilizadas possibilitando a sua
visualização a qualquer momento.

» A
A =
1 2
3 5
» c
c =
9
25

MATLAB como linguagem de programação

MATLAB é uma linguagem pois a


concatenação dos comandos dados no espaço
de trabalho gera um programa, que pode ser
armazenado em um arquivo e "chamado"
sucessivas vezes.
Como linguagem de programação é mais
"potente" que FORTRAN ou C, já que opera
com vetores e matrizes sem a necessidade de
loops. Isto permite reduzir o número de linhas
de programa e acelerar o cálculo.

Exemplo: 1000 vezes a soma A+B


loops=1000;
ordem=[10,10];
A=randn(ordem);
B=rand(ordem);
tic
for k=1:loops
A+B;
end
matl=toc
tic
for k=1:loops
for i=1:ordem
for j=1:ordem
A(i,j)+B(i,j);
end
end
end
loop=toc

Naturalmente é mais fácil escrever todo este texto em


um arquivo e utilizar os recursos do windows para
cortar e colar.

Uma boa idéia.

Mas, se arquivo tiver extensão .m, escrevendo o nome


dele no espaço de trabalho pode-se executar o
programa.

Para fazer isto clicar na palavra File na barra de


menu;
Agora clicar em New  M-file
Escrever o programa e salvar como
primer_programa.m
E agora é possível "rodar" o programa
MATLAB é uma linguagem "interpretada" e
não "compilada", porém, com um número de
operações built-in que possibilitam um
desempenho aceitável se o problema a
resolver não for de grande porte ou se não
precisar ser resolvido em curto espaço de
tempo.

MATLAB vs. outras linguagens

O MATLAB é uma linguagem interpretada com


funções built-in (desde operações básicas com
escalares a cálculo de funções matriciais, como por
exemplo, inversa de uma matriz).
As operações com matrizes, e a resolução
de alguns somatórios (que podem ser
colocados como operações vetoriais) são
realizadas sem a necessidade de utilizar
loops, como em FORTRAN ou C. (ex.:
produto interno)

Embora o MATLAB não seja uma linguagem


compilada, e por tanto mais lenta, um grande
número de funções importantes são built-in.
Ou seja, se for possível escrever código com
as funções definidas no MATLAB ao invés de
"programar tudo" o resultado final é um
programa tão ou mais rápido que um
desenvolvido totalmente em uma linguagem
tradicional.

DESVANTAGEM

Os aplicativos criados só rodam no ambiente


MATLAB. Logo, para executar programas em
linguagem MATLAB é necessária uma
licença por usuário (máquina).

Mas há uma solução se o objetivo for rodar


programas em máquinas que não possuem
MATLAB.
Existem tradutores de MATLAB para
FORTRAN ou C. Cabe ressaltar que a tarefa
não é simples.

Re aproveitando código FORTRAN ou C

Utilizando cabeçalhos e rodapés definidos pelo


MATLAB, e um compilador compatível, é possível
executar um programa FORTRAN ou C dentro do
espaço de trabalho do MATLAB. Esta também não é
uma tarefa simples, portanto, se o número de linhas
de código não for muito grande, vale a pena escrever
o programa em MATLAB.
VISUALIZAÇÃO

O MATLAB oferece funções de processamento


gráfico em 2-D e 3-D (de alto nível) e objetos
gráficos (baixo nível) tais como linhas e superfícies
para desenvolver aplicações específicas.

EXEMPLOS DE FUNÇÕES DE ALTO NÍVEL

Peaks é um conjunto de dados para mostrar a


capacidade gráfica do MATLAB.
plot(peaks)

mesh(peaks)
surf(peaks)

contour3(peaks,20)
contour(peaks)

surfc(peaks)
meshz(peaks)

bar([2 4 3 5 6 8 7
9 1])

ENTRE OUTROS GRAFICOS...


Objetos gráficos

(exemplo: expo do MATLAB)


AJUDA NO MATLAB

No espaço de trabalho pode-se digitar

» help
e imediatamente aparecera uma lista de diretórios
onde encontrar funções adequadas às necessidades
para obter mais ajuda escrever por exemplo
» help elmat
e se quiser saber a sintaxe de uma função solicitar
» help zeros
Também é possível obter ajuda em janelas windows

BIBLIOTECAS
Além das funções básicas do MATLAB (vide help),
há bibliotecas escritas na própria linguagem
chamadas TOOLBOXES. (para exemplos vide
EXPO)

Alguns TOOLBOXES são comercializados pela


Mathwoks, porém, existem outros disponíveis em
vários lugares no mundo (de graça), acessíveis através
da Internet.

O usuário pode desenvolver seus próprios


TOOLBOXES incluindo funções e/ou programas de
uso freqüente. Podem ser criados textos de ajuda ao
usuário e incorporá-los ao help do MATLAB.

Alguns Toolboxes da Mathworks


Processamento de sinais - É um conjunto de funções
que permitem projetar filtros no domínio do tempo e
no domínio da freqüência, análise do atraso de fase
produzido pelo filtro, transformação de filtros passa
baixo - médio - alto (com representações em funções
de transferência e variável de estado). Há funções que
permitem transformar modelos contínuos em seus
correspondentes discretos.
É possível determinar espectros de potência de sinais
(para detecção de ruído contaminando medições e a
sua possível eliminação através de filtros), e
modificar a sua freqüência de amostragem.

Controle de processos - Análise da dinâmica de


processos e projeto de controladores. Podem ser
construídos modelos em variáveis de estado e funções
de transferência, tanto discretos como contínuos.
Existem programas para conversão destes modelos
em quatro tipos diferentes de representação (espaço
de estados, pólos e zeros, funções de transferência e
expansão em frações parciais).
Análise de sistemas dinâmicos com métodos clássicos
(Bodé, Nyquist, Nichols, determinar margens de
ganho e fase, lugar das raízes, etc). E com métodos
modernos (controlabilidade, observabilidade, análise
de autovalores, etc.). Também é possível projetar
controladores com diferentes técnicas (alocação de
pólos, controle ótimo, etc.), e observadores como
filtro de Kalman.

Splines - Permite a construção de funções por partes


com polinômios de diferentes graus (splines).
Funções de várias variáveis podem ser obtidas como
produtos tensoriais de splines monovariáveis.
Usadas em interpolação, solução de equações
diferenciais, funções de ativação em redes neuronais.
São curvas suaves (com derivadas até ordem n, com
n dado pelo usuário).

Otimização - Permite realizar otimizações com


restrições utilizando diferentes métodos, programação
linear, programação quadrática.
Podem ser utilizados gradientes analíticos ou
numéricos e até 18 parâmetros de controle na
otimização.
Também podem ser abordados problemas de
otimização multi-objetivo.

Identificação - Esta biblioteca permite abordar o


problema de identificação de sistemas dinâmicos. É
possível representar modelos em variáveis de estado e
funções de transferência, em tempo contínuo e
discreto. Pode-se analisar respostas ao impulso e
estimar espectros de potência e funções freqüenciais,
estimar modelos não paramétricos (análise de
correlação e análise espectral), e modelos
paramétricos do tipo ARMAX ou em espaço de
estados.

Podem ser definidas de forma automática as


estruturas dos modelos a partir da análise dos dados
coletados na planta e validados os modelos
identificados.

Há funções que permitem a conversão de modelos em


diferentes tipos de representações.
Podem ser identificados sistemas multivariáveis.
A estimação recursiva permite ajustar os modelos às
novas condições de operação (uso em controle
adaptativo).

Redes neuronais - É possível criar redes neuronais,


treiná-las e utilizá-las para predição. Há vários
modelos de neurônios que podem ser utilizados
(funções de ativação).
Podem ser geradas redes de uma camada, várias
camadas e redes recorrentes.

Estão disponíveis regras de aprendizado de Widrow-


Hoff, Backprop. e associativas.
As redes neuronais podem ser utilizadas para
modelagem (identificação) e predição de
comportamento de processos.

Reconhecimento de padrões e controle.

Outras Bibliotecas
Cálculo algébrico ("symbolic math")
Estatística
Controle não linear - Controle preditivo
Lógica difusa - etc.

Endereços úteis:
news-notes@mathworks.com - Noticias.
support@ mathworks.com - Suporte técnico.
Internet:
http://www.mathworks.com