Você está na página 1de 71

Minicurso Bsico Software

Matlab

Minicurso Matlab.

NDICE
1.

INTRODUO AO MATLAB .................................................................................... 4


O AMBIENTE MATLAB....................................................................................................... 5

2.

VARIVEIS................................................................................................................. 14
2.1.
2.2.

3.

ENTRANDO COM VALORES.......................................................................... 16


EXPRESSES E COMANDOS BSICOS .................................................... 17

OPERAES RELACIONAIS E LGICAS......................................................... 23


3 1.
3.2.
3.3.
3.4.
3.5.

OPERADORES RELACIONAIS ...................................................................... 23


OPERADORES LGICOS............................................................................... 26
PRECEDNCIA DE OPERADORES.............................................................. 27
FUNES LGICAS E RELACIONAIS......................................................... 28
NANS E MATRIZES VAZIAS ............................................................................ 29

4.

FUNES MATEMTICAS .................................................................................... 33

5.

MATRIZES.................................................................................................................. 36
5.1.
5.2.
5.3.
5.4.
5.5.

6.

GRFICOS ................................................................................................................. 42
6.1.
6.2.
6.3.
6.4.

7.

DEFININDO POLINMIOS NO MATLAB (COMANDO POLYVAL): .............................. 53


SOMA E SUBTRAO ............................................................................................ 53
MULTIPLICAO .................................................................................................... 53
DIVISO ................................................................................................................. 54
RAZES DE POLINMIOS ........................................................................................ 54

PROGRAMAO BSICA EM MATLAB ............................................................ 54


8.1.

9.

GRFICOS POLARES............................................................................................. 47
GRFICOS DE BARRAS .......................................................................................... 47
GRFICOS 3D ....................................................................................................... 48
MANIPULAO DE GRFICOS ............................................................................... 49

POLINMIOS............................................................................................................. 52
7.1.
7.2
7.3.
7.4.
7.5.

8.

DEFININDO MATRIZES NO MATLAB .................................................................... 36


GERANDO SUB-MATRIZES COM O OPERADOR DOIS PONTOS ( : )..................... 37
GERANDO VETORES COM O OPERADOR DOIS PONTOS ( : ) .............................. 38
OPERAES COM MATRIZES................................................................................ 40
MATRIZ INVERSA ................................................................................................... 42

ESTRUTURAS DE REPETIES.............................................................................. 55

ANEXOS ..................................................................................................................... 61

Minicurso Matlab.

1. INTRODUO AO MATLAB

Formatados: Marcadores e
numerao

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 .

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
... [1]

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

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
... [2]

Minicurso Matlab.

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.

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.

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.

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.

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.

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);
10

Minicurso Matlab.

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
11

Minicurso Matlab.

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.

12

Minicurso Matlab.

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
NAMELENGTHMAX
REALMAX
MAX

Maximum floating point integer.


Maximum length of a MATLAB name.
Largest positive floating point number.
Largest component.

13

Minicurso Matlab.

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
As variveis distinguem entre letras

Comentrios e exemplos
Custo, custo, CuSto e CUSTO so

14

Minicurso Matlab.

maisculas e minsculas.
As variveis podem conter at 31
caracteres. Os caracteres alm do
31 so ignorados
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.

variveis diferentes no MATLAB


Quetalestenomedevariavel
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 palavraschave, 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 MATLAB tambm tem diversas variveis especiais:
o

Variveis Especiais
ans
beep
pi

eps
inf
NaN (ou) nan
I (ou) j
nargin
nargout
realmax
realmin
bitmax
varargin
varargout
computer
version

Descrio
Varivel padro usada para resultados
Varivel que faz o computador emitir um bip
Numero pi. (3,1415926535979 - Razo entre o permetro
da circunferncia e o seu dimetro)
Preciso da maquina
Infinito
Not a number (indeterminao)
Unidade imaginria
Numero de argumentos de entrada de uma funo
Numero de argumentos de sada de uma funo
Maior nmero real positivo utilizvel
Menor nmero real positivo utilizvel
Maior nmero inteiro positivo utilizvel
Nmero varivel de argumentos de entrada de uma
funo
Nmero varivel de argumentos de sada de uma funo
Tipo de computador
Verso do Matlab

15

Minicurso Matlab.

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
;
%
,
...
:
Ctrl-C
clc

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)
Pressione as teclas Ctrl-C para interromper a qualquer
momento a execuo do MATLAB
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:

16

Minicurso Matlab.

Basta digitar:
>> A=[1 2 3; 4 5 6; 7 8 9]
Que a sada ser:

A=
1
4
7

2
5
8

3
6
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.
Formatados: Marcadores e
numerao

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
9,63973
3+2i

-99
1,602E-20
-3,1459i

,0001
6,025E23
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

17

Minicurso Matlab.

/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 Descrio


de Trabalho
Who
exibe o nome das variveis usadas.
Whos
What
disp (n)
clear n
Clear
[x, y] = ginput(n)

input ('...')

Pause
pause(n)
echo on

exibe na tela os nomes, dimenso, nmero de bytes e


tipos das variveis que esto sendo usadas no
momento
exibe arquivos de extenso .m e .mat do diretrio
corrente
exibe o contedo da varivel n sem mostrar seu
nome
apaga a varivel n.
apaga todas as variveis.
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
usado para entrada de dados
exemplo: n = input ('digite um nmero
')
O nmero que voc digitar ser assumido pela
varivel n.
serve para pausar um comando de exibio do
Matlab.
pausa por n segundos
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
18

Minicurso Matlab.

Break

comando echo off


termina a execuo de um loop while ou for

Comandos
Descrio
relacionados a arquivos
e dados
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:

19

Minicurso Matlab.

Formatos de exibio Descrio (supondo a= 1/3)


de nmeros
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.
20

Minicurso Matlab.

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 Descrio
de Caracteres
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,

21

Minicurso Matlab.

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
Formatao
%d
%e
%f
%g
\n

de Descrio
Exibe valor como inteiro
Exibe valor em formato exponencial
Exibe valor em formato de ponto flutuante
Exibe valor em formato de ponto flutuante ou
exponencial o que for mais curto
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.

22

Minicurso Matlab.

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

9
23

Minicurso Matlab.

B=
8

>> vf = A > 4
vf =
0

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

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 =

24

Minicurso Matlab.

-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
Columns 8 through 9
1.0000 0.0000

5.0000

4.0000

3.0000

2.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
>> sin(x)./x
Warning: Divide by zero.
ans =
0.8415 0.9276 0.9816

NaN

0.3333

0.9816

0.6667

0.9276

1.0000

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.

25

Minicurso Matlab.

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

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


>> vf = (A > 2) & (A < 6)
vf =
0 0 1 1 1 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')

26

Minicurso Matlab.

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 (&)
Menor
OU lgico ()

27

Minicurso Matlab.

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.

Formatados: Marcadores e
numerao

O Matlab tambm possui varias funes que verificam a existncia de


condies ou valores especficos e retornam resultados lgicos:
Funo
Ispc

Descrio
Verdadeiro se for a verso do Matlab para PC (Windons).

Formatados: Marcadores e
numerao

28

Minicurso Matlab.

isstudent
isunix
ismember

Verdadeiro se for a verso do Matlab para estudantes.


Verdadeiro se for a verso do Matlab para p sistema UNIX
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

29

Minicurso Matlab.

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


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

NaN
NaN
NaN

Inf

NaN

0
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

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 =
30

Minicurso Matlab.

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=

31

Minicurso Matlab.

[]
>> 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 nonulos. 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=

32

Minicurso Matlab.

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
acos(x)
acosh(x)
acot(x)
acoth(x)
acsc(x)
acsch(x)
asec(x)
asech(x)
asin(x)
asinh(x)
atan(x)
atan2(x,y)
atanh(x)

Descrio
Arco co-seno
Arco co-seno hiperblico
Arco cotangente
Arco cotangente hiperblico
Arco cossecante
Arco cossecante hiperblico
Arco secante
Arco secante hiperblico
Arco seno
Arco seno hiperblico
Arco tangente
Arco tangente do quarto quadrante
Arco tangente hiperblico

33

Minicurso Matlab.

cos(x)
cosh(x)
cot(x)
coth(x)
csc(x)
csch(x)
sec(x)
sech(x)
sin(x)
sinh(x)
tan(x)
tanh(x)

Co-seno
Co-seno hiperblico
Cotangente
Cotangente hiperblica
Cossecante
Cossecante hiperblico
Secante
Secante hiperblico
Seno
Seno hiperblico
Tangente
Tangente hiperblica

Funo Exponencial
^
exp(x)
log(x)
log10(x)
log2(x)
sqrt(x)

Descrio
Potncia
Exponencial: ex
Logaritmo natural
Logaritmo na base 10
Logaritmo na base 2
Raiz quadrada

Funo complexa
abs(x)
angle(x)
conj(x)
imag(x)
real(x)
unwrap(x)

Descrio
Valor absoluto ou mdulo de um nmero complexo
ngulo de um nmero complexo
Conjugado complexo
Parte imaginria de um nmero complexo
Parte real de um nmero complexo
ngulo de fase reduzido

Funes de
arredondamento e resto
ceil(x)
fix(x)
floor(x)
mod(x)
rem(x)
round(x)
sign(x)

Descrio

Funo de
transformaes de
coordenadas

Arredondamento na direo de mais infinito


Arredondamento na direo de zero
Arredondamento na direo de menos infinito
Resto com sinal
Resto da diviso de x por y
Arredondamento para o nmero inteiro mais prximo
Funo sinal: informa o sinal do argumento
Descrio

34

Minicurso Matlab.

cart2sph(x)
cartpol(x)
pol2cart(x)
sph2cart(x)

Cartesiana para esfrica


Cartesiana para cilndrica ou polar
Cilndrica ou polar para cartesiana
Esfrica para cartesiana
Excludo:

Funo terica
numrica
factor(x)
primes(x)
gcd(x)
lcm(x)
rat(x)
rats(x)
perms(x)
nchoosek(x)

Descrio
Decomposio em fatores primos
Lista de nmeros primos
Mximo divisor comum
Mnimo mltiplo comum
Aproximao racional
Sada de dados no formato racional
Todas as combinaes possveis
Todas as combinaes de N elementos tomadas k a
K
Excludo:

Funes especializadas
Airy(x)
Besselj(x)
bessely(x)
besselh(x)
besseli(x)
besselk(x)
beta(x)
betainc(x)
betaln(x)
ellipj(x)
ellipke(x)
erf(x)
erfc(x)
erfcx(x)
erfinv(x)
expint(x)
gamma(x)
gammainc(x)
gammaln(x)
legendre(x)
cross(x)
dot(x)

Descrio
Funo de Airy
Funo de Bessel do primeiro tipo
Funo de Bessel do segundo tipo
Funo de Bessel do terceiro tipo
Funo de Bessel do primeiro tipo modificada
Funo de Bessel do segundo tipo modificada
Funo beta
Funo beta incompleta
Logaritmo da funo beta
Funo elptica de Jacobi
Integral elptica completa
Funo erro (error)
Funo erro complementar
Funo erro complementar escalada
Inversa da funo erro
Funo erro exponencial
Funo gama
Funo gama incompleta
Logaritmo da funo gama
Funo de Legendre associada
Produto vetorial
Produto inteiro entre dois vetores

35

Minicurso Matlab.

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:

8 9 10
A = 5 1 0
8 7 2

B = [8 7 1]

9
8
C=
1

4

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 = [ a11 a12 a13 ... a1n ; a21 a22 a23 ...a2n];
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.

36

Minicurso Matlab.

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 5 2 6 4 1 9 7 4 2 4 2 5 5 8 2 2 2 1 0 9 ]
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
98
14
85
86
17
23
79
10
11

99
80
81
87
93
24
15
16
12
18

11
17
88
19
25
76
82
13
94
10

74
55
56
62
68

18
14
20
21
12
83
89
95
96
77

51
57
63
69
75

15
16
22
13
19
90
91
97
78
84

58
64
70
71
52

67
73
54
60
61
42
48
29
35
36

40
41
47
28
34

74
55
56
62
68
49
30
31
37
43

51
57
63
69
75
26
32
38
44
50

58
64
70
71
52
33
39
45
46
27

40
41
47
28
34
65
66
72
53
59

37

Minicurso Matlab.

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 =
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

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.
Resposta:
A
= [ 30 39 48 1 10 19 28
38 47 7 9 18 27 29
d=A(1:2:7,5:7)
46 6
8 17 26 35 37
d=
5 14 16 25 34 36 45
[ 10 19 28
13 15 24 33 42 44 4
26 35 37
21 23 32 41 43 3 12
42 44 4
22 31 40 49 2 11 20]
2 11 20]

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
3
7

2
8
6

38

Minicurso Matlab.

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];

39

Minicurso Matlab.

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:

Excludo:

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

Excludo:

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

Formatados: Marcadores e
numerao

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');
Formatados: Marcadores e
numerao

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.

40

Minicurso Matlab.

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

1 2 5
B=

8 7 3 2x3 ;

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

C=B.A
C=

, mas no C=A.B .

58
115

46
93

25
86

Formatados: Marcadores e
numerao

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.

Excludo:
Excludo:
Excludo:
Excludo:
Excludo: N
Excludo:

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):
Com isso temos a matriz
das incgnitas:
A = [119
865
437]

R=[ 1
9
8]

Comando:

ans =

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

Exponenciao

20.5556
-26.5556
0.7778

Formatados: Marcadores e
numerao

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,
9 1 2
B = 8 4 5
1 6 3

ento:

B^2 =

91 25 29
109 54 51

60 43 41

41

Excludo: SE

Minicurso Matlab.

Obs: B^2 B.^2

B.^2=
ans =
81
64
1

1
16
36

4
25
9

Excludo:

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
3
4

1
5
9

6
7
2]

Excludo:
Excludo:

inv(A)= 0.1472 -0.1444 0.0639


-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028

Resumo das operaes para matrizes de mesma ordem:


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
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:
A= [ 8
3
4

1
5
9

6
7
2]

a = [8
3
4

1
5
9

6
7
2]

det(A) = -360

W=reshape(a, [1 9 ] )
W = [8

6.

2]

GRFICOS

Excludo:

42

Quebra de pgina

Minicurso Matlab.

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)

43

Minicurso Matlab.

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
Solid
Dashed
Dotted
Dashdot
Point

Indicador

-:
-.
.

Tipo de Ponto
Plus
Star
Circle
x-mark

Indicador

+
*

44

Minicurso Matlab.

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
Vermelho
Verde
Azul
Branco

Indicador
r
g
b
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).

45

Minicurso Matlab.

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:

46

Minicurso Matlab.

Formatados: Marcadores e
numerao

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);

Formatados: Marcadores e
numerao

6.2. Grficos de barras

47

Minicurso Matlab.

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)

1
0.95
0.9
0.85
0.8
0.75
0.7
12
10
8
6
4
2
0

10

12

48

Formatados: Marcadores e
numerao

Minicurso Matlab.

Formatados: Marcadores e
numerao

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)
1

plot(x,z)

0.8
0.6
0.4
0.2
plot(x,y)

0
-0.2
-0.4
-0.6
-0.8
-1

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)

49

Excludo:
Excludo:
Excludo:

Minicurso Matlab.

Excludo:

0.95

mesh(v)

0.9
0.85
0.8
0.75
0.7
15

mesh(z)
15

10
10

5
0

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

50

Minicurso Matlab.

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)

51

Minicurso Matlab.

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


>> surfc(x,y,z)
que exibir o grfico da seguinte forma:

7. POLINMIOS

52

Minicurso Matlab.

Formatados: Marcadores e
numerao

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.

Excludo:
Excludo:

Exemplo
a = [3,-0.5,0,1,-5.2];
f = polyval(a,x);
f(x) = 3x4 0.5x3+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.

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:

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.

Excludo: -se
Excludo:

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:
g(x)=[1 0 -3 -1 2.4]
g(x) = x4 3x2 x + 2.4
g(x) + h(x) = ?
h(x)=[0 4 -2 5 -16]
h(x) = 4x3 - 2x2 + 5x - 16
ans = 1.0000

4.0000 -5.0000

4.0000 -13.6000
Formatados: Marcadores e
numerao

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)

Excludo:

Excludo:

53

Minicurso Matlab.

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

Excludo: <#> Diviso

[q,r] = deconv(g,h)
Esse resultado nos diz que g dividido por h nos d o polinmio de quociente q e
resto r.

Excludo:

Formatados: Marcadores e
numerao

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:

Excludo:

Excludo:

f(x)=x3-2x2-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:

-3

-1

Excludo:
Excludo: o

Excludo:
Excludo:
Excludo:

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

a = 1

Excludo:

Excludo:
Excludo:

<#>

Excludo:

Quebra de pgina

Excludo:

8. Programao bsica em Matlab

Excludo: 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.

54

Excludo: Programao bsica em


Matlab

Formatados: Marcadores e
numerao

Minicurso Matlab.

8.1.

Formatados: Marcadores e
numerao

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

55

Minicurso Matlab.

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

56

Minicurso Matlab.

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);

57

Minicurso Matlab.

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-elseend. 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

58

Minicurso Matlab.

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

59

Excludo:

Minicurso Matlab.

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

60

Minicurso Matlab.

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

Formatados: Marcadores e
numerao

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

Excludo: <#>
Excludo: <#>
Excludo: <#>Tabela de comandos
Quebra de pgina

Caixa de ferramentas de funes(FUNTOOL)

<#>ANEXOS

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
racional).

Traa o grfico da funo do numerador de f(x)(se for funo

den f
racional).

Traa o grfico da funo do denominador de f(x)(se for funo

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.

61

Minicurso Matlab.

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.

62

Minicurso Matlab.

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
2

expresses simples, tais como y=u e y=sqrt(u) e expresses complexas, como y =


2

u + abs(u) - sqrt(u)+ log10(u). importante observar que este bloco permite a

63

Minicurso Matlab.

utilizao de uma nica varivel independente (entrada) e requer que ela seja
2

denotada pela letra u. Portanto, para obter a operao y=x 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.

64

Minicurso Matlab.

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.

65

Minicurso Matlab.

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

66

Minicurso Matlab.

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.

67

Minicurso Matlab.

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 .

68

Minicurso Matlab.

Apostila desenvolvida por:


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

Agradecimentos:
Departamento de Engenharia Eltrica

69

Pgina 4: [1] Excludo

1.

INTRODUO AO MATLAB

Usurio

15/11/2005 23:52:00

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 ( : )
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):
6.2.
Multiplicao 38
6.3.
Diviso
38
6.4.
Razes de polinmios
38
7.1.
Estruturas de repeties: Comandos for e while:
7.2.
Comando break 40
7.3.
Comandos if,else e elseif: 40
8. ANEXOS 42
8.1.
TOOLBOX DE MATEMTICA SIMBLICA 42

(:
28

37

39

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. MATRIZES21
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 CURVAS54
8.4
INTERPOLAO UNIDIMENSIONAL 57
8.5
INTERPOLAO BIDIMENSIONAL 60
8.6.
KHEPERA 64

Você também pode gostar