Você está na página 1de 71

Minicurso Bsico Software

Matlab




Minicurso Matlab.

3
NDICE

1. INTRODUO AO MATLAB.................................................................................... 4
O AMBIENTE MATLAB.......................................................................................................5
2. VARIVEIS................................................................................................................. 14
2.1. ENTRANDO COM VALORES..........................................................................16
2.2. EXPRESSES E COMANDOS BSICOS....................................................17
3. OPERAES RELACIONAIS E LGICAS......................................................... 23
3 1. OPERADORES RELACIONAIS......................................................................23
3.2. OPERADORES LGICOS...............................................................................26
3.3. PRECEDNCIA DE OPERADORES..............................................................27
3.4. FUNES LGICAS E RELACIONAIS.........................................................28
3.5. NANS E MATRIZES VAZIAS ............................................................................29
4. FUNES MATEMTICAS.................................................................................... 33
5. MATRIZES.................................................................................................................. 36
5.1. DEFININDO MATRIZES NO MATLAB....................................................................36
5.2. GERANDO SUB-MATRIZES COM O OPERADOR DOIS PONTOS ( : ).....................37
5.3. GERANDO VETORES COM O OPERADOR DOIS PONTOS ( : ) ..............................38
5.4. OPERAES COM MATRIZES................................................................................40
5.5. MATRIZ INVERSA...................................................................................................42
6. GRFICOS................................................................................................................. 42
6.1. GRFICOS POLARES.............................................................................................47
6.2. GRFICOS DE BARRAS..........................................................................................47
6.3. GRFICOS 3D.......................................................................................................48
6.4. MANIPULAO DE GRFICOS...............................................................................49
7. POLINMIOS............................................................................................................. 52
7.1. DEFININDO POLINMIOS NO MATLAB (COMANDO POLYVAL): ..............................53
7.2 SOMA E SUBTRAO............................................................................................53
7.3. MULTIPLICAO....................................................................................................53
7.4. DIVISO.................................................................................................................54
7.5. RAZES DE POLINMIOS........................................................................................54
8. PROGRAMAO BSICA EM MATLAB............................................................ 54
8.1. ESTRUTURAS DE REPETIES..............................................................................55
9. ANEXOS..................................................................................................................... 61






Minicurso Matlab.

4
1. INTRODUO AO MATLAB

MATLAB (MATrix LABoratory Laboratrio de Matrizes) um programa de
computador especializado e otimizado para clculos cientficos e de engenharia.
Inicialmente, era projetado para clculos com matrizes, mas ao longo dos anos,
transformou-se em um sistema computacional flexvel, capaz de resolver
essencialmente qualquer problema tcnico.
O programa MATLAB implementa a linguagem de programao MATLAB,
juntamente com uma grande biblioteca de funes predefinidas que tornam as
tarefas de programao tcnica mais fceis e eficientes.
O MATLAB um programa muito grande, com uma rica variedade de
funes. At mesmo a verso mais bsica do MATLAB, sem ferramentas
adicionais, muito mais rica que outras linguagens de programao tcnica.
Existem mais de 1000 funes no produto MATLAB, e as ferramentas adicionais
ampliam esses recursos com muito mais funes em diferentes especialidades.
MATLAB tem seus recursos bsicos estendidos atravs de "toolboxes" que so
conjunto de funes ou "M-files" para reas especializadas tais como
processamento de sinais - Signal Processing Toolbox; sistemas de controle -
Control System Toolbox; identificao de sistemas - System Identification
Toolbox; otimizao - Optimization Toolbox; redes neurais - Neural Network
Toolbox, e vrios outros .

Vantagens e Desvantagens

O MATLAB tem muitas vantagens, em comparao com linguagens
computacionais convencionais, para resolver problemas tcnicos. Dentre elas
temos:
o Facilidade de uso: MATLAB uma linguagem interpretada, assim como
diversas verses de Basic. O programa pode ser usado como prancheta de
rascunhos para avaliar expresses digitadas em linha de comando, ou pode
ser usado para executar programas grandes escritos previamente.
o Independncia de Plataforma: MATLAB tem suporte em diferentes sistemas
computacionais. Programas escritos em qualquer plataforma so
executados nas outras plataformas, e arquivos de dados escritos em
qualquer plataforma podem ser lidos transparentemente nas outras.
o Funes Predefinidas: MATLAB vem completo, com uma grande biblioteca
de funes predefinidas que representam solues testadas e
empacotadas para diversas tarefas tcnicas bsicas. Alm da grande
biblioteca de funes presentes na linguagem MATLAB bsica, diversas
ferramentas especficas esto disponveis para ajudar a resolver problemas
complexos em reas especficas.
o Desenhos Independentes de Dispositivos: Os desenhos e imagens podem
ser apresentados em qualquer dispositivo de sada grfica suportado pelo
computador que executa o MATLAB.
o Interface Grfica de Usurio: MATLAB tem ferramentas que permitam a um
usurio construir interativamente uma interface grfica de usurio (GUI, do
Formatados: Marcadores e
numerao
Excludo: 1. INTRODUO AO
MATLAB 4
<#>O Ambiente MATLAB 4
<#>2. VARIVEIS 7
<#>2.1. ENTRANDO COM
VALORES 8
<#>2.2. VARIVEIS
PERMANENTES 9
<#>2.3. EXPRESSES E
COMANDOS BSICOS 10
<#>3. OPERAES
RELACIONAIS E LGICAS 12
<#>3 1. OPERADORES
RELACIONAIS 13
<#>3.2. OPERADORES
LGICOS 16
<#>3.3. PRECEDNCIA DE
OPERADORES 17
<#>3.4. FUNES LGICAS E
RELACIONAIS 18
<#>3.5. NaNs E MATRIZES
VAZIAS 20
<#>4. Funes Matemticas 23
<#>5. MATRIZES 26
<#>5.1. Definindo Matrizes no
MATLAB 27
<#>5.2. Gerando Sub-Matrizes
com o Operador Dois Pontos ( :
). 28
<#>5.3. Gerando Vetores com o
Operador Dois Pontos ( : ) 28
<#>5.4. Operaes com
Matrizes 29
<#>Somatrio de Produtos 30
<#>Multiplicao de Matrizes 30
<#>Diviso 31
<#>Exponenciao 31
<#>5.5. Matriz Inversa 31
<#>6. GRFICOS 32
<#>6.1. Grficos Polares 34
<#>6.2. Grficos de barras 35
<#>6.3. Grficos 3D 35
<#>6.4. Manipulao de
Grficos 36
Excludo: <#>NDICE
<#>1 INTRODUO
<#>
<#>2 VARIVEIS 2
<#>1.1. ENTRANDO COM
VALORES 3
<#>1.2. VARIVEIS
PERMANENTES 3
<#>1.3. EXPRESSES E
COMANDOS BSICOS 4
<#>2. OPERAES RELACIONAIS
E LGICAS 8
<#>2.1 OPERADORES
RELACIONAIS 8
<#>2.2 OPERADORES
LGICOS 11
<#>2.3 PRECEDNCIA DE
OPERADORES 12
<#>2.4 FUNES LGICAS E
RELACIONAIS 13
<#>Descrio 13
<#>Descrio 14
... [1]
... [2]

Minicurso Matlab.

5
ingls Graphical User Interface) para seus programas. Com este recurso o
programador pode projetar programas sofisticados de anlise de dados, os
quais podem se operados por usurios relativamente inexperientes.
o O Compilador MATLAB: A flexibilidade e a independncia de plataforma do
MATLAB, resultam da compilao de programas MATLAB em um cdigo
independente de dispositivo denominado pcode, e da interpretao em
tempo real de execuo das instrues em pcode.

Desvantagens do MATLAB:
O MATLAB tem duas desvantagens principais. Primeiro, ele uma
linguagem interpretada, por isso pode ser mais lento que linguagens compiladas.
Esse problema pode ser diminudo pela estruturao apropriada dos programas
MATLAB e pelo uso do compilador MATLAB para compilar o programa final para
distribuio e uso geral.
A segunda desvantagem o custo: uma cpia completa MATLAB de
cinco a dez vezes mais cara que um compilador convencional C ou Fortran. Esse
custo relativamente alto mais do que compensado pelo tempo reduzido
requerido para um engenheiro ou cientista criar um programa o que torna o
MATLAB eficaz para empresas. Ele pode ser muito caro, entretanto, para a
compra individual. Felizmente, existe uma verso de estudante mais barata do
MATLAB, que uma excelente ferramenta para estudantes que queiram aprender
a linguagem.
O Ambiente MATLAB

A unidade fundamental de dados em qualquer programa MATLAB a matriz.
Uma matriz uma coleo de valores de dados organizados em linhas e colunas,
determinada por um nome nico. At mesmo escalares so ratados como
matrizes em MATLAB, eles so simplesmente matrizes com apenas uma linha e
uma coluna.
Ao iniciar o MATLAB, aparece uma janela especial denominada rea de
trabalho MATLAB. As principais ferramentas presentes na rea de trabalho
MATLAB, ou que podem ser acessadas a partir dela, so: Janela de Comandos
(Command Window); Janela Histrico de Comandos (Command History); Espao
de Lanamento (Launch Pad); Janela de Edio/Depurao (Editor / Debugger);
Janela de Figuras (Array Editor); Navegador do Espao de Trabalho e Editor de
Matrizes (Workspace); Navegador de Ajuda (Help); Navegador do Diretrio
Corrente (Current Directory).








Formatados: Marcadores e
numerao

Minicurso Matlab.

6



Janela de Comando

O lado direito da rea de trabalho MATLAB contm a Janela de Comandos.
Nela o usurio pode inserir comandos interativos pelo marcador de comandos
(>>), e eles ser executados de imediato.
Um exemplo de clculo interativo o seguinte: suponha que voc quer
calcular a rea de um circulo com raio 2,5m. Isso pode ser feito digitando:

>>area = pi * 2,5^2
area=
19,6350

O MATLAB calcula a resposta assim que a tecla Enter pressionada, e
armazena o resultado em uma varivel (uma matriz 1x1) denominada area. O
contedo dessa varivel exibido na Janela de Comandos, e essa varivel pode
ser usada em outros clculos.

Minicurso Matlab.

7




Janela Histrico de Comandos

A Janela Histrico de Comandos exibe uma lista dos comandos que um
usurio inseriu na Janela de Comandos. A lista de comandos anteriores pode se
estender a execues anteriores do programa. Os comandos permanecem na lista
at serem apagados. Para reexecutar qualquer comando, simplesmente clique
duas vezes sobre ele com o boto esquerdo do mouse. Para apagar um ou mais
comandos da Janela Histrico de Comandos, selecione os comandos e clique
sobre eles com o boto direito do mouse. Surgir um menu, que permitir apagar
os itens.


Minicurso Matlab.

8




O Espao de Lanamento (Launch Pad)

O Launch Pad uma ferramenta especial que agrupa referencias a
documentao, demonstraes e ferramentas relacionadas para o prprio
MATLAB e para cada conjunto de ferramentas que voc adquire. A informao
organizada por produto, com todas as referencias listadas abaixo de cada produto
ou conjunto de ferramentas. Pessoas diferentes iro adquirir produtos diferentes,
portanto, o contedo dessa janela varia de instalao para instalao.



Minicurso Matlab.

9




Janela de Edio/Depurao

Uma Janela de Edio/Depurao usada para criar novos arquivos M ou
modificar os j existentes. Uma Janela de Edio/Depurao criada
automaticamente quando voc cria um novo arquivo M ou abre um. Voc pode
criar um novo arquivo M selecionando File / New / M-File no menu da rea de
trabalho.
A Janela de Edio/Depurao essencialmente um editor de textos de
programas, com caractersticas da linguagem MATLAB destacadas por cores
diferentes. Comentrios aparecem em verde, variveis e nmeros em preto,
cadeias de caracteres em vermelho, e palavras-chave da linguagem em azul.
Uma vez gravado o arquivo M, ele pode ser executado ao digitarmos seu
nome na Janela de Comandos. Abaixo um exemplo de M file:

%Este m-file calcula a rea de um circulo, e mostra o resultado

Minicurso Matlab.

10
raio=2,5;
rea=pi*2,5^2
string=[A rea do circulo : num2str(area)];
disp(string);



Janela de Figuras

Uma Janela de Figuras usada para exibir grficos MATLAB. Uma figura
pode ser a representao grfica bidimensional ou tridimensional de dados, uma
imagem ou uma GUI. Um arquivo de script simples que calcula e desenha a
funo seno(x) mostrado a seguir:

%sin_x.m: Esse arquivo M calcula e desenha a funo seno(x)
%para 0 <= x <= 6.
x = 0 : 0.1 : 6;
y = sin(x);

Minicurso Matlab.

11
plot(x,y);

Quando o arquivo for executado abrir uma Janela de Figuras e desenhar a
funo seno(x).



Espao de Trabalho MATLAB (Workspace)

Um espao de trabalho a coleo de todas as variveis e matrizes que
podem ser usadas pelo MATLAB quando um comando, arquivo M ou funo em
particular est em execuo. Todos os comandos executados na Janela de
Comandos compartilham um espao de trabalho comum, para que eles possam
compartilhar variveis.
Uma lista de todas as variveis e matrizes no espao de trabalho corrente
pode ser gerada por meio do comando whos. Para apagar uma varivel do espao
de trabalho usa-se o comando clear.
O contedo do espao de trabalho corrente pode tambm ser examinado
por meio do Navegador do Espao de Trabalho, que fica no canto superior da rea

Minicurso Matlab.

12
de trabalho. Por meio dele temos uma apresentao grfica da mesma informao
dada pelo comando whos, e o que apresentado atualizado dinamicamente
cada vez que muda o espao de trabalho. O Navegador do Espao de Trabalho
tambm permite que o usurio modifique o contedo de qualquer varivel no
espao de trabalho.





Obtendo Ajuda (Help)

Voc pode obter ajuda no MATLAB de trs maneiras. Atravs do
Navegador de Ajuda, que pode ser iniciado selecionando o cone de Ajuda
localizado na barra de ferramentas, ou digitando helpdesk ou helpwin na Janela de
Comandos.

Minicurso Matlab.

13
Outra forma usar o comando help, ou help seguido de um nome de
funo ao qual se deseja obter ajuda. Assim o MATLAB ir exibir uma lista de
possveis tpicos de ajuda na Janela de Comandos.
A ltima maneira possvel utilizar o comando lookfor. Ele difere do
comando help, pois este procura por um nome de funo que case perfeitamente
com o fornecido, enquanto o comando lookfor pesquisa informao resumida e
rpida para cada funo. Assim este comando se torna mais lento que o help, mas
aumenta a chance de fornecer informao til. Um exemplo da utilizao dessas
ajudas mostrado abaixo:

>> help who

WHO List current variables.
WHO lists the variables in the current workspace.
WHOS lists more information about each variable.
WHO GLOBAL and WHOS GLOBAL list the variables in the global workspace.
WHO -FILE FILENAME lists the variables in the specified .MAT file.

Um comando igualmente importante lookfor, que procura entre todas as
funes do MATLAB a palavra-chave especificada.

>> lookfor max

BITMAX Maximum floating point integer.
NAMELENGTHMAX Maximum length of a MATLAB name.
REALMAX Largest positive floating point number.
MAX Largest component.



Minicurso Matlab.

14
2. VARIVEIS

Conceito de Varivel

Uma varivel pode ser considerada como um objeto armazenado na
memria do computador. Uma varivel composta por um nome (cadeia de letras
e/ou nmeros necessariamente iniciada por uma letra) e o seu contedo (objeto
armazenado naquela varivel).
As variveis ficam armazenadas no chamado espao de trabalho do
Matlab. Na criao do nome de uma varivel pode-se utilizar letras maisculas ou
minsculas, entretanto no se pode esquecer que o Matlab faz distino entre
elas, ou seja, a e A so variveis diferentes no Matlab. Uma vez que a varivel
armazena um valor numrico, ela pode participar plenamente de operaes
aritmticas, nas quais ela substitui o valor numrico nela armazenado. Por
exemplo, se as variveis A e B correspondem, respectivamente, aos valores
numricos 10 e 20, ento:
A + B equivalente a: 10 + 20.
O MATLAB trabalha essencialmente com um tipo de varivel: uma matriz
contendo nmeros, complexos ou no (um escalar uma matriz 1 x 1). Em alguns
casos, um tratamento especial dado a uma matriz 1 x 1 (escalar) ou a matrizes
1 x n ou n x 1 (vetores).
Regras para nomes de Varivel


Regra Comentrios e exemplos
As variveis distinguem entre letras Custo, custo, CuSto e CUSTO so

Minicurso Matlab.

15
maisculas e minsculas. variveis diferentes no MATLAB
As variveis podem conter at 31
caracteres. Os caracteres alm do
31 so ignorados
Quetalestenomedevariavel
Os nomes de variveis devem
comear com uma letra, seguida de
um nmero qualquer de letras,
algarismos ou sublinhados.
Caracteres de pontuao no so
permitidos por terem um significado
especial para o MATLAB.
que_tal_este_nome_de_variavel
X51483
a_b_c_d_e

H algumas excees especficas a essas regras. Existem vrios nomes
que no podem ser usados para variveis. Esses nomes constituem palavras-
chave, ou uma lista de palavras reservadas pelo MATLAB.

Lista de palavras reservadas
for end if while function return elseif case otherwise switch continue
else try catch global persistent break

O MATLAB exibir uma mensagem de erro caso voc tente usar uma
dessas palavras reservadas como varivel. Entretanto, voc pode usar palavras
semelhantes a essas trocando por maisculas uma ou mais letras.
Alm disso, exatamente como uma calculadora armazena constantes como
o

, o MATLAB tambm tem diversas variveis especiais:



Variveis Especiais Descrio
ans Varivel padro usada para resultados
beep Varivel que faz o computador emitir um bip

pi
Numero pi. (3,1415926535979 - Razo entre o permetro
da circunferncia e o seu dimetro)
eps Preciso da maquina
inf Infinito
NaN (ou) nan Not a number (indeterminao)
I (ou) j Unidade imaginria
nargin Numero de argumentos de entrada de uma funo
nargout Numero de argumentos de sada de uma funo
realmax Maior nmero real positivo utilizvel
realmin Menor nmero real positivo utilizvel
bitmax Maior nmero inteiro positivo utilizvel
varargin Nmero varivel de argumentos de entrada de uma
funo
varargout Nmero varivel de argumentos de sada de uma funo
computer Tipo de computador
version Verso do Matlab

Minicurso Matlab.

16

Comentrios, Pontuao e Formas de Interromper a Execuo de um
Comando

O MATLAB utiliza algumas formas de pontuao como comandos para uma
melhor exibio dos resultados.

Smbolos Especiais Descrio
; Suprime a impresso de resultados
% serve para se colocar um comentrio
, Vrgula - serve para se colocar mais de um comando em
cada linha. Pode-se utilizar tambm o ;
... indica que uma linha continuao de uma linha anterior
: Operador de incremento (primeiro termo : passo de
incremento : ultimo valor)
Ctrl-C Pressione as teclas Ctrl-C para interromper a qualquer
momento a execuo do MATLAB
clc limpa a tela(semelhante ao comando CLS do DOS

A vrgula diz ao MATLAB para mostrar o resultado; o ponto e virgula
suprime a visualizao.
s vezes, expresses ou comandos so to longos que conveniente
continu-los em linhas adicionais. No MATLAB, uma sucesso de trs pontos
indica que o resto do comando aparece na outra linha. Este recurso funciona se os
trs pontos so colocados entre nomes de variveis e operadores matemticos,
mas no no meio de um nome de varivel. Ou seja, os nomes de variveis no
podem ser divididos em duas linhas. Alm disso, como os comentrios so
ignorados, no podem ser continuados na linha seguinte.
Finalmente, voc pode interromper a qualquer momento a execuo do
MATLAB pressionando Control-C (ou seja, pressionando as teclas Ctrl e C
simultaneamente).

2.1. ENTRANDO COM VALORES

No MATLAB no necessrio que sejam declaradas as variveis para
inici-las, como feito em outras linguagens de programao. Ao jogar dados
numa varivel, o programa aloca memria automaticamente. A maneira mais fcil
de entrar com pequena quantidade de valores digitando diretamente os dados:
envolva os elementos com colchetes, [ ];
separe cada elemento com espaos ou vrgulas;
use ponto-e-vrgula (;) para indicar fim da linha.
Por exemplo, para entrar com a matriz abaixo na memria do computador, e
guard-la na varivel A:



Minicurso Matlab.

17

Basta digitar:

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

Que a sada ser: A =
1 2 3
4 5 6
7 8 9

OBS: Para que o computador realize a operao e no mostre a sada, basta
terminar a expresso com ponto-e-vrgula (;). Isto muito til para evitar que o
computador fique mostrando nmeros de clculos intermedirios e para acelerar
as operaes.

2.2. EXPRESSES E COMANDOS BSICOS


Varivel = expresso

Os nmeros so em notao decimal. Pode-se criar nmeros complexos
basta escrever i (ou j) depois da parte imaginria. Alguns exemplos de nmeros
permitidos:

1/3 -99 ,0001
9,63973 1,602E-20 6,025E23
3+2i -3,1459i 3E5i

Voc pode compor expresses com operadores e outros caracteres
especiais, com funes, e com nomes de variveis. A execuo da expresso
produz uma matriz. A matriz mostrada na tela e assume o nome da varivel
definida na linha de comando para que possa ser utilizada em uma outra situao.
Se voc omitir o nome da varivel e o sinal =, o MATLAB cria automaticamente
uma varivel com o nome ans. Por exemplo, digitando a expresso.
>> 1900/81
produz
>> ans =
23.4568

Podem-se construir expresses com os operadores aritmticos usuais:

Operadores Descrio
+ Adio
- Subtrao
* multiplicao
Formatados: Marcadores e
numerao

Minicurso Matlab.

18
/ e \ Diviso
^ Potenciao
Matriz transposta


O MATLAB possui uma vasta gama de funes matemticas elementares,
com seno (sin), tangente (tan), logaritmo (log10), etc. Por exemplo, para calcular o
seno de 5 e guardar na varivel x:
>> sin(5)
Subtraindo matrizes
>> A=[1 2 3; 4 5 6; 7 8 9]
>> B=[4 5 6; 1 2 3; 8 7 6]
>> C=A'-B



Comandos do Espao
de Trabalho
Descrio
Who exibe o nome das variveis usadas.

Whos exibe na tela os nomes, dimenso, nmero de bytes e
tipos das variveis que esto sendo usadas no
momento
What exibe arquivos de extenso .m e .mat do diretrio
corrente
disp (n) exibe o contedo da varivel n sem mostrar seu
nome
clear n apaga a varivel n.
Clear apaga todas as variveis.
[x, y] = ginput(n) permite que voc entre com os pares ordenados (x, y)
por meio do mouse, escolha com o mouse cada
ponto na janela que aparecer na tela, sendo que n
representa o nmero de pontos a serem
determinados.
input ('...'): usado para entrada de dados
input ('...') usado para entrada de dados
exemplo: n = input ('digite um nmero ')
O nmero que voc digitar ser assumido pela
varivel n.
Pause serve para pausar um comando de exibio do
Matlab.
pause(n) pausa por n segundos
echo on na execuo de um programa executvel, gravado
num arquivo .m, o uso desta opo permite a
exibio, na tela, dos comandos usados no seu
programa, para desativar este opo usa-se o

Minicurso Matlab.

19
comando echo off
Break termina a execuo de um loop while ou for

Comandos
relacionados a arquivos
e dados
Descrio
Save salva todas as variveis que esto sendo usadas
naquele momento, no formato binrio num arquivo
com extenso mat no MATLAB
save data salva todas as variveis no arquivo data.mat.
save data a, b, c salva as variveis a, b, c no arquivo data.mat
load filename carrega as variveis salvas com o comando save no
arquivo especificado.
file print use esses comandos do menu para imprimir o
contedo atual da janela ativa


Exibindo Dados de Sada

Existem muitas maneiras de exibir dados de sada no MATLAB. A mais
simples simplesmente no escrever o ponto-e-vrgula no final da declarao e
eles sero ecoados na Janela de Comandos. Iremos agora explorar algumas
outras maneiras de exibir dados.

Alterando o Formato Padro

Quando dados so ecoados na Janela de Comandos, valores inteiros so
sempre exibidos como inteiros, e outros valores so impressos com um formato
padro. O formato padro para o MATLAB exibe quatro dgitos depois do ponto
decimal, e pode ser exibido com notao cientfica com um expoente se o nmero
for muito grande ou muito pequeno. Por exemplo:
X = 100.11
Y = 1001.1
Z = 0.00010011
Produzem na sada
X =
100.1100
y =
1.0011e+003
z =
1.0011e-004

Esse formato padro pode ser alterado com o uso do comando format. O
comando format altera o formato padro de acordo com os valores dados na
tabela:


Minicurso Matlab.

20
Formatos de exibio
de nmeros
Descrio (supondo a= 1/3)
format short resultar: a = 0,3333,ou seja, quatro casas decimais
( o default).
format short e teremos: a = 3.3333e-001, ou seja, quatro casas
decimais e em notao exponencial (que significa
3.3333 x 10
-1
).
format short g teremos: a = 0.33333, com cinco casas decimais
format long teremos a = 0.33333333333333, com catorze casas
decimais
format long e teremos a = 3.333333333333333e-001, com catorze
casas decimais mais o expoente
format hex teremos: a = 3fd5555555555555(formato
hexadecimal)
format bank teremos: a = 0.33, ou seja, dois dgitos decimais (no
formato monetrio).
Format volta ao formato normal que equivale ao format short.
format + Exibe somente o sinal do numero
format rat aproximao racional a=1/3

A Funo input

Esta funo solicita ao usurio que fornea algum dado de entrada.
Exemplo:
Se voc quer fazer uma pergunta que tenha uma resposta que seja da forma
numrica.
x = input (quantos anos voc tem?)
Se voc responder 18.
Na varivel x ser armazenado o valor 18.
x = 18

Exemplo:
Se voc quer fazer uma pergunta que tenha uma resposta que no seja da forma
numrica, mas sim uma palavra ou frase.
y = input (Que ms este?, s)
Se voc responder outubro.
Na varivel y ser armazenado a palavra outubro.
y = outubro
Neste caso especificou-se que a varivel y seria do tipo s, ou seja, uma string.
Esta estrutura com palavras muito utilizada com o comando case.

A Funo disp

Outra maneira de exibir dados a funo disp. Ela aceita uma matriz
como argumento e exibe o valor da matriz na Janela de Comandos. Se a matriz
for do tipo char, a cadeia de caracteres contida na matriz exibida.

Minicurso Matlab.

21
Essa funo freqentemente combinada com as funes num2str (que
converte um nmero em cadeia de caracteres) e int2str (que converte um inteiro
em cadeia de caracteres) para criar mensagens exibidas na Janela de Comandos.
Por exemplo, as declaraes MATLAB a seguir exibem O valor de pi=3.1416 na
Janela de Comandos. A primeira declarao cria uma matriz de caracteres que
contm a mensagem, e a segunda declarao exibe a mensagem.

str = [ O valor de pi = num2str(pi) ];
disp (str);

Abaixo est a tabela com os comandos de converso de caracteres.

Funes de Converso
de Caracteres
Descrio
char(x) Converte uma matriz de nmeros em uma cadeia de
caracteres
Doubl(x) Converte uma cadeia de caracteres em uma matriz
de nmeros
int2str(x) Converte x em uma cadeia de caracteres que
representam o nmero como um inteiro
num2str(x) Converte x em uma cadeia de caracteres que
representa o nmero com um ponto decimal
str2num(s) Converte uma cadeia de caracteres s em nmero


Sada Estruturada Usando a Funo fprintf

Uma forma ainda mais flexvel de exibir dados a funo fprintf. Essa
funo exibe um ou mais valores juntamente com texto relacionado e permite ao
programador controlar a maneira como os valores so exibidos. A forma geral
dessa funo, quando utilizada para exibir dados na Janela de Comandos, :

fprintf ( format , data )

Onde format uma cadeia de caracteres descrevendo a maneira como os dados
devem ser exibidos e data composto por um ou mais escalares ou matrizes para
exibio. A cadeia de caracteres format contm texto a ser apresentado, mais
caracteres especiais descrevendo o formato dos dados. Por exemplo, a funo

fprintf ( O valor de pi = %f \n , pi )

apresenta O valor de pi = 3.141593, seguido de uma mudana de linha. Os
caracteres %f so denominados caracteres de converso; indicam que um valor
na lista de dados deveria ser apresentado no formato de ponto flutuante naquele
local da cadeia de formatao. Caracteres como \n so denominados caracteres
de escape. O caractere \n indica que uma mudana de linha deve ser includa,

Minicurso Matlab.

22
para que o texto seguinte inicie em uma nova linha. Existem muitos tipos de
caracteres de converso e de escape que podem ser usados em uma funo
fprintf. Alguns so apresentados na tabela baixo:

Caracteres de
Formatao
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
\n Muda de linha

tambm possvel especificar a largura do campo de exibio de um
nmero e o nmero de casas decimais a serem exibidas. Isso feito
especificando-se a largura e a preciso depois do sinal % e antes do f. Por
exemplo, a funo

fprintf ( O valor de pi = %6.2f \n , pi )

exibe O valor de pi = 3.14, seguido de uma mudana de linha. Os caracteres
%6.2f indicam que o primeiro item de dados na funo deveria se apresentado em
formato de ponto flutuante e um campo com seis caracteres de largura, incluindo
dois dgitos depois do ponto decimal.
A funo fprintf tem uma limitao bastante significativa: ela somente
exibe a poro real de um valor complexo. Essa limitao pode levar a resultados
enganosos quando os clculos produzem respostas complexas. Nesses casos,
melhor usar a funo disp para exibir respostas.


Finalizando e Salvando um Espao de Trabalho

Para finalizar o MATLAB digite quit ou exit. Terminando uma sesso do
MATLAB, voc apaga as variveis do espao de trabalho. Antes de terminar, voc
pode salvar as variveis digitando:
>> save
Este comando salva todas as variveis em um arquivo em disco chamado
data.mat. Na prxima vez que MATLAB chamado, voc pode executar o
comando load para restaurar o espao de trabalho de data.mat.
Voc pode utilizar os comandos save e load em arquivos com outros
nomes, ou salvar somente algumas variveis. O comando save temp salva as
variveis em um arquivo de nome temp.mat. O comando:
>> save temp X
salva somente a varivel X, enquanto que
>> save temp X Y Z
salva as variveis X, Y e Z.

Minicurso Matlab.

23


3. OPERAES RELACIONAIS E LGICAS


Alm das operaes matemticas tradicionais, o Matlab tambm inclui
operaes relacionais e lgicas. Voc deve estar familiarizado com esses tipos de
operaes se j teve experincia com outras linguagens de programao. A
finalidade desses operadores e funes fornecer respostas do tipo
Falso/Verdadeiro a perguntas. Elas tambm so importantes no controle de fluxo
ou da ordem de execuo de uma srie de comandos do Matlab (geralmente um
arquivo M).
Como dados de entrada das expresses relacionais e lgicas, o Matlab
considera qualquer nmero diferente de zero como Verdadeiro e o zero como
Falso. A sada de todas as expresses lgicas e relacionais produzem 1 para
Verdadeiro e 0 para Falso.
Tais sadas podem estar agrupadas em um vetor, classificado como
lgico, que pode ser usado em operaes matemticas e tambm em
endereamentos lgicos.

3 1. OPERADORES RELACIONAIS


Os operadores relacionais do Matlab incluem todas as comparaes
habituais.

Operador Descrio
< Menor que
<= Menor ou igual a
> Maior que
>= Maior ou igual a
== Igual a (No confundir com =)
~= Diferente de

Os operadores relacionais do Matlab podem ser usados para comparar dois
vetores de mesmo tamanho ou para comparar um vetor a um escalar. No segundo
caso, o escalar comparado a todos os elementos do vetor e o resultado tem o
mesmo tamanho do vetor. Por exemplo:

>> A = 1:9, B = 9 - A
A =
1 2 3 4 5 6 7 8 9

Minicurso Matlab.

24
B =
8 7 6 5 4 3 2 1 0

>> vf = A > 4
vf =
0 0 0 0 1 1 1 1 1

A operao acima encontra os elementos de A que so maiores que 4. O
vetor vf contm zeros nas posies correspondentes s componentes de A que
no so maiores que 4 e contm elementos iguais a um nos casos em que A > 4.

>> vf = (A == B)
vf =
0 0 0 0 0 0 0 0 0

Encontra os elementos de A que so iguais queles de B.
Observe que os smbolos = e == tm significados diferentes: == compara
duas variveis e retorna um onde elas forem iguais e zero onde no forem; ~=,
usado para atribuir o resultado de uma operao a uma varivel.
Observe tambm que o teste de igualdade s vezes produz resultados
confusos para operaes em ponto flutuante. Por exemplo:

>> vf = (-0.08 + 0.5 - 0.42) == (0.5 - 0.42 - 0.08) % igual ?
vf =
0
>> vf = (-0.08 + 0.5 - 0.42) ~= (0.5 - 0.42 - 0.08) % no igual ?
vf =
1
>> (-0.08 + 0.5 - 0.42) - (0.5 - 0.42 - 0.08) % no exatamente igual !
ans =
-1.3878e-017

Este exemplo mostra que a aritmtica no exatamente comutativa
quando se usa preciso finita. Intuitivamente seria de se esperar que o resultado,
aps o primeiro comando acima, fosse Verdadeiro = 1, mas isso no ocorre,
porque as duas expresses diferem por um nmero inferior a eps (um nmero
especial do Matlab, cujo valor aproximadamente 2.2e-16), como mostra a ultima
resposta. Esse fato fundamental da aritmtica de preciso finita, muitas vezes,
considerado um bug no newsgroup do Matlab.
possvel combinar-se expresses relacionais com expresses
matemticas:

>> vf = B - (A > 2)
vf =

Minicurso Matlab.

25
8 7 5 4 3 2 1 0 -1

Encontra valores de A que satisfazem A>2 e subtrai o resultado de B.



>> B = B + (B ==0)*eps
B =
Columns 1 through 7
8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000
Columns 8 through 9
1.0000 0.0000

uma demonstrao de como substituir os elementos iguais a zero em
um vetor pelo nmero eps. Essa expresso em particular , algumas vezes, til
para evitar a diviso por zero, como, por exemplo, em:

>> x = (-3:3)/3
x =
-1.0000 -0.6667 -0.3333 0 0.3333 0.6667 1.0000
>> sin(x)./x
Warning: Divide by zero.
ans =
0.8415 0.9276 0.9816 NaN 0.9816 0.9276 0.8415

O clculo da funo sen(x)/x mostra-os uma mensagem de alerta, pois o
quinto elemento dado igual a zero. J que sen(0)/0 indefinido, o Matlab retorna
NaN (que significa valor no-numrico) na posio correspondente do resultado.
Tente novamente, dessa vez trocando o zero por eps:

>> x = (-3:3)/3 % redefine x
x =
-1.0000 -0.6667 -0.3333 0 0.3333 0.6667 1.0000
>> y = ones(size(x)) % gera saida padro
y =
1 1 1 1 1 1 1
>> vf = x ~= 0 % encontra posies com valores no-nulos
vf =
1 1 1 0 1 1 1
>> y(vf) = sin(x(vf))./ x(vf) % trabalha apenas com valores no-nulos
y =
0.8415 0.9276 0.9816 1.0000 0.9816 0.9276 0.8415

Embora o exemplo acima possa parecer trabalhoso comparado com o
acrscimo de eps a x, a idia de evitar clculos com componentes selecionadas
de um vetor, muitas vezes, usada no Matlab com bastante eficcia.

Minicurso Matlab.

26
3.2. OPERADORES LGICOS


Os operadores lgicos permitem que se combinem ou se neguem
expresses relacionais. Os operadores lgicos do Matlab so:

Operador Lgico Descrio
& E
OU
~ No

Alguns exemplos do uso de operadores lgicos:

>> A = 1:9; B = 9 - A; %representa os dados
>> vf = A > 4
vf =
0 0 0 0 1 1 1 1 1

Encontra onde A for maior que 4.

>> vf = ~ (A>4)
vf =
1 1 1 1 0 0 0 0 0

Nega o resultado anterior, isto , troca um por zero, e vice-versa.

>> vf = (A > 2) & (A < 6)
vf =
0 0 1 1 1 0 0 0 0

Retorna 1 onde A for maior que 2 e menor que 6.
Os recursos descritos acima facilitam a gerao de vetores representando
sinais com descontinuidade ou sinais compostos de segmentos de outros sinais. A
idia bsica multiplicar todos os valores que voc deseja manter no vetor por 1,
e multiplicar os outros valores por zero. Por exemplo,

>> x = linspace (0,10,100); % gera dados
>> y = sin(x); % calcula o seno
>> z = (y >= 0).*y; % atribui zero aos valores negativos de sen (x)
>> z = z + 0.5*(y < 0); % quando sen(x) for negativo, acrescenta 1/2
>> z = (x <= 8).*z; % atribui zero aos valores maiores que 8
>> plot(x,z)
>> xlabel('x'), ylabel('z = f(x)'),
>> title('Figura 1.1: Um sinal descontinuo')


Minicurso Matlab.

27



3.3. PRECEDNCIA DE OPERADORES


Quando calcula uma expresso, o Matlab segue um conjunto de regras que
determinam a precedncia dos operadores. Os operadores de maior precedncia
so avaliados antes dos de menor precedncia; os de igual precedncia so
avaliados da esquerda para a direita. A tabela a seguir mostra as regras de
precedncia obedecidas pelo Matlab.

Operador Nvel de precedncia
Parnteses ( ) Maior
Transposio (.), transposio conjugada (), potncia
(.^), potncia matriz (^)

Sinal positivo (+), sinal negativo (-), negao (~)
Multiplicao (.*), multiplicao matricial (*), diviso
direita* (. /), diviso esquerda (. \), diviso matricial
direita (/), diviso matricial esquerda (\)

Adio (+), subtrao (-)
Dois pontos (:)
Menor que (<), menor ou igual a (<=), maior que (>),
maior ou igual a (>=), igual a (==), diferente de (~=)

E lgico (&)
OU lgico () Menor

Minicurso Matlab.

28

A ordem de precedncia apresentada semelhante, ou at igual, ordem
obedecida pela maioria das linguagens de programao. Assim, provvel que
voc no encontre problemas para escrever expresses que obedeam a essas
regras. Como em outras linguagens de programao, os parnteses podem e
devem ser utilizados para controlar a ordem em que uma expresso avaliada.
Em cada nvel de parnteses, as regras anteriores se mantm:

>> 3|2&0
Warning: The logical expression(s) involving OR and AND operators
may have returned a different result in previous versions of MATLAB due to
a change in logical operator precedence.
Use parentheses to make your code insensitive to this change.
Please type "help precedence" for more information.
ans =
1
>> 3|(2&0)
ans =
1
>> (3|2)&0
ans =
0
3.4. FUNES LGICAS E RELACIONAIS


Alm dos operadores relacionais e lgicos bsicos citados anteriormente, o
Matlab possui outras funes lgicas e relacionais, incluindo as seguintes:

Funo Descrio
xor (x,y) Operao OU exclusivo. Retorna 1 quando x ou y for diferente de zero
(Verdadeiro). Retorna 0 quando tanto x quanto y forem zero (Falso) ou
ambos forem diferentes de zero (Verdadeiro).
any (x) Retorna um se algum elemento do vetor x for diferente de zero. Retorna
um para cada coluna de uma matriz x que tiver elementos diferentes de
zero.
all (x) Retorna um se todos os elementos de um vetor x forem diferentes de
zero. Retorna um para cada coluna de uma matriz x que tiver todos os
elementos diferentes de zero.

O Matlab tambm possui varias funes que verificam a existncia de
condies ou valores especficos e retornam resultados lgicos:

Funo Descrio
Ispc Verdadeiro se for a verso do Matlab para PC (Windons).
Formatados: Marcadores e
numerao
Formatados: Marcadores e
numerao

Minicurso Matlab.

29
isstudent Verdadeiro se for a verso do Matlab para estudantes.
isunix Verdadeiro se for a verso do Matlab para p sistema UNIX
ismember Verdadeiro quando um grupo de elementos pertence a um dado
conjunto.
isglobal Verdadeiro para variveis globais.
mislocked Verdadeiro se o arquivo M no puder ser eliminado.
isempty Verdadeiro para matrizes vazias.
isequal Verdadeiro se matrizes de qualquer tipo de dados forem iguais.
isfinite Verdadeiro para componentes finitas.
isinf Verdadeiro para componentes infinitas.
islogical Verdadeiro para matrizes lgicas.
isnan Verdadeiro para componentes no numricas (NaNs).
isnumeric Verdadeiro para matrizes numricas.
isreal Verdadeiro para matrizes reais.
isprime Verdadeiro para nmeros primos.
automesh Verdadeiro se os dados de entrada devem passar automaticamente
pelo processo de meshgrid (gerao de matrizes para grficos 3D).
inpolygon Verdadeiro para pontos interiores a uma superfcie poligonal.
isvarname Verdadeiro para um nome vlido de varivel.
iskeyword Verdadeiro para palavras chave ou reservadas.
Issparse Verdadeiro para matrizes esparsas.
isappdata Verdadeiro se o dado definido no programa existir.
ishandle Verdadeiro para manipulao de grficos.
figflag Verdadeiro se a figura est sendo exibida na tela.
iscellstr Verdadeiro para matrizes celulares de caracteres.
ischar Verdadeiro para matrizes de caracteres.
isletter Verdadeiro para letras do alfabeto.
isspace Verdadeiro se houver algum espao em branco.
isa Verdadeiro se o objeto de uma dada classe.
iscell Verdadeiro para matrizes celulares.
isfield Verdadeiro para campos de estruturas.
isjava Verdadeiro para objetos Java.
isobject Verdadeiro para objetos.
isstruct Verdadeiro para estruturas.
isvalid Verdadeiro para objetos de porta serial que possam ser conectados
ao hardware.

3.5. NaNs E MATRIZES VAZIAS


NaNs (valores no-numricos) e matrizes vazias ( [ ] ) requerem um
tratamento especial no Matlab, principalmente quando usados em expresses
lgicas ou relacionais. De acordo com os padres matemticos do IEEE, quase

Minicurso Matlab.

30
todas as operaes com NaNs resultam em NaNs. Considere o exemplo:

a =
1 2 NaN Inf NaN
>> b = 2*a
b =
2 4 NaN Inf NaN
>> c = sqrt (a)
c =
1.0000 1.4142 NaN Inf NaN
>> d = (a==nan)
d =
0 0 0 0 0
>> f = (a~=nan)
f =
1 1 1 1 1

Os dois primeiros clculos apresentados produzem resultados NaNs para
dados de entrada NaNs. Contudo, os dois ltimos clculos relacionais levam a
resultados um tanto surpreendentes. (a==nan) produz zeros ou falso, mesmo
quando NaN comparado a NaN. Ao mesmo tempo, (a~= nan) resulta apenas
uns ou verdadeiro. Assim, NaNs individuais no so iguais uns aos outros. Por
esse motivo o Matlab possui uma funo lgica interna para encontrar NaNs,
chamada isnan. Por exemplo:

>> g = isnan (a)
g =
0 0 1 0 1

Essa funo possibilita que se encontre os ndices de NaNs com o
comando find:

>> i = find(isnan(a)) % encontra indices de NaNs
i =
3 5
>> a(i) = zeros(size(i)) % transforma os NaNs de a em zeros
a =
1 2 0 Inf 0

Enquanto os NaNs so bem definidos matematicamente pelos padres do
IEEE, as matrizes vazias so definidas pelos criadores do Matlab e apresentam
propriedades caractersticas e interessantes. As matrizes vazias no passam de
variveis do Matlab com tamanho zero em uma ou mais dimenses. Por exemplo:

>> size ([]) % a mais simples das matrizes vazias
ans =

Minicurso Matlab.

31
0 0
>> c = zeros(0,5) % uma matriz vazia com mltiplas colunas!
c =
Empty matrix: 0-by-5
>> size (c)
ans =
0 5
>> d = ones(4,0) % uma matriz vazia com mltiplas linhas!
d =
Empty matrix: 4-by-0
>> size (d)
ans =
4 0
>> length(d) % seu tamanho zero, embora tenha quatro linhas
ans =
0

O exemplo apresentado pode parecer estranho, mas s vezes til
permitir que uma matriz vazia tenha tamanho zero em qualquer dimenso. [ ]
apenas a mais simples matriz vazia.
No Matlab, muitas funes retornam matrizes vazias quando nenhum
outro resultado apropriado. Talvez o exemplo mais comum seja o da funo find:

>> x = -2:2 % dados novos
x =
-2 -1 0 1 2
>> y = find(x > 2)
y =
[ ]

Neste exemplo, x no contm valores maiores que 2 e, assim, no h
ndices a retornar. Para verificar os resultados vazios, o Matlab possui a funo
lgica isempty:

>> isempty (y)
ans =
1

Quando se executa testes relacionais com matrizes vazias, importante
empregar isempty devido ambigidade, tais como:
>> c==[ ] % compara matrizes vazias 0 por 5 com matrizes vazias 0 por 0
Warning: X == [ ] is technically incorrect. Use isempty(X) instead.
ans =
0
>> a = [ ] % gera uma varivel vazia
a =

Minicurso Matlab.

32
[ ]
>> a == [ ] % igual, mas ainda no funciona
Warning: X == [] is technically incorrect. Use isempty(X) instead.
ans =
1

No Matlab, a matriz vazia no igual a qualquer matriz ou escalar no-
nulos. Esse fato conduz ao seguinte exemplo:

>> y = [ ]; % dados novos
>> a = (y==0)
Warning: Future versions will return empty for empty == scalar
comparisons.
a =
0
>> a = (y==1)
Warning: Future versions will return empty for empty == scalar
comparisons.
a =
0
>> b = (y~=0)
Warning: Future versions will return empty for empty ~= scalar
comparisons.
b =
1

Que mostra que uma matriz vazia no pe igual a um escalar e que, em
algum momento, uma verso do Matlab vai definir matriz vazia == escalar como
sendo vazio. At ento preciso tomar cuidado com situaes como:

>> find (y==0)
Warning: Future versions will return empty for empty == scalar
comparisons.
ans =
[ ]



Nesse exemplo, no h ndices a serem retornados. Da mesma maneira, em:



>> b = (y~=0)
Warning: Future versions will return empty for empty ~= scalar
comparisons.
b =

Minicurso Matlab.

33
1

Afirma-se outra vez que uma matriz vazia no igual a um escalar. Mas

>> j = find(y~=0)
Warning: Future versions will return empty for empty ~= scalar
comparisons.
j =
1

Agora h um ndice, mesmo que y tenha tamanho zero! Portanto, at que
as mudanas prometidas no tratamento das matrizes vazias sejam feitas,
preciso verificar as variveis com isempty antes de efetuar testes relacionais. A
interpretao vigente costuma causar problemas, j que y(find( y ~= 0)) no existe.
Mas a nova abordagem leva a

>> find ([ ])
ans =
[ ]

o que, em geral, o que se deseja.



4. Funes Matemticas


O Matlab disponibiliza um grande nmero de funes matemticas. Exemplos
destas funes podem ser encontrados na tabela a seguir:

Funes
Trigonomtricas
Descrio
acos(x) Arco co-seno
acosh(x) Arco co-seno hiperblico
acot(x) Arco cotangente
acoth(x) Arco cotangente hiperblico
acsc(x) Arco cossecante
acsch(x) Arco cossecante hiperblico
asec(x) Arco secante
asech(x) Arco secante hiperblico
asin(x) Arco seno
asinh(x) Arco seno hiperblico
atan(x) Arco tangente
atan2(x,y) Arco tangente do quarto quadrante
atanh(x) Arco tangente hiperblico

Minicurso Matlab.

34
cos(x) Co-seno
cosh(x) Co-seno hiperblico
cot(x) Cotangente
coth(x) Cotangente hiperblica
csc(x) Cossecante
csch(x) Cossecante hiperblico
sec(x) Secante
sech(x) Secante hiperblico
sin(x) Seno
sinh(x) Seno hiperblico
tan(x) Tangente
tanh(x) Tangente hiperblica


Funo Exponencial Descrio
^ Potncia
exp(x) Exponencial: e
x

log(x) Logaritmo natural
log10(x) Logaritmo na base 10
log2(x) Logaritmo na base 2
sqrt(x) Raiz quadrada

Funo complexa Descrio
abs(x) Valor absoluto ou mdulo de um nmero complexo
angle(x) ngulo de um nmero complexo
conj(x) Conjugado complexo
imag(x) Parte imaginria de um nmero complexo
real(x) Parte real de um nmero complexo
unwrap(x) ngulo de fase reduzido


Funes de
arredondamento e resto
Descrio
ceil(x) Arredondamento na direo de mais infinito
fix(x) Arredondamento na direo de zero
floor(x) Arredondamento na direo de menos infinito
mod(x) Resto com sinal
rem(x) Resto da diviso de x por y
round(x) Arredondamento para o nmero inteiro mais prximo
sign(x) Funo sinal: informa o sinal do argumento


Funo de
transformaes de
coordenadas
Descrio

Minicurso Matlab.

35
cart2sph(x) Cartesiana para esfrica
cartpol(x) Cartesiana para cilndrica ou polar
pol2cart(x) Cilndrica ou polar para cartesiana
sph2cart(x) Esfrica para cartesiana


Funo terica
numrica
Descrio
factor(x) Decomposio em fatores primos
primes(x) Lista de nmeros primos
gcd(x) Mximo divisor comum
lcm(x) Mnimo mltiplo comum
rat(x) Aproximao racional
rats(x) Sada de dados no formato racional
perms(x) Todas as combinaes possveis
nchoosek(x) Todas as combinaes de N elementos tomadas k a
K


Funes especializadas Descrio
Airy(x) Funo de Airy
Besselj(x) Funo de Bessel do primeiro tipo
bessely(x) Funo de Bessel do segundo tipo
besselh(x) Funo de Bessel do terceiro tipo
besseli(x) Funo de Bessel do primeiro tipo modificada
besselk(x) Funo de Bessel do segundo tipo modificada
beta(x) Funo beta
betainc(x) Funo beta incompleta
betaln(x) Logaritmo da funo beta
ellipj(x) Funo elptica de Jacobi
ellipke(x) Integral elptica completa
erf(x) Funo erro (error)
erfc(x) Funo erro complementar
erfcx(x) Funo erro complementar escalada
erfinv(x) Inversa da funo erro
expint(x) Funo erro exponencial
gamma(x) Funo gama
gammainc(x) Funo gama incompleta
gammaln(x) Logaritmo da funo gama
legendre(x) Funo de Legendre associada
cross(x) Produto vetorial
dot(x) Produto inteiro entre dois vetores

Excludo:
Excludo:

Minicurso Matlab.

36
As funes indicadas so representadas por expresses com letras
minsculas, seguidas dos argumentos entre parnteses. Todos os comandos no
Matlab so em letras minsculas.
Outro ponto importante que os argumentos das funes trigonomtricas e
os resultados de suas inversas so expressos em radianos. Deve-se tomar
cuidado para no fazer confuso ao utilizar as funes logartmicas. Em textos, a
notao usual para o logaritmo na base natural ln(x) a funo correspondente
no Matlab log(x) - enquanto o logaritmo na base 10 normalmente representado
por log(x) no Matlab log10(x).


5. MATRIZES

Matriz uma tabela de nmeros dispostos em m linhas e n colunas. Assim,
um simples nmero pode ser considerado uma matriz com uma linha e uma
coluna, uma coordenada (x-y) pode ser considerada uma matriz com uma linha e
duas colunas, e um grupo de quatro coordenadas (x-y-z) podem ser considerada
uma matriz com quatro linhas e trs colunas.
Exemplo:

=
2 7 8
0 1 5
10 9 8
A

[ ] 1 7 8 = B

=
4
1
8
9
C



5.1. Definindo Matrizes no MATLAB
Suponha que queiramos agora criar as matrizes A, B e C usando o MATLAB. H
vrios mtodos de definio de matrizes no MATLAB. Vejamos cada um:

Modo mais simples:
Nome da matriz = [ a
11
a
12
a
13
... a
1n
; a
21
a
22
a
23
...a
2n
];
Assim, as matrizes A, B e C sero representadas por:
A =[8,9,10;5,1,0;8,7,2];
B = [8,7,1];
C = [9;8;1;4];

O nome da matriz deve comear com uma letra e conter no mximo 19 caracteres
que podem ser nmeros, letras ou caractere sublinhado, e aparece ao lado
esquerdo do sinal de igual. O lado direito contm os dados entre colchetes por
ordem de linhas. O ponto-e-vrgula separa as linhas, e os valores das linhas
podem estar separados por vrgulas ou por espaos. O valor pode conter um sinal
de + ou -, e um ponto decimal, mas no pode conter uma vrgula, como 32,154.


Minicurso Matlab.

37
OBS: Tambm podemos escrever uma matriz terminando uma linha com uma
vrgula seguida de trs ou mais pontos, e continuar a entrar com os valores
restantes na prxima linha da rea de trabalho do MATLAB.

Matrizes curtas : F = [1 52 64 197 42 42 55 82 22 109]

Matrizes Longas: F = [1 52 64 197 42 42
55 82 22 109]

Podemos tambm definir uma matriz usando outra que j definida. Por exemplo,
considere as seguintes matrizes:

B = [ 1.5 , 3.1];

S = [3.0 B];


Estes comandos equivalem a:

S = [3.0 1.5 3.1];








5.2. Gerando Sub-Matrizes com o Operador Dois Pontos ( : ).


Seja a matriz A=












>> A (1:5,7:10)
92 99 11 18 15 67 74 51 58 40
98 80 17 14 16 73 55 57 64 41
14 81 88 20 22 54 56 63 70 47
85 87 19 21 13 60 62 69 71 28
86 93 25 12 19 61 68 75 52 34
17 24 76 83 90 42 49 26 33 65
23 15 82 89 91 48 30 32 39 66
79 16 13 95 97 29 31 38 45 72
10 12 94 96 78 35 37 44 46 53
11 18 10 77 84 36 43 50 27 59
74 51 58 40
55 57 64 41
56 63 70 47
62 69 71 28
68 75 52 34

Minicurso Matlab.

38
ans =




uma submatriz 5x4, consiste das primeiras cinco linhas e as ltimas quatro
colunas. Utilizando os dois pontos no lugar de um subscrito denotam-se todos
elementos da linha ou coluna. Por exemplo,
>> A (1:2:5,:)
ans =





uma submatriz 3x10 que consiste da primeira, terceira e quinta linhas e todas
colunas da matriz A.

Fixao: Obtenha uma sub-matriz de A que contenha as linhas:1,3,5,7, e as
colunas: 5,6,7.











5.3. Gerando Vetores com o Operador Dois Pontos ( : )

O uso do operador dois pontos (:) til na criao de matrizes ou vetores.
Podemos armazenar a primeira coluna da matriz data1 em um vetor x, e a
segunda coluna em um vetor y.
>> MATRIZ1 = [9,2;3,8;7,6];
>> x = MATRIZ1 ( : , 1);
>> y = MATRIZ1 ( : , 2 );

x = y =
9 2
3 8
7 6

92 99 11 18 15 67 74 51 58 40
14 81 88 20 22 54 56 63 70 47
86 93 25 12 19 61 68 75 52 34
A = [ 30 39 48 1 10 19 28
38 47 7 9 18 27 29
46 6 8 17 26 35 37
5 14 16 25 34 36 45
13 15 24 33 42 44 4
21 23 32 41 43 3 12
22 31 40 49 2 11 20]

Resposta:

d=A(1:2:7,5:7)
d =
[ 10 19 28
26 35 37
42 44 4
2 11 20]

Minicurso Matlab.

39
O operador : entre os dois nmeros inteiros gera todos os inteiros entre os dois
nmeros especificados. Se for usado para separar trs nmeros, os dois pontos
geraro valores entre o primeiro e terceiro nmeros, usando o segundo nmero
como incremento.

Seja o VETOR A = 6 : -2 : -9 , seus elementos so:
A = [6 4 2 0 -2 -4 -6 -8]

O operador dois pontos pode tambm ser usado para selecionar uma sub-matriz
de uma outra matriz. Por exemplo, considere a matriz abaixo:

C = [-1,0,0;1,1,0; 1,-1,0; 0,0,2]

Se executarmos os comandos:
PARTE_1 = C ( : , 2:3);
PARTE_2 = C (3:4, 1:2);

Definimos as matrizes:
PARTE_1 = [ 0 0; 1 0; -1 0; 0 2];
PARTE_2 = [1 1; 0 0];

Minicurso Matlab.

40
OBS: Pode-se, tambm, gerar vetores usando a funo linspace. Por
exemplo,
>> k = linspace (0, l, 6)
k =
0 0.2000 0.4000 0.6000 0.8000 1.0000

gera um vetor linearmente espaado de 0 a 1, contendo 6 elementos.




5.4. Operaes com Matrizes


Matrizes Transpostas: A transposta de uma matriz uma nova matriz onde as
colunas so formadas pelas linhas da matriz original. Exemplo:

Se uma matriz foi definida como A , sua transposta ser A .


Somatrio de Produtos
a soma escalar de dois vetores do mesmo tamanho.

A = [4 1 3] e B = [-2 5 2]
A . B = (4) . (-2) + (-1) . (5) + (3) . (2)
A . B = (-8) + (-5) + (6)
A . B = -7

No MATLAB, fazemos: A.B= sum (A .*B); ou simplesmente: A*B

OBS: Quando A e B forem ambos vetores linha ou ambos vetores coluna, temos
que:
Somatrio de produtos = sum (A .*B);

Quando A for um vetor linha e B um vetor coluna, temos que:
Somatrio de produtos = sum (A' .*B);

Quando A for um vetor coluna e B um vetor linha, temos que:
Somatrio de produtos = sum (A .*B');

Multiplicao de Matrizes

A multiplicao de duas matrizes corresponde ao somatrio de produtos das linhas i
da
primeira matriz e das colunas j da Segunda matriz.

Formatados: Marcadores e
numerao
Formatados: Marcadores e
numerao
Excludo:
Excludo:

Minicurso Matlab.

41

=
3 7 8
0 1 5
10 9 8
A
3x3

=
3 7 8
5 2 1
B
2x3 ;

Usando as propriedades j conhecidas para multiplicao de Matrizes, podemos ter:




C=B.A , mas no C=A.B .

C= 58 46 25
115 93 86


Diviso

Existem dois smbolos para diviso de matrizes no MATLAB "\" e "/". Se A uma
matriz quadrada no singular, ento A\B e B/A correspondem respectivamente
multiplicao esquerda e direita da matriz B pela inversa da matriz A, ou
inv(A)*B e B*inv(A), mas o resultado obtido diretamente.
Portanto, basta verificar se as duas matrizes so singulares (existncia de inversa)
para fazer a diviso.

Exemplo: Considerando um sistema linear, comum em muitos exerccios serem
dados a matriz dos coeficientes e uma matriz resposta. Com isso, existem muitos
tcnicas para calcularmos as incgnitas, contudo o Matlab pode resolver este
problema facilmente. Admita A(matriz dos coeficientes) e R(matriz resposta):








Exponenciao

A expresso A^p eleva A p-sima potncia e definida se A matriz quadrada e
p um escalar. Se p um inteiro maior do que um, a exponenciao computada
como mltiplas multiplicaes. Por exemplo,

=
3 6 1
5 4 8
2 1 9
B
ento: B^2 =

41 43 60
51 54 109
29 25 91


A = [ 1 1 9
8 6 5
4 3 7 ]
R = [ 1
9
8 ]
Comando:

>> A\R = inv(A)*R

ans =

20.5556
-26.5556
0.7778

Com isso temos a matriz
das incgnitas:
Formatados: Marcadores e
numerao
Formatados: Marcadores e
numerao
Excludo:
Excludo:
Excludo:
Excludo:
Excludo: N
Excludo:
Excludo: SE

Minicurso Matlab.

42
Obs: B^2 B.^2 B.^2=
ans =
81 1 4
64 16 25
1 36 9
5.5. Matriz Inversa

Por definio o inverso de uma matriz quadrada A a matriz A
-1
.
No MATLAB, para
obtermos uma matriz inversa devemos fornecer a matriz original A e executar o
comando inv(A).

A = [8 1 6 inv(A)= 0.1472 -0.1444 0.0639
3 5 7 -0.0611 0.0222 0.1056
4 9 2] -0.0194 0.1889 -0.1028


Resumo das operaes para matrizes de mesma ordem:








Alguns comandos teis:

Reshape: Reordena a dimenso da matriz em questo, em um vetor linha ou coluna.
Det: Determinante de uma matriz.

Abaixo podemos ver estes comandos exemplificados:












6. GRFICOS


A . (operao) B onde, no lugar de (operao) dever ter :

A.*B para multiplicao,
A./B para diviso direita,
A.\B para diviso esquerda
A.^n para potenciao
A= [ 8 1 6
3 5 7
4 9 2 ]
det(A) = -360
a = [8 1 6
3 5 7
4 9 2]
W=reshape(a, [1 9 ] )
W = [8 3 4 1 5 9 6 7 2]

Excludo:
Excludo:
Excludo:
Excludo: Quebra de pgina

Minicurso Matlab.

43
A construo de grficos no MATLAB mais uma das facilidades do sistema.
Atravs de comandos simples pode-se obter grficos bidimensionais ou
tridimensionais com qualquer tipo de escala e coordenada. Existe no MATLAB uma
vasta biblioteca de comandos grficos.
Os comandos para se adicionar ttulos, linhas de grade e inserir textos esto
relacionados a seguir:

Title(text) - Este comando escreve ttulos no topo do grfico plotado.
Xlabel(text) - Este comando escreve um texto abaixo do eixo x do grfico plotado.
Ylabel(text) - Este comando escreve um texto ao lado do eixo y do grfico plotado.
Text(x, y, text) - Este comando escreve um texto na tela do grfico no ponto
especfico das coordenadas (x, y) usando os eixos dos grficos, assumindo que a
esquina esquerda inferior (0,0), e a esquina direita superior (1,1). Se x e y so
vetores o texto escrito a cada ponto.
gtext(text) - Este comando escreve um texto nas posies indicadas na tela do
grfico pelo mouse.
grid Este comando acrescenta grades no grfico plotado.

Os comandos para plotar grficos lineares e logartmicos so:

plot(x, y) - Este comando gera grficos lineares com valores de x e y, onde x
representa a varivel independente e y representa a varivel dependente.
Semilogx(x, y) - Este comando gera grfico usando escala linear para y e escala
logartmica para x.
Semilogy(x, y) - Este comando gera grficos usando escala linear para x e escala
logartmica para y.
Loglog(x, y) - Este comando gera grficos com escala logartmica para ambos os
eixos x e y.

Se Y um vetor, plot(Y) produz um grfico linear dos elementos de Y versos o
ndice dos elementos de Y. Por exemplo, entre com vetor [0.0, 0.48, 0.84, 1.0, 0.91,
0.6, 0.14], e execute o comando plot:

>> Y = [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0.14];
>> plot (Y)


Minicurso Matlab.

44

Se X e Y so vetores com dimenses iguais, o comando plot(X,Y) produz um grfico
bidimensional dos elementos de X versos os elementos de Y, por exemplo



>> t = 0:0.05:4*pi;
>> y = sin(t);
>> plot(t,y)

Resulta em:


Estilos de linha e Marcadores:

Tipo de Linha Indicador Tipo de Ponto Indicador
Solid
-
Plus
+
Dashed
--
Star
*
Dotted
:
Circle

Dashdot
-.
x-mark
X
Point
.




Minicurso Matlab.

45
O comando a seguir representa linha slida com tipo de ponto x-mark:

>> y=cos(x); x=linspace(1,100,100);

>> plot(x, y, x, y,'x')

Podemos tambm escolher as cores que sero usadas:


Cor Indicador
Vermelho r
Verde g
Azul b
Branco w


O comando seguinte representa linha slida azul para os vetores x, y e plotando
pontos vermelhos xmark:


plot(x, y, b, x, y, xr);


O MATLAB pode plotar mltiplas linhas em apenas um grfico. Tudo isto usando o comando
plot com mltiplos argumentos.

Por exemplo:

plot(t, sin(t), t, cos(t), t, sin(t +pi), t, cos(t +pi));




Plotando vrios grficos em uma mesma janela

O MatLab oferece a opo de mostrar mais de um grfico em uma nica figure.
Para tanto, utilizado o comando subplot. A sintaxe deste comando a seguinte:
subplot(l,c,n), plot(x,y).

Minicurso Matlab.

46
l e c indicam que teremos l x c grficos na figura;
l corresponde ao nmero de linhas, c ao nmero de colunas;
n corresponde ordem de plotagem do grfico na janela.
Supondo que se deseja mostrar os resultados de seis grficos, tem-se a seguinte
seqncia de comandos:
Para:
>> t = 0:0.05:4*pi;
>> y = sin(t);
>> subplot(2,3,1),plot(t,sin(t))
>> subplot(2,3,2),plot(t,cos(t))
>> subplot(2,3,3),plot(t,tan(t))
>> subplot(2,3,4),plot(t,sin(t+pi))
>> subplot(2,3,5),plot(t,cos(t+pi))
>> subplot(2,3,6),plot(t,tan(t+pi))

que resultam na seguinte figure, com os grficos sendo plotados da esquerda para a
direita, de cima para baixo:





Minicurso Matlab.

47
6.1. Grficos Polares

Grficos polares so teis quando valores so representados por ngulo e grandeza
(magnitude).

Coordenadas polares
Um ponto representado em coordenadas polares por um angulo q e uma
magnitude r. O valor de q geralmente dado entre 0 e 2p. A magnitude um valor
positivo que representa a distncia do eixo que fornece o angulo at o ponto. O
comando no MATLAB para gerar grficos polares :

polar(theta,r) Este comando generaliza grficos polares com ngulo (em radiano) e
magnitude r correspondente.
Exemplo:

theta = 0:2*pi / 100 : 2*pi;
r = theta / (2*pi);
polar (theta,r)




Transformao retangular / polar ; polar / retangular

s vezes devido a praticidade interessante transformarmos coordenadas de um
sistema para outro.
As equaes abaixo relacionam os sistemas polar e retangular:
polar / retangular _________________________ x = r cos ; y = r sin ;
retangular / polar _________________________ r = x + y ; =atan (y/x);




6.2. Grficos de barras

Formatados: Marcadores e
numerao
Formatados: Marcadores e
numerao

Minicurso Matlab.

48
0
2
4
6
8
10
12
0
2
4
6
8
10
12
0.7
0.75
0.8
0.85
0.9
0.95
1
Os grficos so similares, porm as linhas verticais que marcam o eixo x nos
grficos de barras so omitidas nos grficos de degraus.
Comandos:

bar(x, y) Este comando gera grficos de barras com elementos do vetor y
localizados no vetor x, contm o mesmo espao entre os valores.

hist(x) Gera um histograma do vetor x.
6.3. Grficos 3D
A rede de superfcie pode ser gerada por um conjunto de valores em uma matriz.
Cada ponta na matriz representa o valor da superfcie que corresponde ao ponto na
tela.
Para gerar um arquivo que representa uma superfcie 3D, primeiramente calculamos
o conjunto dos valores de x e y que representam as variveis independentes e
depois calculamos os valores de z que representa os valores da superfcie. O
comando no MATLAB para plotar grficos 3D mesh(z). O comando meshgrid tem
os argumentos do vetor x e y, ou seja, transforma o domnio especificado pelos
vetores x e y em vetores que podem ser usados em clculos de funes de 2
variveis e construo de grfico 3D.

Por exemplo:
f(x ,y)= z = 1 - x- y fazemos:


>> [xgrid,ygrid]=meshgrid(-0.5:0.1:0.5, -0.5:0.1:0.5);
>> z=sqrt(abs(1 + xgrid.^2+ygrid.^2));
>> mesh(z)


















Formatados: Marcadores e
numerao

Minicurso Matlab.

49
6.4. Manipulao de Grficos

Para adicionar curvas a um grfico j existente utiliza-se o comando hold on.
Depois de executado o comando hold on, as curvas j existentes no grfico no so
removidas a cada comando plot, mas sim acrescenta as novas curvas ao grfico.
Por exemplo:
Grficos em 2D
x = linspace(0, 2*pi, 30);
>> y = sin(x);
>> z = cos(x);
>> plot(x,y)
>> hold on
>> plot(x, z)
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
plot(x,y)
plot(x,z)


Grficos em 3D
>> [xgrid,ygrid]=meshgrid(-0.5:0.1:0.5);
>> z=sqrt(abs(-1 + xgrid.^2 + ygrid.^2));
>> mesh(z)
>> hold on
>> v=sqrt(abs(0.5 + xgrid.^2 + ygrid.^2));
>> mesh(v)







Formatados: Marcadores e
numerao
Excludo:
Excludo:
Excludo:

Minicurso Matlab.

50
0
5
10
15
0
5
10
15
0.7
0.75
0.8
0.85
0.9
0.95
1
mesh(z)
mesh(v)

















Para desenhar o grfico de uma funo z = f(x,y), utiliza-se o comando
"meshgrid". Esta funo funciona da seguinte maneira: dados dois vetores "k" e "w",
contendo as coordenadas dos eixos x-y, a funo "meshgrid" retorna duas matrizes
"x" e "y" contendo uma "malha" de coordenadas necessria para a gerao de
superfcies.
Se:
K= -4:4; %escolhe valores para o eixo x
W= 2:6; %escolhe valores para o eixo y
[x,y] = meshgrid(K,W);
x=
-4 -3 -2 -1 0 1 2 3 4
-4 -3 -2 -1 0 1 2 3 4
-4 -3 -2 -1 0 1 2 3 4
-4 -3 -2 -1 0 1 2 3 4
-4 -3 -2 -1 0 1 2 3 4
y=
2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6

Como se pode ver o comando meshgrid repetiu K em cada uma das 5 linhas
de W. Da mesma maneira, repetiu W em cada uma das nove colunas de K.
Para lembrar facilmente como cada varivel repetida em meshgrid, basta
pensar em grficos bidimensionais. O eixo-x varia da esquerda para a direita, assim
Excludo:

Minicurso Matlab.

51
como a matriz x de meshgrid. De modo similar, o eixo-y varia de baixo para cima,
assim como a matriz y de meshgrid.


Por exemplo:
>> [x,y] = meshgrid(-2:0.2:2,-2:0.2:2);
>> z = x.*exp(-x.^2-y.^2);
>> mesh(x,y,z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
>> title('Grfico 3D')


Pode-se, ainda, utilizar o comando contour que mostra a projeo da
superfcie acima do plano xy com 10 iso-linhas:

>> contour(z,10)


Minicurso Matlab.

52


Para preencher a superfcie plotada, o MatLab oferece o comando surfc:

>> surfc(x,y,z)

que exibir o grfico da seguinte forma:




7. POLINMIOS


Minicurso Matlab.

53
7.1. Definindo Polinmios no Matlab (comando polyval):

Este comando possui dois argumentos. O primeiro argumento contm os
coeficientes do polinmio em questo e o segundo argumento contm a matriz para
a qual desejamos avaliar o polinmio.

Exemplo
a = [3,-0.5,0,1,-5.2];
f = polyval(a,x);

f(x) = 3x
4
0.5x
3
+x-5,2

Quando x for um escalar ou um vetor, polyval consegue calcular o valor da funo
operando elemento por elemento. Mas quando x for uma matriz usa-se o comando
polyvalm:
f = polyvalm(a,x);
sendo a matriz x, uma matriz quadrada.

O tamanho de f ter que ser igual ao tamanho de x, seja ele um escalar, vetor ou
matriz.

Como se pode ver um polinmio no nada mais do que um vetor e todas
operaes validas para um vetor valem tambm para um polinmio.

Multiplicao, Soma, Subtrao e Diviso de polinmios:

Admita que g e h so dois polinmios previamente definidos.


7.2 Soma e Subtrao
Para somar ou subtrair polinmios basta somar ou subtrair seus respectivos
coeficientes:





7.3. Multiplicao

A multiplicao polinomial efetuada por meio do comando conv (que faz a
convoluo entre dois conjuntos). A multiplicao de mais de dois polinmios requer
o uso repetido de conv.
m = conv(g,h)

g(x) + h(x) = ?
g(x)=[1 0 -3 -1 2.4]
h(x)=[0 4 -2 5 -16]
ans = 1.0000 4.0000 -5.0000 4.0000 -13.6000
g(x)=[1 0 -3 -1 2.4]
h(x)=[0 4 -2 5 -16]
g(x) = x
4
3x
2
x + 2.4
h(x) = 4x
3
- 2x
2
+ 5x - 16
Formatados: Marcadores e
numerao
Formatados: Marcadores e
numerao
Excludo:
Excludo:
Excludo: Esses comandos tambm
podem ser combinados em um s:

f = polyval([3,-0.5,0,1,-5.2],x);
Que nos mostrara o seguinte
polinmio:
Excludo: -se
Excludo:
Excludo:
Excludo:

Minicurso Matlab.

54
7.4. Diviso
No MATLAB a diviso de polinmios feita atravs do comando deconv:

[q,r] = deconv(g,h)

Esse resultado nos diz que g dividido por h nos d o polinmio de quociente q e
resto r.
7.5. Razes de polinmios

Se a funo f(x) for um polinmio de grau n, ela ter exatamente n razes. Estas n
razes podem conter mltiplas razes ou razes complexas.No MATLAB, um
polinmio representado por um vetor linha dos seus coeficientes em ordem
decrescente. Observe que os termos com coeficiente zero tm de ser includos.
Dada esta forma, as razes do polinmio so encontradas usando-se o comando
roots do MATLAB. J que tanto um polinmio quanto suas razes so vetores no
MATLAB, o MATLAB adota a conveno de colocar os polinmios como vetores
linha e as razes como vetores coluna. Para ilustrar este comando, vamos
determinar as razes do seguinte polinmio:

f(x)=x
3
-2x
2
-3x+10

Lembrando que estes comandos podem ser dados de uma s vez:

r = roots([1,-2,-3,10]);

Os valores das razes sero: 2 + i, 2 - i e -2.

Agora, dadas as razes de um polinmio, tambm possvel construir o polinmio
associado. No MATLAB, o comando poly encarregado de executar essa tarefa.
Onde o argumento do comando poly o vetor contendo as razes do polinmio que
desejamos determinar.

Exemplo 2
Sejam as razes de um polinmio -1, 1 e 3. Determinar este polinmio.
No MATLAB:

a = poly ([-1,1,3]);

a = 1 -3 -1 3



8. Programao bsica em Matlab

A programao dentro do Matlab extremamente parecida com a
programao em C, nesse capitulo vamos tratar dos principais comandos
utilizados na programao.
Formatados: Marcadores e
numerao
Formatados: Marcadores e
numerao
Excludo: <#> Diviso
Excludo:
Excludo:
Excludo:
Excludo:
Excludo:
Excludo: o
Excludo:
Excludo:
Excludo:
Excludo:
Excludo:

<#>
Excludo: Quebra de pgina
Excludo:
Excludo: Programao bsica em
Matlab
Excludo: Programao bsica em
Matlab

Minicurso Matlab.

55

8.1. Estruturas de repeties

LAO FOR

Os laos for executam um bloco de declaraes durante um nmero
especificado de vezes. A forma geral do loop for :

for indice = expr
declarao 1
...
declarao n
end

Onde ndice a varivel do loop (tambm conhecida como ndice do loop) e expr
a expresso de controle do loop. As colunas em expr so armazenadas uma por
vez na varivel ndice e o corpo do lao executado. Por essa razo, o lao
executado uma vez para cada coluna em expr. A expresso em geral adota a
forma de um vetor em notao abreviada primeiro: incremento : ultimo.
As declaraes entre a declarao for e a declarao end so
conhecidas como o corpo do lao. Elas so executadas repetidamente durante cada
passagem do lao for. A construo de lao for funciona conforme descrito a seguir.
1. No inicio do lao o MATLAB gera a expresso de controle.
2. Na primeira passagem pelo lao, o programa associa a primeira coluna da
expresso varivel de lao ndice, e o programa executa as declaraes
no corpo do lao.
3. Aps a execuo das declaraes no corpo do lao, o programa associa a
prxima coluna da expresso varivel de lao ndice, e o programa
executa as declaraes no corpo do lao novamente.
4. O passo 3 repetido enquanto houver colunas adicionais na varivel de
controle.

Abaixo temos alguns exemplos.

for ii = 1:10
declarao 1
...
declarao n
end

Nesse caso, a expresso de controle gera uma matriz 1x10, por isso as
declaraes de 1 a n sero executadas dez vezes. O ndice de lao ii ser 1 na
primeira vez, dois na segunda, e assim por diante. O ndice de lao ser 10 na ltima
passagem pelas declaraes. Quando o controle desenvolvido para a declarao
for depois da dcima passagem, no h mais colunas na expresso de controle; a
execuo transferida para a primeira declarao depois da declarao end. Note
Formatados: Marcadores e
numerao

Minicurso Matlab.

56
que o ndice do lao ii permanece com o valor 10 aps o trmino da execuo do
lao.

for ii = 1: 2 :10
declarao 1
...
declarao n
end

Nesse caso, a expresso de controle gera uma matriz 1x5, por isso as
declaraes de 1 a n sero executadas cinco vezes. O ndice de lao ii ser 1 na
primeira vez, 3 na segunda, e assim por diante. O ndice de lao ser 9 durante a
quinta e ltima passagem pelas declaraes. Quando o controle desenvolvido para
a declarao for depois da quinta passagem, no h mais colunas na expresso de
controle; a execuo transferida para a primeira declarao depois da declarao
end. Note que o ndice do lao ii permanece com o valor 9 aps o trmino da
execuo do lao.

for ii = [5 9 7]
declarao 1
...
declarao n
end

Aqui, a expresso de controle uma matriz 1x3 explicitamente apresentada,
por isso as declaraes de 1 a n sero executadas trs vezes, com o ndice do lao
valendo 5 na primeira vez, 9 na segunda vez e 7 na ultima. A varivel de ndice ii
permanece com o valor 7 depois que o lao termina sua execuo.

for ii = [1 2 3 ; 4 5 6]
declarao 1
...
declarao n
end

Nesse caso, a expresso de controle gera uma matriz 2x3, por isso as
declaraes de 1 a n sero executadas trs vezes. O ndice de lao ii receber o
vetor coluna [1;4] na primeira vez, [2;5] na segunda, e [3;6]na terceira. Este exemplo
ilustra que um ndice de lao pode ser um vetor.

Exemplo:

>> for i = 1:10
v(i)=3*i;
end

Cria um vetor v com 10 elementos:
>> v

Minicurso Matlab.

57
v =
3 6 9 12 15 18 21 24 27 30

Usando um lao for tambm em conjunto com outro lao for:

>> for i = 1:4,
for j = 1:4,
A(i,j) = i + j;
B(i,j) = i - j;
end;
end;


LAO WHILE

O lao while um bloco de declaraes que se repete indefinidamente,
enquanto uma condio for satisfeita. A forma geral do lao while :

while expresso
...
...
...
end

Se a expresso for diferente de zero (verdadeira), o bloco de cdigo ser executado
e o controle retornar para a declarao while. Se a expresso ainda for diferente
de zero (verdadeira), as declaraes sero executadas novamente. Esse processo
se repetir at que a expresso se torne zero (falsa). Quando o controle retornar
para a declarao while e a expresso for zero, o programa executar a primeira
declarao depois de end.

Exemplo:
O seguinte algoritmo de clculo da mdia.

acumulador = 0;
n = 0;
while n<5,
numero = input('Digite o valor: ');
disp('O nmero digitado foi: ');
disp(numero);
n = n+1;
acumulador = acumulador + numero;
end;
media = acumulador/n;
disp('A soma dos nmeros : ');
disp(acumulador);
disp('A mdia dos nmeros : ');
disp(media);

Minicurso Matlab.

58


ESTRUTURAS CONDICIONAIS

IF-ELSE-END

Em diversas situaes, as seqncias de comandos tm de ser executadas
condicionalmente, com base em um teste relacional. Nas linguagens de
programao, essa lgica implementada por meio de uma das da estrutura if-else-
end. A estrutura if-else-end mais simples :

if expresso
comando...
end

Os comandos entre as instrues if e end so executados se todos os
elementos na expresso forem verdadeiros.
Nos casos em que h duas alternativas, a estrutura if-else-end passa a ser:

if expresso
comandos executados se verdadeira
else
comandos executados se falsa
end

Neste caso o primeiro grupo de comandos executado se a expresso for
verdadeira, e o segundo grupo se a expresso for falsa.
Quando houver trs ou mais alternativas, a estrutura if-else-end toma a
forma:

if expresso 1
comandos executados se expresso 1 for verdadeira
elseif expresso 2
comandos executados se expresso 2 for verdadeira
elseif expresso 3
comandos executados se expresso 3 for verdadeira
elseif expresso 4
comandos executados se expresso 4 for verdadeira
.
.
.
else
comandos executados se nenhuma outra expresso for verdadeira
end

Nesta forma apenas os comandos associados primeira expresso
verdadeira encontrada so executados. As expresses relacionais seguintes

Minicurso Matlab.

59
no so testadas e o resto da estrutura if-else-end ignorada. Alm disso,
no necessrio que o comando final else esteja presente.

Exemplo:

x=input('qual o valor de x? ')
z=input('qual o valor de z? ')
if x==10 & z==5
y=x+z
elseif x>5
y=x/5+z
else
y=x*5+z
end

Neste caso, se x for igual a dez e z for igual a 5, faz-se a soma de x+z. Se x
for maior que 5, faz-se x dividido por cinco somado ao valor de z. E caso qualquer
outra combinao de x e z acontea, faz-se x vezes cinco somado a z.


SWITCH-CASE

Quando seqncias de comandos devem ser condicionalmente executadas,
com base no uso repetido de um teste de igualdade com um argumento comum, a
estrutura switch-case costuma ser usada. Essa estrutura tem a forma:

switch expresso
case teste_expresso1
comandos1...
case {teste_expresso2, teste_expresso3, teste_expresso4}
comandos2...
otherwise
comandos3...

end

Aqui a expresso deve ser um escalar ou uma string de caracteres. Se
expresso um escalar, o comando case testa se: expresso==teste_expresso.
Se expresso uma string de caracteres, o teste efetuado pelo comando strcmp
(expresso, teste_expresso). No exemplo anterior, expresso comparada com
teste_expresso1 no primeiro comando case. Se eles so iguais, executa-se
comando1 e o restante dos comandos antes da declarao end so omitidos. Se a
primeira expresso no verdadeira, a segunda considerada. No exemplo
anterior, expresso comparada com teste_expresso2, teste_expresso3,
teste_expresso4, os quais esto contidos em um vetor celular. Se qualquer um
deles igual expresso, executa-se comandos2 e os demais comandos so
omitidos. Se todas as comparaes case so falsas, o comando3 que segue o
comando otherwise (que opcional) executado. Note que essa implementao da
Excludo:

Minicurso Matlab.

60
estrutura switch-case no permite que mais de um grupo de comandos seja
executado.

Exemplo:
Este programa compara o valor de x digitado pelo usurio e executa o caso
correspondente. Note que neste exemplo o valor de x deve ser numrico.

fprintf('Digite 1 para operaao de soma:\n ');
fprintf('Digite 2 para operaao de subtraao: \n');
x=input('Que operaao voce deseja realizar? ');
switch (x)
case 1
disp('Soma');
x1=input('Qual o valor de x1 ');
x2=input('Qual o valor de x2 ');
y= x1 + x2;
fprintf('O resultado da soma e: %d \n', y);
case 2
disp('Subtraao')
x1=input('Qual o valor de x1 ');
x2=input('Qual o valor de x2 ');
y= x1 - x2;
fprintf('O resultado da subtraao e: %d \n', y);
otherwise
disp('invalido')
end

Agora utilizaremos o exemplo anterior, mas utilizando a estrutura switch com
uma varivel do tipo string.

fprintf('Que operaao voce deseja realizar: Soma ou Subtraao? \n ');
x=input('Digite sua escolha: ', 's');
switch (x)
case 'soma'
disp('Soma');
x1=input('Qual o valor de x1 ');
x2=input('Qual o valor de x2 ');
y= x1 + x2;
fprintf('O resultado da soma e: %d \n', y);
case 'subtraao'
disp('Subtraao')
x1=input('Qual o valor de x1 ');
x2=input('Qual o valor de x2 ');
y= x1 - x2;
fprintf('O resultado da subtraao e: %d \n', y);
otherwise
disp('invalido')
end

Minicurso Matlab.

61

Note que a funo input deve ser alterada (com o s)para que ela possa
entender a varivel digitada como sendo uma palavra.


COMANDO BREAK E CONTINUE

Duas declaraes adicionais podem ser utilizadas para controlar a operao dos
laos while e for: as declaraes break e continue. A declarao break encerra a
execuo de um lao e passa o controle para a prxima declarao logo aps o fim
do lao; a declarao continue termina a passagem corrente pelo lao e retorna o
controle para o incio do lao.


9. ANEXOS


Caixa de ferramentas de funes(FUNTOOL)

O Matlab tem uma caixa de ferramentas que faz diversas operaes como se fosse
uma "calculadora de funes". Para acion-la basta digitar o comando funtool.
Surgiro na tela, trs janelas com as seguintes caractersticas:
i) Na 1 figura aparecer o grfico da funo f(x) que for definida na janela 3.
ii) Na 2 figura aparecer o grfico da funo g(x) que for definida na janela 3.
iii) Na 3 figura aparecer primeiramente o espao para voc entrar (definir) com
a funo f(x). Em seguida tem-se o espao para voc entrar (definir) com a
funo g(x). Aps aparece o local onde voc definir o intervalo da abscissa
x(o intervalo default assumido de [-2*pi, 2*pi]. Em seguida vem o espao em
que voc pode entrar com uma constante a qualquer pela qual, sobre a
funo f(x) sero podero ser efetuadas vrias operaes matemticas.
Abaixo opes que voc aciona de maneira semelhante s teclas de uma
calculadora; segue a funo de cada tecla:
df/dx Derivada de f(x).
int f Integral de f(x).
simple Simplifica f(x).
num f Traa o grfico da funo do numerador de f(x)(se for funo
racional).
den f Traa o grfico da funo do denominador de f(x)(se for funo
racional).
1/f Traa o grfico de 1/f(x).
finv Plota o grfico da inversa de f(x).
f + a Traa o grfico de f(x) + a.
Formatados: Marcadores e
numerao
Excludo: <#>
Excludo: <#>
Excludo: <#>Tabela de comandos
Quebra de pgina
<#>ANEXOS

Minicurso Matlab.

62
f - a Traa o grfico de f(x) - a.
f * a Traa o grfico de f(x) * a.
f / a Traa o grfico de f(x) / a.
f ^ a Traa o grfico de f(x) ^ a.
f (x+ a) Traa o grfico de f(x + a).
f (x* a) Traa o grfico de f(x* a).
f + g Traa o grfico de f(x) + g(x).
f - g Traa o grfico de f(x) - g(x).
f * g Traa o grfico de f(x) * g(x).
f / g Traa o grfico de f(x) / g(x).
f (g) Traa o grfico da funo composta f(g(x)).
g = f Faz g(x) = f(x).
swap Troca as funes f(x) com g(x).
Insert Adiciona a funo f(x) atual lista de funes existente.
Cycle A cada clique, vai mostrando as funes da lista de funes.
Delete Apaga a funo ativa da lista de funes.
Reset Configura os valores de f, g, x, a e a lista de funes para seus
valores normais(default).
Help Mostra a ajuda de caixa de ferramenta de funes(funtool).
Demo Mostra a gerao da funo f(x) = sen(x) usando 9 passos.
Close Fecha esta caixa de ferramentas.

INTRODUO AO SIMULINK
Introduo
uma ferramenta para modelar, analisar e simular sistemas matemticos e
fsicos, incluindo os no lineares, de uma forma simples, pois representa os sistemas
na forma de diagramas de blocos, ao invs de equaes matemticas. O Simulink
usa as funes definidas no Matlab numa forma grfica e fcil de ser compreendida.
A seguir so descritos os fundamentos desta ferramenta.
Fundamentos do Simulink
Software de Simulao de Sistemas Dinmicos - SIMULINK
Simulink um programa para a simulao de sistemas dinmicos. Como uma
extenso do Matlab, o Simulink incorpora diferentes aspectos especficos de
sistemas dinmicos enquanto mantm a funcionalidade apresentada pelo Matlab.
O Simulink acrescenta uma nova classe de janelas. Nessas janelas, modelos
na forma de diagrama de blocos so montados e editados principalmente por
comandos feitos diretamente do mouse.

Minicurso Matlab.

63
Para ter acesso ao Simulink, digite
>> simulink
na janela de comando do Matlab, ou clique no boto na barra de ferramentas do
mesmo.
Em seguida, aberto um browser para a biblioteca do Simulink, onde so
encontrados os blocos necessrios para modelar um determinado sistema, via
diagrama de blocos. Com isso, o Simulink est pronto para ser usado.



Para criar um diagrama de blocos qualquer, primeiramente deve-se abrir um
novo modelo (File-New-Model). Uma nova janela aberta, na qual ser criado o
novo modelo, correspondente a um sistema fsico. A seguir, copiam-se os blocos
necessrios das bibliotecas do Simulink, arrastando-os para a janela criada. Aps
copiados, os blocos devem ser interligados com auxlio do mouse

Descrio dos Grupos Bsicos do Simulink
A sub-biblioteca Simulink contm as principais funes necessrias para
projeto e anlise de sistemas dinmicos. Estas funes esto divididas em grupos
distintos, que esto descritos a seguir.
Continuous: este grupo consiste de alguns blocos destinados criao de sistemas
contnuos, tais como o integrador, a funo de transferncia, etc.
Discrete: composto de blocos semelhantes aos do grupo anterior, visando
implementao de sistemas discretos, os quais sero estudados na disciplina
denominada Sistemas de Controle II.
Functions & Tables: Um bloco importante neste grupo f(u), o qual permite criar
expresses simples, tais como y=u
2
e y=sqrt(u) e expresses complexas, como y =
u
2
+ abs(u) - sqrt(u)+ log10(u). importante observar que este bloco permite a

Minicurso Matlab.

64
utilizao de uma nica varivel independente (entrada) e requer que ela seja
denotada pela letra u. Portanto, para obter a operao y=x
2
utiliza-se o bloco u^2.
Math: disponibiliza vrias funes matemticas teis para a criao de sistemas
lineares e no-lineares.
Nonlinear: conjunto de blocos representando no-linearidades tpicas: saturao,
zona morta, etc.
Signals & Systems: este grupo possui blocos que permitem importar e exportar
dados atravs de portas de entrada (Inport) e portas de sada (Outport), alm de
blocos para fazer multiplexao de dados (mux) e demultiplexao de dados
(demux). O bloco de multiplexao de dados pode ser usado, por exemplo, para
possibilitar a visualizao de mais de um sinal (curva) num mesmo grfico.
Sinks: aqui esto os blocos para apresentao dos resultados de forma grfica
como Scope (tipo osciloscpio), To Workspace, display (resultado numrico), entre
outros.
Sources: este grupo consiste na biblioteca de fontes de sinais tais como senide,
degrau (step), constante, gerador de sinais (onde podem ser gerados senides,
ondas quadradas, rudos, etc.), entre outros.
Descrio das Opes do Menu da Janela do Modelo
Conforme colocado anteriormente, na janela aberta para criao de um novo
modelo (diagrama de blocos) ou para utilizao de um modelo j existente, existe
um menu principal, cujas principais opes so descritas a seguir.
File:
_ New... Model: abre nova janela para montar um modelo;
_ New... Library: abre nova janela para montar uma biblioteca;
_ Open...: abre um arquivo j existente;
_ Close: fecha a janela de modelo;
_ Save, Save as...: salva modelo atual;
_ Preferences: permite ajustar diversas preferncias;
_ Print..., Printer Setup...: imprime ou define configuraes de impresso;
_ Exit MATLAB: sai do Matlab.

Edit:
_ Cut, Copy, Paste, Clear: recorta, copia, cola e apaga, respectivamente, os
objetos selecionados;
_ Select all: seleciona todos os objetos da janela ativa;
_ Copy Model: copia modelo para ser colado em outro modelo ou em um
editor de textos;
_ Find: acha objetos;
_ Create Subsystem: cria subsistema agrupando todos os blocos
selecionados;
_ Mask Subsystem: modifica o cone criando uma nova interface a partir do
subsistema;
_ Look Under Mask: permite ver o subsistema por trs da nova interface.

Minicurso Matlab.

65

View: ativa ou desativa barras de menus, browsers, etc.
O Browser do Modelo identifica blocos com a nova interface (mask), blocos com
parmetros OpenFcn definidos, e sistemas que contm subsistemas usando
smbolos antes do nome do bloco ou do sistema. Estes smbolos so:
+ : Significa que o sistema expansvel o que significa que tem sistemas
dentro dele.
: Quando o sistema j est expandido o smbolo menos () aparece.
Usando este browser, podem ser abertos subsistemas, parmetros de blocos, etc.
Simulation: permite iniciar, interromper e reiniciar as simulaes, alm de alterar os
parmetros da simulao
Format: altera cores, tamanho e estilo das fontes e de apresentao (orientao,
ttulo e sombreamento) do bloco selecionado. Permite ainda girar o bloco
selecionado de forma a facilitar as interligaes.

Modificando os Parmetros da Simulao
Antes de iniciar qualquer simulao, necessrio ajustar os seus parmetros.
Primeiramente, escolhe-se a opo Parameters no menu Simulation; ento, a
janela abaixo, denominada Simulation parameters: Untitled (ou o titulo do
modelo), aberta, permitindo o ajuste dos parmetros (Figura abaixo).

Figura Tela de parmetros.

A pasta Solver est dividida em trs partes: Simulation time, Solver options,
e Output options, que so explicadas nos prximos pargrafos.
Simulation time: Os valores default dos tempos inicial e final de simulao,
que so, respectivamente, 0.0 e 10.0 s, podem ser alterados nos campos Start
time e Stop time. importante ressaltar que as simulaes no so feitas em
tempo real, ou seja, o tempo de simulao no o tempo real de relgio.

Minicurso Matlab.

66
Solver Options: A simulao de modelos no Simulink envolve integrao
numrica de um conjunto de equaes diferenciais ordinrias (ODEs). A
qualidade e rapidez da soluo dependero do mtodo escolhido em Solver
Options. Pode-se escolher entre Variable-step solvers, que mudam o tamanho do
passo durante a simulao e possuem controle de erro, e Fixed-step solvers, que
mantm o passo constante e no possuem controle de erro.
Os algoritmos de passo varivel (Variable-step solvers) so descritos
brevemente a seguir:
1. ode45 baseado na frmula explcita de Runge-Kutta (4,5), o par
Dormand-Prince. um excelente mtodo numrico de soluo para
modelos contnuo e o default do Simulink.
2. ode23 baseado em um par explcito Runge-Kutta (2,3) de Bogacki e
Shampine.
3. ode113 resolve na forma varivel Adams-Bashforth-Moulton PECE.
4. ode15s resolve na forma varivel e baseado em diferenciao numrica
de frmulas (NDFs). Serve para problemas complicados onde ode45 no foi
eficiente.
5. ode23s baseado em uma frmula modificada de Rosenbrock de segunda
ordem. Pode resolver alguns tipos de problemas complicados onde ode15s
no eficiente.
6. ode23t baseado em uma frmula trapezoidal modificada.
7. ode23tb baseado em uma frmula trapezoidal mista.
8. discrete: O Simulink seleciona quando detecta um modelo que no tem
estados contnuos.

Para os algoritmos de passo fixo (Fixed-step solvers):
1. ode5 uma verso de passo fixo do ode 45, a frmula Dormand-Prince.
2. ode4 RK4, a frmula de quarta ordem de Runge-Kutta.
3. ode3 uma verso fixa do ode23, a frmula de Bogacki-Shampine.
4. ode 2 o mtodo de Heun, tambm conhecido como a frmula melhorada
de Euler.
5. ode 1 o mtodo de Euler.
6. discrete til para modelos que no utilizam estados e onde o controle de
erro no importante.

Ainda no item Solver Options, tm-se as seguintes opes:
Step Sizes: Consistem de passos mnimo e mximo para mtodos
numricos de passo varivel e no valor do passo para mtodos de passo
fixo. Em auto, o Matlab escolhe estes valores.
Error Tolerances: Tcnicas padro de controle de erro local so usadas
para monitorar o erro passo a passo.

Output Options: Permite controlar a sada, isto , quantos pontos calculados
pelo Simulink a simulao deve gerar.

A pasta Workspace I/O aparece ao ser selecionada a aba Workspace I/O.
Pode-se direcionar a sada ou o resultado da simulao e armazenar em variveis

Minicurso Matlab.

67
do Workspace (na janela de comando do Matlab) para que possam ser manipuladas
tambm no Matlab. Isto feito atravs do bloco To Workspace existente na
biblioteca Sinks do Simulink e definindo uma varivel para o Workspace, a qual
armazenar os resultados da simulao feita no Simulink. possvel, por exemplo,
traar grficos no Matlab usando o comando plot a partir dos resultados obtidos de
simulaes feitas no Simulink.

Exemplo
Considere o seguinte sistema da Figura.


Figura - Sistema massa mola.

A seguinte equao representa um sistema massa mola de segunda ordem da
figura. Onde x o deslocamento, m a massa, c o coeficiente de amortecimento e
k a constante de mola.


Para se construir um sistema utilizando o simulink necessrio verificar que h duas
foras sendo aplicada no sistema. Estas foras so o coeficiente de amortecimento e
a constante de mola. Pela equao se nota que h acelerao, velocidade de
deslocamento. Para se obter um comportamento do deslocamento ao longo do
tempo, quando submetido a um deslocamento inicial necessrio ento a fazer um
arranjo da equao. A equao a seguir mostra um outro arranjo da equao
considerando as seguintes variveis:

m = 5 Kg c = 1 k = 2 N/m



Considerar tambm que o deslocamento inicial de 1 m a uma velocidade inicial zero.

Minicurso Matlab.

68

Para acelerao chegar at deslocamento so necessrias duas integrais, desta
forma o sistema fica conforme a Figura abaixo.


Sistema em blocos.

Falta ainda a colocao de um scope para visualizar a sada .
















Minicurso Matlab.

69
Apostila desenvolvida por:


Felipe Cubas Schulz
Filipe Guolo Nazrio
Horcio Beckert Polli
Rafael Marc Le Boudec















Agradecimentos:
Departamento de Engenharia Eltrica



Pgina 4: [1] Excludo Usurio 15/ 11/ 2005 23:52:00
1. INTRODUO AO MATLAB 4
O Ambiente MATLAB 4
2. VARIVEIS 7
2.1. ENTRANDO COM VALORES 8
2.2. VARIVEIS PERMANENTES 9
2.3. EXPRESSES E COMANDOS BSICOS 10
3. OPERAES RELACIONAIS E LGICAS 12
3 1. OPERADORES RELACIONAIS 13
3.2. OPERADORES LGICOS 16
3.3. PRECEDNCIA DE OPERADORES 17
3.4. FUNES LGICAS E RELACIONAIS 18
3.5. NaNs E MATRIZES VAZIAS 20
4. Funes Matemticas 23
5. MATRIZES 26
5.1. Definindo Matrizes no MATLAB 27
5.2. Gerando Sub-Matrizes com o Operador Dois Pontos ( :
). 28
5.3. Gerando Vetores com o Operador Dois Pontos ( : ) 28
5.4. Operaes com Matrizes 29
Somatrio de Produtos 30
Multiplicao de Matrizes 30
Diviso 31
Exponenciao 31
5.5. Matriz Inversa 31
6. GRFICOS 32
6.1. Grficos Polares 34
6.2. Grficos de barras 35
6.3. Grficos 3D 35
6.4. Manipulao de Grficos 36
6. POLINOMIOS 37
6.1. Definindo Polinmios no Matlab (comando polyval): 37
6.2. Multiplicao 38
6.3. Diviso 38
6.4. Razes de polinmios 38
7.1. Estruturas de repeties: Comandos for e while: 39
7.2. Comando break 40
7.3. Comandos if,else e elseif: 40
8. ANEXOS 42
8.1. TOOLBOX DE MATEMTICA SIMBLICA 42
8.2. AJUSTE DE CURVAS E INTERPOLAO 57
AJUSTE DE CURVAS 57
INTERPOLAO UNIDIMENSIONAL 60
INTERPOLAO BIDIMENSIONAL 63
8.3. KHEPERA 67

Pgina 4: [2] Excludo Filipe 15/ 11/ 2005 01:54:00
NDICE
1 INTRODUO

2 VARIVEIS 2
1.1. ENTRANDO COM VALORES 3
1.2. VARIVEIS PERMANENTES 3
1.3. EXPRESSES E COMANDOS BSICOS 4
2. OPERAES RELACIONAIS E LGICAS 8
2.1 OPERADORES RELACIONAIS 8
2.2 OPERADORES LGICOS 11
2.3 PRECEDNCIA DE OPERADORES 12
2.4 FUNES LGICAS E RELACIONAIS 13
Descrio 13
Descrio 14
2.5 NaNs E MATRIZES VAZIAS 15
3. Funes Matemticas 19
4. MATRIZES 21
4.1. Definindo Matrizes no MATLAB 21
4.2. Gerando Sub-Matrizes com o Operador Dois Pontos ( :
). 22
4.3. Gerando Vetores com o Operador Dois Pontos ( : ) 23
4.4. Operaes com Matrizes 24
Somatrio de Produtos 24
Multiplicao de Matrizes 24
Diviso 25
Exponenciao 25
4.5. Matriz Inversa 25
5. GRFICOS 26
5.1. Grficos Polares 28
5.2. Grficos de barras 29
5.3. Grficos 3D 29
5.4. Manipulao de Grficos 31
6. POLINOMIOS 33
6.1. Definindo Polinmios no Matlab (comando polyval): 33
6.2. Multiplicao 33
6.3. Razes de polinmios 33
7. Programao bsica em Matlab 35
7.1. Estruturas de repeties: Comandos for e while: 35
7.2. Comando break 35
7.3. Comandos if,else e elseif: 35
7.2. Tabela de comandos 36
8. ANEXOS 37
8.1. TOOLBOX DE MATEMTICA SIMBLICA 37
8.2. AJUSTE DE CURVAS E INTERPOLAO 54
8.3 AJUSTE DE CURVAS 54
8.4 INTERPOLAO UNIDIMENSIONAL 57
8.5 INTERPOLAO BIDIMENSIONAL 60
8.6. KHEPERA 64

Você também pode gostar