Buscar

MatLab PARA INICIANTES - **FÁCIL DE ENTENDER**

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 INTRODUÇÃO AO MATLAB 
 
30 e 31 de Maio de 2006. 
 
FEIS-UNESP 
 
Profa. Dra. Erica Regina Marani Daruichi Machado 
Guilherme Borges Moreira 
 
 
 
 
 
 
 
 
 2
 
1.INTRODUÇÃO 
 
O MATALB é um ambiente computacional e também uma linguagem de programação, sendo 
um software amplamente difundido na área acadêmica. Estudantes de várias universidades do mundo 
têm utilizado o MATLAB para obter respostas aos seus problemas e principalmente para entender 
como obtê-las. 
 
 Devido à diversidade de aplicações científicas, de engenharia, computação numérica, de análise 
e visualização de dados e outras, o MATLAB se tornou o ambiente de computação técnicas de grande 
versatilidade. 
 
 Exemplos de aplicação do MATLAB: Estudante de física analisando e visualizando dados de seus 
experimentos com campos magnéticos; Controle de sistemas; Processo de codificação e compressão 
para TV digital; Modelagem de sistemas; Transformadas; Operações elementares; Estatística; Redes 
Neurais; Lógica Fuzzy... 
 
O ambiente MATLAB permite que o usuário utilize suas funções sem a necessidade de uma 
programação elaborada. Entretanto, como linguagem de programação permite a construção de 
ferramentas e funções pelo usuário (são os arquivos *.M). 
 
As TOOLBOXES são coleções de funções úteis relacionadas a um assunto. Essas 
TOOLBOXOES são elaboradas por pesquisadores de todo o mundo, em vários campos tais como 
controle, processamento de sinais, identificação de sistemas,... Neste mini-curso serão apresentados 
alguns exemplos de TOOLBOXES. 
 
O objetivo do curso é introduzir usuário no ambiente Matlab e apresentar suas ferramentas 
básicas. Uma vez conhecido o ambiente, o usuário pode procurar os recursos necessários dentro do 
próprio Matlab, através dos menus Help. Será apresentado o ambiente do Simulink e ilustradas 
algumas simulações de instruções básicas. 
 
Por sua simplicidade e clareza, os tópicos, texto e exemplos deste curso foram extraídos do livro 
MATLAB Versão Estudante 5.3, Guia do Usuário. Este livro contém instruções básicas do software, 
que é o objeto deste curso. 
 
 
 
 
 
2.OPERAÇÕES BÁSICAS - MATEMÁTICA ELEMENTAR 
 
 
 
 
 
Operação Símbolo Exemplo 
Adição, a+b + 5+3 
Subtração a-b - 23-12 
Multiplicação a*b * 3.14*0.85
Divisão a÷ b / ou \ 56/8=8\56
Potenciação ab ^ 5^2 
» 2*3+(5*48)-(4*23) 
ans = 
 154 
» 56\8 
ans = 0.1429 
» 8/56 
ans = 
 0.1429 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 3
 
3.VARIÁVEIS 
3.1.DECLARAÇÃO DE VARIÁVEIS 
Assim como qualquer outra linguagem de programação, o MATLAB tem regras a respeito dos 
nomes das variáveis. 
os nomes das variáveis 
devem ser palavras únicas, 
sem inclusão de espaços; 
N=1; 
N1=1; 
N_a=1
os nomes das variáveis devem começar 
com uma letra, seguida de um número 
qualquer de letras, algarismos ou 
sublinhas. 
A12345=10 
Rua_2=12 
123_rua χ 
as variáveis são sensíveis a 
maiúsculas e minúsculas; 
A=3; 
a=5 ; 
B=A+a
caracteres de pontuação não são 
permitidos. 
A!=3 
A1&3=2χ 
 
podem conter até 19 
caracteres 
abcdefg
j=1 
não é necessário declarar a variável A=3.32+i 
se uma instrução for muito 
longa, coloque (...) 
seguidas de <ENTER>. 
N=1+x
2... 
+2*x+3
 
 
 
3.2.VARIÁVEIS ESPECIAIS 
O MATLAB tem diversas variáveis especiais 
Ans Nome de uma variável padrão usada para 
resultados 
NAN Não-número 
E: 0/0 
Pi Razão entre o perímetro da circunferência e 
seu diâmetro 
i e j 1ji −== 
eps Menor número que, somado a 1, cria um 
número de ponto flutuante maior que 1 no 
computador. 
Realmin Menor número real positivo 
utilizável 
Inf Infinito, 1/0. Realmax Maior número real positivo 
utilizável 
 
3.3.REDEFINIÇÃO DE VARIÁVEIS 
3.3.1. O COMANDO DE ATRIBUIÇÃO É AUTODESTRUTIVO. 
Ao inserir um novo valor na variável o valor antigo é destruído. O MATLAB faz os cálculos 
utilizando os valores conhecidos no momento em que o cálculo foi solicitado 
 
 
 
 
 
 
3.3.2. EXCLUSÃO MANUAL 
As variáveis do espaço de trabalho do MATLAB podem ser excluídas incondicionalmente 
usando-se o comando clear. 
» a=3.21+i 
 a =3.2100 + 1.0000i 
 
» b=2 
 b = 2 
» a=3 
 a = 3 
 
» c=a+b 
 c =5 
»a=3.21+i 
a = 3.2100 + 1.0000i 
 
» b=2 
b = 2 
» clear a 
» c=a+b 
??? Undefined function or variable 'a'. 
 
 
 
 
 
 
 
 4
 
 
3.3.3. LISTA DE VARIÁVEIS 
Para listar todas as variáveis utilizadas na » who 
Your variables are: 
b
área de trabalho digite o comando who. 
 
 
 
4.AJUDA ON-LINE 
 
4.1.HELP 
 
Utilizado no caso em que não se sabe o nome do tópico a respeito do qual se necessita de 
informações. Digite help e a tela descreverá categorias sobre as quais você pode obter ajuda. 
 
 
4.2.HELP < TÓPICO> 
Utilizado no caso em que se sabe o nome o tópico a respeito do qual se necessita de informações 
 
 
 
 
 
 
 
» help sqrt 
 SQRT Square root. 
 SQRT(X) is the square root of the elements of X. Complex results are produced if X is not positive
 See also SQRTM. 
 Overloaded methods 
 help sym/sqrt.m 
 
 
 
4.3. COMANDO LOOKFOR 
 
» lookfor complex 
 CONJ Complex conjugate. 
 CPLXPAIR Sort numbers into complex conjugate pairs 
 IMAG Complex imaginary part. 
 REAL Complex real part. 
CDF2RDF Complex diagonal form to real block 
diagonal form. 
RSF2CSF Real block diagonal form to complex 
diagonal form. 
 
 
 
 
 
 
 
 
 
 Utilizado quando não tiver certeza da 
existência e da grafia exata de um tópico. 
 Este comando fornece ajuda fazendo uma 
busca em toda primeira linha dos tópicos de 
ajuda e retornando aqueles que contêm a 
palavra-chave que você especificou. A palavra 
chave não precisa ser um comando MATLAB. 
 
 
4.4.HELP DA BARRA DE MENU 
 
Na barra de menus do MATLAB selecione o menu Help e verifique as opções. 
 
 
 
 
 
 
 
 
 
 
 
 
 5
 
5.CARACTERÍSTICAS CIENTÍFICAS 
O MATLAB oferece diversas funções importantes nas ciências em geral. A tabela a seguir 
apresenta uma lista parcial de funções básicas suportadas por MATLAB. 
 
abs(x) valor absoluto ou módulo de um no acos(x) arco cosseno 
acosh(x) arco cosseno hiperbólico angle(x) ângulo de um no complexo 
asin(x) arco seno asinh(x) arco seno hiperbólico 
atan(x) arco tangente atan2(x,y) arco tangente em quatro quadrantes 
ceil(x) arredondar para mais infinito conj(x) conjugado complexo 
cos(x) cosseno cosh(x) cosseno hiperbólico 
exp(x) exponencial fix(x) arredondar par zero 
floor(x) arredondar para menos infinito imag(x) parte imaginária de um no complexo 
log10 logaritmo na base 10 log(x) logaritmo natural 
real(x) parte real de um no complexo sqrt(x) raiz quadrada 
rem(x,y) resto da divisão de x por y round(x) arredondar para o próximo no inteiro 
sing(x) retorna o sinal do argumento sin(x) seno 
sinh(x) seno hiperbólico tanh(x) tangente hiperbólica 
tan(x) Tangente 
 
5.1.HELP DAS FUNÇÕES 
Para conhecer saber mais sobre as funções consulte o menu Help elfun. 
 
6.MANIPULAÇÃO DE DADOS 
6.1.FORMATOS E VISUALIZAÇÃO DE DADOS – FORMATOS NUMÉRICOS 
format short 34.5667 Apresentação padrão 
format long 34.56666666666666 16 dígitos 
format short e 3.4567e+001 5 dígitos mais expoente 
format long e 3.456666666666666e+001 16 dígitos mais expoente 
format hex 4041488888888888 hexadecimal 
format bank 34.57 duas casas decimais 
format rat 1037/30 aproximação racional 
 O Matlab não altera a 
representação interna de um 
número quando optamos por 
diferentes formatos, somente a 
visualização é alterada. 
 
6.2.OUTRAS CARACTERÍSTICAS BÁSICAS• A vírgula indica ao MATLAB para mostrar o resultado; o ponto-e-vírgula suprime a visualização; 
• A execução do MATLAB pode ser interrompida a qualquer momento pressionando CTRL-C; 
• O comando quit termina a execução do MATLAB; 
• Todo texto depois do sinal de porcentagem (%) é considerado um comentário; 
• Pode-se colocar mais de um comando em uma linha, separando-os por vírgula ou ponto-e-vírgula. 
• O comando clc apaga os dados da tela, mas não a memória (clear). 
 
6.3.ENTRADA DE DADOS – INPUT 
A função input permite a entrada de dados via teclado. Após esta instrução o MATLAB 
interrompe a execução do programa e espera que o usuário digite algum valor, que pode ser numérico 
ou literal (este valor deve ser inserido entre plicas ‘ ’) . 
 
 
» a=input(' ') 
 'curso' 
 a =curso 
» a=input(' ') 
 15 
 a =15 
 
 
 
6.4.APRESENTAÇÃO DE TEXTOS - DISP 
Para apresentar textos na tela utiliza-se o comando disp. » disp('Curso de MATLAB') 
Curso de MATLAB 
 
 6
 
 
6.5.ARMAZENAMENTO DE DADOS - SAVE X LOAD 
Este comando salva todas as variáveis em um arquivo em disco chamado matlab.mat. Para 
recuperar as variáveis em uma outra seção do MATLAB, pode-se executar o comando load para 
restaurar o espaço de trabalho com as variáveis de matlab.mat. Podem ser utilizados os comandos 
save e load em arquivos com outros nomes, ou salvar somente algumas variáveis. 
 
 
 
 
» save dados a b 
» clear 
» load dados 
Resultado semelhante pode ser obtido utilizando o item de menu 
Save Workspace as ... e Load Workspace ...do menu FILE. 
 
 
7. GERENCIAMENTO DE ARQUIVOS 
O MATLAB apresenta diversos comandos de gerenciamento de arquivos que lhe permitem listar 
nomes de arquivos, visualizar e excluir arquivos M, mostrar e mudar o diretório atual ou fichário. 
 
what Retorna uma listagem de todos os arquivos M do diretório 
dir, ls Lista todos os arquivos do diretório 
type nome Mostra o arquivo M nome.m na janela de comandos 
delete nome Exclui o arquivo M nome.m 
cd, chdir caminho Muda para o diretório dado por caminho 
cd, pwd Mostra o diretório de trabalho atual 
which nome Mostra o caminho para o para o diretório nome 
 
 
 
 
 
8.VETORES E MATRIZES 
Para criar um vetor ou uma matriz no MATLAB, coloca-se um colchete esquerdo, introduzem-se 
os valores desejados separados por espaços ou por vírgulas e em seguida fecha-se o colchete direito. 
Separando os elementos por espaços ou vírgulas especificam-se elementos de colunas diferentes; 
separando os elementos com pontos-e-vírgulas especificam-se elementos de linhas diferentes. 
 
 
8.1.VETORES 
8.1.1. VETOR LINHA X VETOR COLUNA 
 Vetor linha Vetor coluna 
 
 
 
 
» x=[3,2,1,5,6] 
x = 3 2 1 5 6 
» x=[3 2 1 5 6] 
x = 3 2 1 5 6 7 
» x=[3 2 1]' 
x =3 
 2 
 1 
» x=[3; 2; 1] 
x =3 
 2 
 1 
 
 
8.1.2. ESPECIFICAÇÃO DE VETOR POR DOIS PONTOS 
 
 
 
 
 
 
 
Sintaxe: (x0:inc:xf) Î cria um vetor que 
começa em x0, incrementa de inc e termina em 
xf. 
 
ÎOs valores podem ser assumidos em 
forma decrescente. 
ÎQuando o incremento “inc” não é 
especificado explicitamente, ele assume o 
valor 1. 
» y=0:0.1:0.5 
y = 0 0.1000 0.2000 0.3000 0.4000 0 .5000
» y=1:5 
 y = 1 2 3 4 5 
» y=-3:1:1 % ou y=-3:1 
 y = -3 -2 -1 0 1 
 
 7
 
 
 
 
8.1.3. LEITURA DE VETOR 
 
» x=input('') % Leitura de um vetor via teclado 
[1 2 3 4 5 6] 
x = 1 2 3 4 5 6 
 
 
 
 
8.1.4. ENDEREÇAMENTO 
No Matlab, elementos de conjunto individuais são acessados usando-se subscritos, ou seja, x(1) é 
o primeiro elemento de x, x(2) é o segundo elemento de x e assim por diante. No exemplo 8.1.2: 
 
 » y(4) 
ans = 0 
» y(2:4) 
ans = -2 -1 0 
» y(2:2:5) 
ans = -2 0 
» y([5 2 4 1]) 
ans = 1 -2 0 -3 
 
 
» y(3) 
ans = -1 
 
8.1.5. OPERAÇÕES COM VETORES 
 Quando se trata de operações com vetores na multiplicação, divisão e potenciação introduzem 
um ponto antes do símbolo da operação. Isto indica ao MATLAB que as operações se tratam de 
vetores e não de matrizes. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
» x=(0:0.1:0.5)*pi % multiplica cada elemento por pi 
x = 0 0.3142 0.6283 0.9425 1.2566 
1.5708 
 
» a=-1:2; b=1:3; 
» c=[a b] 
c = -1 0 1 2 1 2 3 
 
» d=[a(1:2:4) 5 5 5] 
d = -1 1 5 5 5 
 
» a-2 
ans = -3 -2 -1 0 
 
» 5*a-3 
ans = -8 -3 2 7 
» a=-4:-1, b=1:4 
a = -4 -3 -2 -1 
b = 1 2 3 4 
 
» e=a.*b %multiplicação elemento por elemento
e = -4 -6 -6 -4 
 
» f=a./b 
f = -4.0000 -1.5000 -0.6667 -0.2500 
 
» x=input('') %entrada de vetores via teclado 
[1 2 3 4 5 6] 
x = 1 2 3 4 5 6 
 
 
8.1.6. COMANDO LINSPACE 
Sintaxe: linspace (primeiro_valor, último_valor, número_de_ valores). 
Este comando cria um conjunto de valores (vetor) onde é possível determinar o número de 
pontos, mas não o incremento. 
 
 
 
 
» x=linspace(0,pi,12) 
x = Columns 1 through 7 Columns 8 through 12 
 0 0.2856 0.5712 0.8568 1.1424 1.4280 1.7136 1.9992 2.2848 2.5704 2.8560 3.1416 
 
 
 
 
 
 
 
 8
 
8.1.7. COMANDO LOGSPACE 
Sintaxe: logspace(primeiro_expoente, último_expoente, número_de_ elementos) 
Este comando cria um conjunto de valores (vetor) com espaçamento logarítmico. 
 
 
 
 
 
» x=logspace(0,2,11) 
x = Columns 1 through 7 Columns 8 through 1 
 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 25.1189 39.8107 63.0957 100.0000 
O conjunto começa em 100, termina em 102 e contém 11 elementos. 
8.2.MATRIZES 
8.2.1. INTRODUÇÃO DE UMA MATRIZ 
Pode-se entrar com matrizes no MATLAB de diversas maneiras: 
• Entrar com uma lista explícita de elementos. 
• Gerar matrizes utilizando funções e linhas de comando do MATLAB. 
• Criar matrizes em arquivos-M. 
• Chamar matrizes de um arquivo de dados externo. 
• A maneira mais fácil de declarar matrizes é fazendo a explicitação da lista de elementos na linha 
de comando, seguindo as convenções abaixo: 
•Separar os elementos da lista de elementos através de espaços ou vírgulas. 
•Colocar os elementos entre colchetes, [ ]. 
•Usar (;) ponto-e-vírgula para indicar o fim de uma linha. 
Por exemplo, entrando com a linha de comando. 
 
 
 
 
 
» A=[1 2 3;4 5 6;7 8 
0] 
A = 1 2 3 
 4 5 6 
 7 8 0 
» 
B=[100;213;521] 
B = 100 
 213 
 521 
8.2.2. OPERAÇÕES COM MATRIZES 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
%Divisão de matrizes 
» x=(A\B)’ % inv(A)*B 
x =-46.3333 105.6667 -21.6667 
 
 %Utiliza a Técnica de fatoração LU 
e representa a resposta como a divisão 
esquerda de A por B. O Operador não 
tem o ponto precedente porque se trata 
de divisão matricial e não operação de 
elementos. É mais rápida porque 
realiza menos cálculos internos. 
%No caso de sistemas lineares, se 
houver mais equações do que 
incógnitas, isto é, em um caso 
superdeterminado, o uso do operador \
automaticamente encontra a solução 
que minimiza o erro quadrado de (Ax-
b=0) (solução dos mínimos quadrados)
% Caso subdeterminado 
» x=(pinv(A)*B)' 
x = -46.3333 105.6667 -21.6667
 
 %Obtém-se a solução na 
qual o comprimento euclidiano 
ou norma de x é menor do que 
em qualquer outra solução 
possível. 
 %A solução é baseada nopseudo-inverso (solução de 
norma mínima). 
Alternativamente ou operador 
de divisão calcula a solução
que tem zero para alguns 
elementos de x. 
% Calculo de determinante 
» A=[1 2 3;4 5 6;7 8 0] 
 
» m=det(A) 
m = 27 
 
% Calculo da inversa 
» x=inv(A) 
x = -1.7778 0.8889 -0.1111 
 1.5556 -0.7778 0.2222 
 -0.1111 0.2222 -0.1111 
 
%Multiplicação de Matrizes 
» Y=A*B 
Y = 2089 
 4591 
 2404 
 
 9
 
8.2.3. MANIPULAÇÃO MATRICIAL 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
» A(3,2)=0 % altera o elemento da linha 3 
A = % e coluna 2 de 8 para 0 
 1 2 3 
 4 5 6 
 7 0 9 
 
» A(2,5)=1 % coloca 1 na segunda linha 
A = % e na quinta coluna.Como 
 1 2 3 0 0 % a matriz A não tem cinco 
 4 5 6 0 1 % colunas, o tamanho de A 
 7 0 9 0 0 % é aumentado conforme 
 % necessário e A é 
 % preenchida com zeros. 
»A=[1 2 3;4 5 6;7 8 9]; 
» B=A(3:-1:1,1:3) % ou B=A(3:-1:1,:) 
B = 
 7 8 9 % cria uma matriz B 
 4 5 6 % colocando as linhas da 
 1 2 3 % matriz A em ordem inversa
 
 
» C=[A B(:,[1 3])] %matriz A e todas as
C = % linhas da matriz B
 1 2 3 7 9 %das colunas 1 e 3 
 4 5 6 4 6 
 7 8 9 1 3 
8.2.4. MATRIZES ESPECIAIS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
% matriz nula 
» x=zeros(3) 
x = 0 0 0 
 0 0 0 
 0 0 0 
 
% matriz unitária 
%2 linhas,4 colunas 
» x=ones(2,4) 
x =1 1 1 1 
 1 1 1 1 
 
%matriz de elementos iguais 
» x=ones(3)*pi 
x =3.1416 3.1416 3.1416 
 3.1416 3.1416 3.1416 
 3.1416 3.1416 3.1416 
 
 
% matriz identidade 
» x=eye(3) 
» x=eye(3,2) 
x =1 0 0 x= 1 0 
 0 1 0 0 1 
 0 0 1 0 0 
 %matriz de elementos iguais 
» x=ones(3)*pi 
x =3.1416 3.1416 3.1416 
 3.1416 3.1416 3.1416 
 3.1416 3.1416 3.1416 
 
% matriz de no aleatórios 
» x=rand(3,1) 
x =0.9501 
 0.2311 
 0.6068 
 
% comprimento da matriz 
» A=-200:pi:100 
» size(A) 
ans = 1 96 
% matriz com 1 linha e 96 
colunas 
 
» length(A) 
ans = 96 
% retorna o comprimento do vetor
» A=[1 2 3 4; 5 6 7 8]; 
» size(A) 
ans = 2 4 % 2 linhas e 4 
colunas 
 
» length(A) % retorna o no de linhas
ans = 4 % ou o no de colunas, 
 % o que for maior. 
 
%encontrar elementos específicos 
% acha os subscritos (posição) onde a 
expressão relacional é verdadeira 
» x=(-3:3) 
 x = -3 -2 -1 0 1 2 3
 
» k=find(abs(x)>1) 
 k = 1 2 6 7 
 
» A=[1 2 3;4 5 6;7 8 9]; 
 
» [i,j]=find(A<5) 
i =1 j= 1 
 2 1 
 1 2 
 1 3 
 
 
8.3.HELP DE MATRIZES E VETORES 
Para conhecer mais funções sobre matrizes consulte o Help matfun (funções com matrizes), 
Help elmat (matrizes elementares), Help sparfun. 
 
 
9.GRÁFICOS 
9.1.FUNÇÃO PLOT 
Os gráficos constituem um recurso visual poderoso para interpretação de dados. Para iniciar a 
construção, determina-se inicialmente a variável independente que irá compor o eixo horizontal do 
gráfico. Depois disso determina-se a variável que irá compor o eixo vertical. 
 
 10
 
 
 
 
 
 
 
 
 
 
 
Características da função plot: 
Î escolhe automaticamente os limites dos eixos, marcar os pontos individuais e desenha linhas retas 
entre eles. 
Î plota múltiplos conjuntos de dados nos mesmos eixos; Î utiliza diferentes tipos de linhas; 
Î marca somente os pontos de dados sem interliga-los; Î linhas de grade; 
Î coloca nomes nos eixos e títulos; Î usa cores distintas para diferentes curvas 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9.1.1. ESTILOS DE LINHA, MARCADORES E CORES 
Símbolo Cor Símbolo Tipo de linha 
y amarelo . ponto 
m magenta o círculo 
c ciano x x-marca 
r vermelho + mais 
g verde * asterisco 
b azul - linha contínua 
w branco : linha pontilhada 
k preta -. traços e pontos 
 -- linha tracejada 
» z=cos(x) 
% duas curvas nos mesmos eixos 
»plot(x,y,'r-o',x,z,'b-+') 
% seno (vermelho, ‘o’) , cosseno (azul,‘+’) 
 
% nomeia o eixo horizontal 
»xlabel('x (rad)') 
 
% nomeia o eixo vertical 
» ylabel('Ilustração do comando plot') 
 
% coloca um título 
» title('Funções seno(x) e cosseno(x)') 
 
% linhas de grade 
» grid 
 
% limite dos eixos 
% define os valores máximo e mínimo 
dos eixos usando um vetor linha 
»axis([0 6.5 -1 1]) 
 
% inserir textos no gráfico 
»text(2.8,0.53,'sen(x)') 
% inserir textos no gráfico a partir da 
posição do cursor (dê um clique na 
posição desejada) 
» gtext('cos(x)') 
 
Os textos ‘seno’, ‘cos’ podem ser introduzidos 
diretamente na figura, assim como a 
espessura das linhas. 
» x=linspace(0,2*pi,30); 
» y=sin(x); 
» plot(x,y) 
Como exemplo inicial, será ilustrado a 
função seno no intervalo [0,2π] com 30 
pontos. 
 
 11
 
 
9.2.EIXOS 
axis([xmin xmax ymin ymax]) define os valores máximo e mínimo dos eixos 
axis auto retorna o escalamento de eixos para o modo automático padrão: 
xmion=min(x), xmax=max(x) 
axis(axis) congela a escala nos seus limites atuais 
axis square (‘square’) faz com que o gráfico seja quadrado e não retangular 
axis on (‘on’) liga nomes de eixos, marcadores e grade 
axis off (‘off’) desliga todos os nomes de eixos, grades e marcadores 
axis equal (‘equal’) define os fatores de escalamento para ambos os eixos com sendo iguais 
 
 
 
 
9.3.FIGURE 
 Se você desejar dois ou mais gráficos em diferentes janelas, use o comando figure ou a seleção 
New figure do menu File, na janela de comandos. O comando figure sem argumentos cria uma nova 
janela. O comando figure(n) abre uma janela específica de número n. 
9.4.COMANDO HOLD ON 
Permite que seja adicionada mais de uma curva no mesmo gráfico. Quando o hold on é 
acionado, o MATLAB não remove as curvas já existentes quando novos comandos plot são emitidos. 
Em vez disso, ele acrescenta novas curvas nos eixos já existentes. Contudo, se os novos valores não se 
ajustarem aos limites de eixos em vigor, os eixos podem ser reescalados. Fazendo hold off, libera-se a 
janela atual para novos gráficos. O comando hold sem argumentos comuta a função entre liga e 
desliga. 
 
9.5.O COMANDO SUBPLOT 
O comando subplot(m,n,p), divide a janela atual em uma matriz m por n de áreas gráficas e faz com que 
a p-ésima área fique ativa. Os subgráficos são numerados da esquerda para a direita, ao longo da linha superior, 
daí para a segunda linha. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
» y=sin(x); 
» z=cos(x); 
»w=[y;z], 
» a=2*sin(x).*cos(x), 
» b=sin(x)./(cos(x)+eps) 
» subplot(2,2,1) 
» plot(y,z),title('Seno x cosseno' ) 
 
» subplot(2,2,2) 
» plot(x,y,x,2*y.*z, '--'), 
» title('2Seno(x)cosseno(x)=sen(2x)' ) 
 
» subplot(2,2,3) 
» plot3(y,z,x),grid 
»title('Gráfico Tridimensional'), 
»xlabel('sin(x)'), 
»ylabel('cos(x)'),zlabel('x') 
 
» subplot(2,2,4) 
» plot(x,b), axis([0 2*pi -20 20]), 
» title('sen(x)/cos(x)') 
 
 
 
 
 
 12
 
9.6.OUTRAS CARACTERÍSTICAS 
loglog Mesmo que o plot mas as duas escalas são logarítmicas 
semilog Escala logarítmica para o eixo x e linearpara y 
semilogy Escala logarítmica para o eixo y e linear para x 
polar(t,r,s) Coordenadas polares,t é vetor ângulo em radianos, r é o vetor raio, s descreve cor, 
marcadores 
bar(x,y) Gráfico de barras 
stairs(x,y) Gráfico escada 
hist(y,n) Desenha um histograma com n divisões do vetor y. 
hist(y,x) Desenha um histograma usando as divisões especificadas no vetor x. 
hist(y) Faz um histograma de dez divisões para os dados do vetor y 
rose(t) Desenha um histograma polar com 20 divisões para os ângulos do vetor t. (t,n), (t,x) 
stem(y) Cria um gráfico dos pontos de dados de y conectado ao eixo horizontal por uma linha 
stem(x,y) Cria um gráfico de pontos de dados de y nos valores especificados em x. 
 
[x,y]=ginput(n) 
Seleciona n pontos de um gráfico em uso por meio do mouse e retorna suas 
coordenadas nos vetores de coluna x e y. Se n é omitido, pode-se obter um no infinito de 
pontos até teclar <enter> 
fplot(‘fun’,[xmi
m max]) 
Cria um gráfico da função fun sobre o intervalo xmin≤x≤xmax com escalamento 
automático do eixo y. Fplot(‘fun’,[xmim max]) especifica também y. Há restrições de 
funções. Consulte o Help. 
 
 
Figura 2 
 
 
 
 
 
 
 
 
% polares 
»t=0:0.01:2*pi, 
»r=sin(2*t).*cos(2*t); 
»subplot(3,2,1); 
»polar(t,r), 
»title ('Gráfico polar'); 
 
% gráfico de barras 
»x=-2.9:0.2:2.9; 
»y=exp(-x.*x); 
»subplot(3,2,2); 
»bar(x,y,'w'); 
»title('Gráfico de barras') 
»ylabel('Curva normal'); 
 
% gráfico escada 
»subplot(3,2,3); 
»stairs(x,y), »title('Gráfico em 
escadas') »ylabel('Curva normal'); 
 
% histograma 
»subplot(3,2,4); 
»y=randn(5000,1); 
»hist(y,x); 
»title('Histograma de dados 
Gaussianos'); 
 
% hastes 
»subplot(3,2,5); 
»y=randn(50,1); 
»stem(y,':'); 
»title('Gráfico de haste'), 
»ylabel('Dados Aleatórios') 
 
%função 
»subplot(3,2,6); 
»fplot('sin(x)./x',[-20 20 -.4 1.2]) 
»title('Fplot de sen(x)/x) ') 
»xlabel('x'),ylabel('f(x)') 
»x=linspace(-3,2*pi,330) 
»y=sin(x).^2./(x+eps); 
»plot(x,y), 
»title('Gráfico de sen(x)^2/x') 
»[a,b]=ginput(4); 
»hold on 
»plot(a,b,'bo') 
»hold off 
 
 13
 
 
 
9.7.GRÁFICOS TRIDIMENSIONAIS 
 
 
 
 
 
Formato generalizado: 
plot3(x1,y1,z1,S1,x2,y2,z2,S2,...), 
onde xn, yn e zn são vetores ou matrizes 
e sn especifica as cores, símbolos 
marcadores e/ou estilos de linhas). 
 
 »t=0:pi/50:10*pi 
»plot3(sin(t),cos(t),t) 
»title('Helice'),xlabel('sen(t)') 
»ylabel('cos(t'),zlabel('t') 
 
 
 
 
 
 
 
9.8.GRÁFICOS DE REDES E SUPERFÍCIE 
O Matlab define uma superfície de rede por meio das coordenadas z de pontos acima de uma 
grade retangular no plano xy. Ele forma um gráfico unindo pontos adjacentes com linhas retas. O 
resultado se parece com uma rede de pesca com nós nos pontos de dados. Estes gráficos são muito 
úteis na visualização de grandes matrizes ou para a representação gráfica de funções de duas variáveis. 
 
 
9.8.1. FUNÇÃO MESHGRID 
O primeiro passo para gerar um gráfico de rede de uma função de duas variáveis é gerar matrizes 
X e Y que consistam em linhas e colunas repetidas, respectivamente, sobre um intervalo das variáveis 
x e y. Isto pode ser feito pela função meshgrid. [X,Y] = meshgrid(x,y) cria uma matriz x, cujas linhas 
são cópias do vetor x, e uma matriz Y, cujas colunas são cópias do vetor y. Esse par de matrizes pode 
então ser usado para calcular funções de duas variáveis usando os recursos convencionais. 
 
 
» x=-7.5:.5:7.5; y=x; 
» [X,Y]=meshgrid(x,y); 
» R=sqrt(X.^2+Y.^2)+eps; 
» Z=sin(R)./R 
» mesh(X,Y,Z) 
 
» surf(X,Y,Z) 
 
9.8.2. FUNÇÃO SURF 
Um gráfico de superfície da mesma matriz Z (usado na função mesh) se parece com o gráfico em 
rede, exceto pelo fato de que os espaços entre as linhas são preenchidos. 
 
 
9.8.3. FUNÇÃO PEAKS 
 Esta função (peaks.m) gera uma matriz quadrada de dados. Os dados são baseados em uma função 
de duas variáveis e contêm pontos de dados para x e y, no intervalo –3 a 3. ( ) 221y2y2x535x2x21y2 ye31eyx10ex12yxf −−−−−−= +−−−−+− )()()(),( 
 
 
 14
 
 
 
 
 
 Você pode especificar o tamanho da matriz 
quadrada de dados gerada por peaks passando-
lhe argumentos. Se omitir os argumentos, seu 
padrão será 31. 
 
 
»M=peaks(20) 
»plot(M) 
»title('Gráfico de Peaks') 
»mesh(M) 
 
 
 
 
 
 
 
 
 
 
9.8.4. GRÁFICOS DE CONTORNO 
 Mostram linhas de elevação ou altura constante (um exemplo é o mapa topográfico). 
 Os gráficos de contorno bi e tridimensionais são gerados usando-se as funções contour e 
controur3, respectivamente. 
 
 
 
 
 
 
 
 
[x,y,z]=peaks; 
contour(x,y,z,20); 
contour3(x,y,z,20); 
 
 
 
 
 
Outra forma de visualizar informações sobre contorno é usar cores para representar alturas. A 
função pcolor mapeia em um conjunto de cores e apresenta a mesma informação do gráfico de 
contorno, na mesma escala. Exemplo: digite ‘z=peaks’ e em seguida ‘pcolor(z)’. Uma vez que pcolor e 
contour mostram a mesma informação na mesma escala, é sempre útil superpor os dois. 
 
» [x,y,z]=peaks; 
» colormap(hot) 
» pcolor(x,y,z) 
» shading flat 
» hold on 
» contour(x,y,z,20,'k'); 
» hold off 
 
 
 
 
 
 
 
 
 
9.9.HELP DE GRÁFICOS 
Para conhecer mais funções sobre gráficos consulte Help graphics, Help graph2d, Help 
graph3d, Help specgraph. 
 
 
 
 
 
 
 
 
 15
 
10.ANÁLISE DE DADOS 
A análise de dados no Matlab é feita em matrizes orientadas por colunas. As diversas variáveis 
são armazenadas em colunas individuais e cada linha representa uma observação diferente de cada 
variável. Nesta análise podem ser verificados os valores críticos do conjunto, como o valor máximo, o 
mínimo, o valor médio, a covariância, a correlação... 
 
 
 
 
 
 
 
 
 
 
 
 
 
» a=20:-1:0 
» b=linspace(-1,9,length(a)); 
» c=linspace(10,100,length(a)); 
» x=[a',b',c'] 
% média de cada coluna 
» media=mean(x) 
 
%media das três colunas 
» m_media=mean(media) 
m_media = 23 
» maximo=max(x) % valor máximo de cada 
coluna 
maximo = 20 9 100 
 
» [maximo,p]=max(x) %Indica o valor máximo e 
maximo = 20 9 100 %o local onde ocorreu 
p = 1 21 21 
 
» [minimo,q]=min(x) % Indica o valor mínimo 
e o minimo = 0 -1 10 % local onde ocorreu
q = 21 1 1 
10.1.HELP DE ANÁLISE DE DADOS 
Para conhecer mais funções de análise de dados consulte Help datafun. 
 
11.POLINÔMIOS 
11.1.RAÍZES X POLINÔMIO 
 Achar as raízes de um polinômio é encontrar os valores para os quais o polinômio é igual a zero. 
No Matlab, um polinômio é representado por um vetor de linha dos seus coeficientes em ordem 
decrescente. As raízes do polinômio são obtidas pelo comando roots. O Matlab adota como convenção 
colocar os polinômios como vetores de linha e as raízes como vetores de coluna. Dadas às raízes de 
um polinômio, também é possível construir o polinômio associado, através do comando poly. 
 
 
 
 
 
 
 
 
» p=[1 -12 0 25 116]; 
» r=roots(p) 
r = 11.7473 
 2.7028 
 -1.2251 + 1.4672i 
 
 
11.2.OPERAÇÕES COM POLINÔMIOS 
 
 
 
 
 
 
 
 -1.2251 - 1.4672i 
» pp=poly(r) 
pp = 
 1.0000 -12.0000 -0.0000 25.0000 116.0000 
» a=[1 2 3 4]; 
» b=[1 2 9 16]; 
 
» s=a+b % adição 
s = 2 4 12 20 
» e=s+[0 0 1 s(4)] 
e = 2 4 13 40 
» [q,r]=deconv(e,b) % divisão 
q = 2 % quociente 
 
 
 
 
 
 
 
r = 0 0 -5 8 % resto da divisão 
% Multiplicação polinomial 
» c=conv(a,b) % convolução 
»c = 1 4 16 44 67 84 64 
 
»x=linspace(-1,3); 
»p=[1 4 -7 -10]; 
 % calcula o valor de p(x) nos valores x 
»v=polyval(p,x) % armazena os valores em v 
»plot(x,v) 
»title('x^3+4x^2-7x-10'),xlabel('x') 
 
 16
 
 
 
11.3.HELP DE POLINÔMIOS 
Para conhecer mais funções de análise de dados consulte Help polyfun. 
 
 
12.AJUSTE DE CURVAS E INTERPOLAÇÃO 
Em diversas áreas do conhecimento, com freqüência é necessário descrever os dados obtidos 
experimentalmente por meio de uma função analítica. Há duas alternativas pra resolver o problema: 
interpolação e ajuste de curvas ou regressão. 
 
 
12.1.AJUSTE DE CURVAS 
Para o Matlab, o melhor ajuste de curvas é interpretado como sendo a minimização da soma do 
erro quadrado dos pontos de dados e a curva utilizada é restrita a polinômios. Matematicamente 
falando, isso é denominado ajuste de curvas a um polinômio pelo mínimo quadrado (abreviação da 
minimização da soma do erro quadrado). Este método tem como objetivo achar alguma curva suave 
que “melhor se ajuste” aos dados, mas que não necessariamente passe por quaisquer dos pontos. 
A função polyfit resolve o problema do ajuste de curvas pelo método dos mínimos quadrados. 
A escolha da ordem do polinômio é de certa forma, arbitrária. Necessita-se de dois pontos para 
definir uma reta ou um polinômio de primeira ordem. Necessita-se de três pontos para definir um 
polinômio quadrático ou de segunda ordem. Seguindo-se essa progressão, necessita-se de n+1 pontos 
de dados para especificar de forma única um polinômio de ordem n. No exemplo acima, onde há 11 
pontos, poderíamos escolher um polinômio até a décima ordem. Entretanto, das as propriedades dos 
polinômios de ordem superior, não se deve escolher a ordem com um valor mais alto que o necessário. 
Além disso, à medida que a ordem do polinômio aumenta, a aproximação torna-se menos suave, 
já que os polinômios de ordem superior podem ser derivados mais vezes até que se tornem zero. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
» x=[0:0.1:1]; 
» y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 
9.56 9.48 9.30 11.2]; 
» n=2; 
» p=polyfit(x,y,n) 
 p = -9.8108 20.1293 -0.0317 
% cria os dados para o eixo xi 
» xi=linspace(0,1,100); 
» z=polyval(p,xi); 
% calcula o polinômio p nos pontos de xi 
% 03170x129320x81089y 2 ... −+= −
» plot(x,y,'o',x,y,xi,z,':') 
»pp=polyfit(x,y,10) 
»zz=polyval(pp,xi) 
»plot(xi,zz,'-') 
»xlabel('x'), ylabel ('y=f(x)') 
»title('Ajuste de Curva') 
» xlabel('x'), ylabel ('y=f(x)') 
» title('Ajuste de Curva’) 
 
12.2.INTERPOLAÇÃO 
A interpolação é definida como sendo uma forma de estimar os valores de uma função entre 
aqueles fornecidos por um conjunto de dados. A interpolação é uma ferramenta valiosa quando não se 
pode calcular rapidamente a função nos pontos intermediários desejados. Por exemplo, isso ocorre 
quando os pontos de dados resultam de medições experimentais ou de procedimentos computacionais 
demorados. 
 
 17
 
 
12.2.1. INTERPOLAÇÃO LINEAR 
A interpolação linear considera que os valores intermediários caem em uma linha reta entre os 
pontos definidos. Com certeza, à medida que se têm mais pontos de dados e a distância entre eles 
diminui, a interpolação linear torna-se mais precisa. 
Considere o exemplo de registro de temperatura. Foram realizadas algumas medidas de 
temperatura ao longo de um dia e deseja-se estimar o valor da temperatura em horários diferentes dos 
que foram realizadas as medidas. 
 
 
 
 
 
 
 
 
 
 
 
» h=1:12 % horário das medições 
% valores lidos em graus Celsius 
» t=[5 8 9 15 25 29 31 30 22 25 27 24] 
» plot(h,t,h,t, '+') 
» xlabel('Hora'),ylabel('Graus Celsius') 
» t1=interp1(h,t,9.3) 
» t2=interp1(h,t,[3.2 6.5 7.1 11.7]) 
» t1 =22.9000 
» t2 =10.2000 30.0000 30.9000 24.9000 
»[a,b]=ginput(1) % seleciona um ponto da curva 
12.2.2.INTERPOLAÇÃO CÚBICA 
Em vez de pressupor que uma linha reta conecta os pontos de dados, podemos considerar que 
alguma curva suave se ajusta a eles. A suposição mais comum é a de que um polinômio de terceira 
ordem, isto é, um polinômio cúbico, seja usado para modelar cada segmento entre pontos consecutivos 
e que a inclinação de cada polinômio cúbico se ajuste nos pontos dados. Este tipo de interpolação é 
chamado de splines cúbicas ou apenas splines. 
A função interp1 possui algumas restrições: não se pode pedir resultados fora da variável 
independente; a variável independente tem que ser monotônica (crescente ou decrescente). 
 
 
 
 
 
 
 
 
 
 
 
 
» h=1:12 
» t=[5 8 9 15 25 29 31 30 22 25 27 24] 
» hh=1:0.1:12 
» tt=interp1(h,t,hh,'spline') 
» plot(h,t,h,t, '+',hh,tt) 
» xlabel('Hora'),ylabel('Graus 
Celsius'),title('Temperatura') 
» t1=interp1(h,t,9.3,'spline') 
 t1 =21.8577 
» t2=interp1(h,t,[3.2 6.5 7.1 11.7],’spline’) 
t2 =9.6734 30.0427 31.1755 25.3820 
 
12.2.3.INTERPOLAÇÃO BIDIMENSIONAL 
A interpolação bidimensional interpola funções de duas variáveis, z=f(x,y). Utilize a função 
interp2. 
 
 
12.3.HELP DE GRÁFICOS 
Para conhecer mais sobre funções de interpolação consulte Help polyfun. 
 
 
13.PROGRAMAÇÃO 
Os programas podem ser redigidos no editor de texto e salvos como um arquivo.m. Para executar 
o programa basta digitar o seu nome área de trabalho do Matlab. Se necessário, mude o diretório da 
 
 18
 
área de trabalho para a pasta onde está armazenado o programa. A área de trabalho padrão utiliza a 
pasta Work, do Maltab. 
 
 
 
 
 
 
 
% Programa apresentacao.m 
clear 
clc 
disp 'Execução de programas no Matlab' 
disp( ' ') 
disp 'Conversão de graus para radianos' 
x=input('Digite o valor de x em graus: ') 
disp 'Valor de x em radianos ' 
x=x*pi/180 
 
 
As linguagens de programação de computadores apresentam características que permitem o 
controle de fluxo de execução de comando, com base em estruturas de tomada de decisões. O controle 
de fluxo é um recurso poderoso, pois permite que cálculos feitos anteriormente influenciem operações 
futuras. 
Como estas estruturas freqüentemente envolvem diversos comandos Matlab, elas em geral 
aparecem em arquivos M, em vez de serem introduzidas diretamente no prompt do Matlab. 
 
 
 
13.1.LOOPS FOR 
Os loops for (repetição determinística) possibilitam que uma série de comandos seja repetida 
por um número de vezes fixo e predefinido. A forma geral do loop for é 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
» apresentacao 
 
 for x= xi:xp:xf 
 Comandos 
 end 
%% programa loopfor_1.m 
for n=1:1:10 
 x(n)=sin(n*pi/10); 
end 
%% programa loopfor_1.m 
for n=1:1:10 
 
 
 x(n)=sin(n*pi/10); 
 n=10 % não causará nenhum efeito 
end
Um loop for não pode ser terminado 
reatribuindo-lhe a variável de loop dentro 
do loop for 
%%%%%%% programa loopfor_2.m 
dados=[ 3 9 45 6; 7 16 -1 5]; 
for n=dados 
 x=n(1)-n(2) 
13.2.LOOPS WHILE 
Ao contrário do loop for, que executa um grupo de comandos um número fixo de vezes, o loop 
while executa um grupo de comandos um número indefinido de vezes. Forma geral do loop while: 
 
 
 
 
 
 
 
 
 
end 
Qualquer conjunto válido Matlab é 
aceitável no loop for. 
Os comandos entre as instruções while e end 
são executados enquanto todos os elementos 
em expressão forem verdadeiros. 
while expressão 
 Comandos 
 end 
%%%%%%% programa loopwhile_1.m 
num=0;eps=1; 
while (1+eps)>1 
 eps=eps/2; 
 num=num+1; 
end
 
 19
 
 
 
13.3.IF-ELSE-END 
Em diversas situações, as seqüências de comandos têm de ser executadas condicionalmente, com 
base em um teste relacional. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13.4.FUNÇÕES DE ARQUIVO M 
Quando utilizamos funções do Matlab como inv, abs, angle e sqrt, o Matlab toma as variáveis que foram 
definidas, calcula os resultados desejados usando sua entrada e depois devolve os resultados. Os comandos 
executados pela função, assim como quaisquer variáveis intermediárias criadas por esses comandos,encontram-
se ocultos. Apenas os dados de entrada e saída são disponíveis. 
Essas propriedades fazem das funções ferramentas muito poderosas para executar comandos que incluem 
dentro deles funções matemáticas úteis ou seqüências de comandos que apareçam freqüentemente quando 
algum problema de maior porte estiver sendo resolvido. Devido à deste recurso, o MATLAB apresenta uma 
estrutura que lhe permite criar suas próprias funções na forma de arquivos M armazenados em seu computador. 
Um arquivo M de função é semelhante a um arquivo de instrução, pois se trata também de um arquivo-texto 
com extensão.m. Assim como no caso dos arquivos M de instrução, os arquivos M de função não são 
introduzidos a partir da janela de comandos, mas sim de arquivos textos externos criados com um editor de 
texto. A primeira linha de uma função M define o arquivo M como uma função, especifica seu nome e os nomes 
de suas variáveis de entrada e saída. 
 
 
 
 
 
 
 
 
 
 
 
 
13.5.CRIANDO UMA FUNÇÃO 
Digite no editor de texto do Matlab a função “operacao” mostrada abaixo. Salve o arquivo como 
operacao.m no diretório de trabalho. Em seguida faça o teste 
 
 
 
 
 
 
function y = fliplr(x) 
%FLIPLR Flip matrix in left/right direction. 
%FLIPLR(X) returns X with row preserved and columns flipped in the left/right direction 
% X = 1 2 3 becomes 3 2 1 
% 4 5 6 6 5 4 
if ndims(x)~=2, error('X must be a 2-D matrix.'); end 
[m,n] = size(x); 
y = x(:,n:-1:1); 
function r=operacao(x) 
r=x^2+2*x+x^(1/2); 
» x=4; 
» operacao(x) 
ans = 26 
function r=operacao2(x,y,z) 
r=x^2+2*y+z^(1/2); 
» x=3;y=2;z=1; 
» operacao2(x,y,z) 
ans = 14 
if condição 
 Comandos 
 end 
if condição 
 Comandos_v 
else 
 Comandos_f
 end 
if condição_1 
 comandos_1 
 
elseif condicao_2
 comandos_2
 
elseif condicao_3
 comandos_3
 
else if 
… 
else 
 Comandos 
 end 
%%% programa ifthen_1.m 
idade=input('Digite a idade: ') 
if idade<=14 
 disp ('Criança') 
 
elseif idade>14 & idade<=18 
 disp ('Adolescente') 
 
elseif idade>18 & idade<=60 
 disp ('Adulto') 
 
else 
 disp('Idoso') 
end 
 
 20
 
 
 
13.6.HELP DE PROGRAMAÇÃO 
Para saber mais sobre instruções de programação consulte Help lang. 
 
 
14.SIMULINK 
Simulink é um software para modelagem, simulação e análise de sistemas dinâmicos. Ele suporta 
sistemas lineares e não lineares, modelados em tempo contínuo, discreto ou híbrido. Para modelagem, 
SIMULINK fornece uma interface gráfica para construção de modelos em diagramas de blocos, 
usando operações de clique-e-arrasta do mouse. O software contém um bloco de biblioteca de fontes, 
componentes lineares, não lineares e conectores. Depois que o modelo é definido, ele pode ser 
simulado usando um método de integração a ser escolhido na janela de comandos do Matlab. 
 
 
14.1.BIBLIOTECA 
Após ativar o Simulink na barra de ferramentas do Matlab será apresentada a janela de menus 
do Simulink. Crie um novo modelo. Será apresentada uma nova janela em branco (janela de modelo) 
onde serão inseridos os blocos do modelo. 
14.2.CONSTRUÇÃO DE UM MODELO 
Será ilustrado a evolução da função ‘sen(x(t))’, ‘sen(2x(t))’ e ‘| sen(x(t))| ’ . 
ÖNa janela de menus selecione Simulink, seguida Sources e depois escolha Signal Generator block. 
ÖArraste o bloco para dentro da janela de modelo e escolha a função sin(x) (dê dois cliques do bloco). 
Öfaça uma cópia deste bloco e escolha a função cos(x). 
Öno menu Sinks, repita o procedimento para Scope (osciloscópio), To Workspace (armazenador) 
Öo ganho é obtido no menu Math, e o mux no menu Signal & Systems. 
Öconecte as entradas e saídas dos blocos, como ilustra a figura. 
ÖAjuste os parâmetros na opção Parameters ( tempo inicial, final e método de simulação) do menu 
Simulation; 
Ödigite a=3, na tela de trabalho do Matlab. 
ÖInicie a simulação selecionando Start no menu Simulation da janela de modelo. 
 
 
 
 
 
 
 
 
 
 
 
 21
 
 
 
 
 
 
 
 
 
 
 
 
Nesta simulação foram armazenados os valores do 
sen(x), na variável valores_sin, os valores de 
sen(x)*3, na variável valores_ganho, os valores de 
|sen(x)|, na variável valores_abs e os valores do 
tempo, armazenados na variável tempo. Estas 
variáveis podem ser utilizadas normalmente no 
Matlab e todas tem o mesmo número de 
componentes. 
» length(tempo) 
ans = 61 
» [tempo(1:5) valores_sin(1:5) valores_ganho(1:5) 
valores_abs(1:5)] 
ans = 0 0 0 0 
 0.0000 0.0000 0.0000 0.0000 
 0.0600 0.3681 1.1044 0.3681 
 0.1200 0.6845 2.0536 0.6845 
 0.1800 0.9048 2.7145 0.9048 
»plot(tempo,valores_sin,'bo',tempo,valores_ganho,'r
+',tempo,valores_abs,'g') 
15.MATEMÁTICA SIMBÓLICA 
Expressões simbólicas são strings de caracteres ou conjuntos de strings de caracteres que 
representam número, funções, operadores e variáveis. As variáveis não necessitam ter valores 
predefinidos. Equações simbólicas são expressões simbólicas quem contêm um sinal de igualdade. A 
aritmética simbólica é a prática de resolução dessas equações por meio da aplicação de regras 
conhecidas e de identidade a determinados símbolos, exatamente da forma como se resolve em álgebra 
ou cálculo. 
 
15.1.REPRESENTAÇÃO DE EXPRESSÕES SIMBÓLICAS 
As funções simbólicas do MATLAB possibilitam manipular essas expressões de diversas formas: 
 
 
 
 
 
 
 
 
 
 
 
% derivada de cos(x) em relação a x 
% representação implícita 
» diff('cos(x)') 
 ans =-sin(x) 
 
% cria uma matriz simbólica, representação 
explícita: uso obrigatório de sym 
» M=sym('[a,b;c,d]') 
 M =[ a, b] 
 [ c, d] 
% encontra o determinante da matriz simbólica M 
» determ(M) 
 ans =a*d-b*c 
 
% string de caracteres (não usa sym) 
» M=('[a,b;c,d]') 
M =[a,b;c,d] 
 
15.2.VARIÁVEIS SIMBÓLICAS 
Quando se trabalha com expressões simbólicas contendo mais de uma variável, uma variável é a 
variável independente. Se não for dito ao MATLAB qual variável é a independente, ele seleciona um 
baseado na regra seguinte: 
O caractere padrão escolhido é x. Se não existir x, aquele mais próximo de x, alfabeticamente 
falando, é escolhido. Se houver empate, o caractere posterior no alfabeto será o escolhido. 
 
Ex: ‘1/(5+cos(x)’) Î variável livre: x ‘3*y+z’ Î variável livre: y 
 ‘sin(pi/4)-cos(3/5)’ Î variável livre: x ‘a+sin(t)’ Î variável livre: t 
 
 
 
 
 22
 
15.2.1.ESPECIFICANDO A VARIÁVEL INDEPENDENTE 
 % deriva em relação a ‘n’ » diff('sin(omega)*a+t') 
 » diff('x^n','n') ans = 1 
 ans = x^n*log(x) 
 % deriva em relação a ‘omega’ 
» diff('sin(omega)*a') » diff('sin(omega)*a+t','omega') 
 ans = cos(omega)*a ans = cos(omega)*a 
 
 
15.3.OPERAÇÕES ALGÉBRICAS PADRÃO 
 
 
 
 
 
 
 
 
 
 
 
15.3.1.OPERAÇÕES AVANÇADAS 
»f='2*x^2+3*x-5'; »g='x^2-x+1' % expressão simbólica 
»symadd(f,g) % soma de expressões simbólicas 
 ans =3*x^2+2*x-4 
 
»symmul(f,g) % multiplicação de expressões simbólicas 
 ans = x^2+4*x-6 
 
»symdiv(f,g) % divisão de expressões simbólicas 
 ans =(2*x^2+3*x-5)/(x^2-x+1) 
 
»sympow(f,’3’) % encontra a expressão simbólica para f^3
 ans =(2*x^2+3*x-5)^3 
 
 
 
 
 
 
 
 
» f='cos(x)'; g='sin(2*x)'; % cria funções simbólicas % encontra a expressão para f(g(x)) 
» compose(f,g) » symop(f, '/',g,'+',3) % combina as duas 
 ans =1/(1+sin(x)^2) ans =cos(x)/sin(2*x)+3 
 %dados h(u), k(v),encontre h(k(v)) 
» f=sym('1/(1+x^2)');g=sym('sin(x)' » compose(h,k,'u','v') 
» h=sym('1/(1+u^2)');k=sym('sin(v)');ans =1/(1+sin(v)^2) 
 
15.3.2.FUNÇÃO INVERSA 
A função inv(x) calcula a inversa de x, seja x simbólico ou numérico. O inverso funcional é 
calculado pela função finverse(x). O inverso funcional, digamos f(x), é a expressão g(x) que satisfaz a 
condição g(f(x))=x. Por exemplo, o inverso funcional de ex é ln(x), já que ln(ex ) =x. O inverso 
funcional de sen(x) é arcsen(x). O inverso funcional de (1/tan(x)) é arctan(1/x). 
 
 
 
 
 
 
 
 
 
 
 
 
» inv(sym('1/x')) » finverse(sym('a*x+b')) % solução para 
‘g(f(x))=x’ ans =x 
» finverse(sym('1/x')) % o inverso de 1/x é 1/x ans =-(b-x)/a 
 ans =1/x % já que ‘1/(1/x) =x’ 
» t=sym('a*b+c*d-a*z') 
 t =a*b+c*d-a*z » finverse(sym('x^2')) 
 Warning: finverse(x^2) is not unique. » finverse(t,'a') ans = x^(1/2) ans =-(c*d-a)/(b-z) % solução para ‘g(f(a))=a’ 
15.3.3.SOMATÓRIA DE SÉRIES 
 » f=sym('(2*n-1)^2'); 
∑−1x
0
2x Î Î ∑ −n
0
2)1n2(» f=sym('x^2'); » symsum(f,1,'n') » symsum(f) ans = 11/3*n+8/3-4*(n+1)^2+4/3*(n+1)^3 
 ans = 1/3*x^3-1/2*x^2+1/6*x » factor(ans) %muda a forma da resposta 
ans =1/3*n*(2*n-1)*(2*n+1) 
 
 23
 
 
15.4. FUNÇÕES DE CONVERSÃO 
Serão apresentadas algumas funções que convertem expressões simbólicas em valores numéricos 
e vice-versa. Algumas funções simbólicas automaticamente convertem um número em sua 
representação simbólica caso ele seja um dos argumentos da função. 
 
15.4.1.FUNÇÃO NUMERIC 
A função sym pode receber um argumento numérico e converte em uma representação 
simbólica. A função numeric faz o contrário. Ele converte uma constante simbólica (expressão 
simbólica sem variáveis) em um valor numérico. 
 
 
15.4.2.FUNÇÃO EVAL 
Calcula uma string de caracteres. Dessa forma, eval é outra função que pode ser usada para 
converter uma constante simbólica em um número, ou calcular uma expressão. 
 
 
 
 
 
 
 
15.4.3.FUNÇÃO POLY2SYM X SYM2POLY 
» phi=sym('(1+sqrt(5))/2') » f=sym('2*x^2+x^3-3*x+5'); 
» numeric(phi) % converte em valor um numérico » n=sym2poly(f) % extrai o vetor de coeficientes 
 ans = 1.6180 n = 1 2 -3 5 
» eval(phi) 
 ans = 1.6180 » poly2sym(n) % recria o polinômio em x 
» poly2sym(n,'s') % recria o polinômio em s ans =2*x^2+x^3-3*x+5 
 ans =s^3+2*s^2-3*s+5 
A função simbólica sym2poly converte um polinômio simbólico em seu vetor de coeficientes 
equivalente no MATLAB. A função poly2sym faz o inverso e possibilita especificar a variável a ser 
usada na expressão resultante. 
 
15.5.SUBSTITUIÇÃO DE VARIÁVEIS 
A função subs permite mudar a variável em uma expressão simbólica. O formato é 
subs(f,novo,antigo), sendo f uma expressão simbólica e novo e antigo caracteres ou outras expressões 
simbólicas. 
 
 
» f='a*x^2+b*x+c'; 
» subs(f,'s','x') % substitui ‘x’ por ‘s’ na expressão f 
 ans =a*s^2+b*s+c 
 
15.6.DERIVAÇÃO 
A derivação de uma expressão simbólica usa da função diff em uma dentre quatro formas: 
 
 
 
 
 
 
 
 
 
 
 
» f='a*x^3+x^2-b*x-x'; % expressão simbólica » F=sym('[a*x,b*x^2;c*x^3,d*x]');% matriz simbólica 
» diff(F) % deriva os elementos em relação a x 
» diff(f) % deriva em relação ao padrão (x) ans =[ a, 2*b*x] 
ans =3*a*x^2+2*x-b-1 [ 3*c*x^2, d] 
 
» diff(f,'a') % deriva f em relação a ‘a’ » M=[(1:8).^2] % cria um vetor 
ans =x^3 M = 1 4 9 16 25 36 49 64 
 » diff(f,2) % deriva f 2 vezes em relação a ‘x’ » diff(M) %encontra a diferença entre os elementos ans =6*a*x+2 ans = 3 5 7 9 11 13 15 
 » diff(f,'a',2) % deriva f 2 vezes em relação a ‘a’ 
ans =0 
 
 
 
 
 
 
 
 24
 
15.7.INTEGRAÇÃO 
A função de integração int(f), onde f é uma expressão simbólica, tenta encontrar outra expressão 
simbólica F tal que diff(F)=f. A integral ou antiderivada talvez não exista em forma fechada, ou pode 
existir mas o software não consegue achá-la, ou o software pode achá-la eventualmente, mas não 
consegue terminar o cálculo por falta de memória ou tempo. Quando o MATLAB não pode encontrar 
a antiderivada, ele devolve o comando sem ser processado. Como a função de derivada, a função de 
integração tem mais de uma forma. 
 
 
 
 
 
 
 
 
» f=sym('sin(s+2*x)'); %função simbólica » int(f,'s',pi/2,pi) % integra em relação a s de π/2 a π
» int(f) %integra em relação a x ans =-
1/2*cos(s+2*x) 
 ans =2*cos(x)^2-1-2*sin(x)*cos(x) 
 
» f=sym('[a*x,b*x^2;c*x^3,d*s]'); » int(f,'s') %integra em relação a s 
» int(f) % integra os elementos de um 
conjunto 
 ans =-cos(s+2*x) 
» int(f,pi/2,pi) % integra em relação a x de π/2 a π 
ans =[ 1/2*a*x^2, 1/3*b*x^3] ans =-cos(s) 
 [ 1/4*c*x^4, d*s*x] 
 
15.8.FUNÇÃO SOLVE 
Essa função avalia a o string de caracteres simbólicos com apenas uma variável para o valor, no 
qual a função é definida como igual a zero. A função solve(f), onde f é função de x, calcula x para 
f(x)=0. 
 
 
 
 
» solve('(3*x^2+2*x+1)=(5*x+12)') 
» v=sym('-10*t+20'); ans =[ 1/2+1/6*141^(1/2)] [ 1/2-
1/6*141^(1/2)] » solve(v) %encontrar o valor de t 
quando v(t)=0 » numeric(ans) 
 ans =2 ans = 2.4791 -1.4791 
 
15.9.REPRESENTAÇÃO GRÁFICA DE EXPRESSÕES SIMBÓLICAS 
 
 
 
 
 
 
 
 
 
 
 
15.10.FORMATAÇÃO E SIMPLIFICAÇÃO DE EXPRESSÕES 
Às vezes, o MATLAB retorna uma expressão simbólica que é difícil de ler. Entretanto, há 
diversas ferramentas disponíveis para ajudar a tornar a expressão mais legível. 
 
15.10.1.FUNÇÃO PRETTY 
Tenta exibir uma expressão simbólica de forma semelhante as dos livros de matemática. 
 
 
 
 
 
 
 
 
As expressões simbólicas podem ser apresentadas em muitas formas equivalentes. Algumas 
formas podem ser preferíveis a outras em diferentes situações. 
A função ezplot traça o gráfico de uma função 
simbólica dada no domínio –2*π ≤ t≤ 2*π e 
escala o eixo y de forma adequada. 
» y=sym('-5*t^2+20*t+30'); 
 
» ezplot(y) % cria um gráfico a partir da função 
 
»ezplot(y,[0 6]) % cria o gráfico e limita o eixo 
 
» f=taylor(sym('log(x+1)/(x-5)')) 
 f = -1/5*x+3/50*x^2-41/750*x^3+293/7500*x^4-1207/37500*x^5 
» g=int(sym('log(x)/exp(x^2)')) 
» pretty(g) 
 
 
 25
 
 
 
 
 
 
 
 
 
 
15.10.2.FUNÇÃO SIMPLIFY 
 
%representa como um produto de polinômios %cria uma função 
 » factor(ans) » f=sym('(x^2-1)*(x-2)*(x-3)') 
 f =(x^2-1)*(x-2)*(x-3) ans =(x-1)*(x-2)*(x-3)*(x+1) 
 
%reúne todos os termos semelhantes » expand(f) % distribui o produto nas somas 
 » collect(f) ans =x^4-5*x^3+5*x^2+5*x-6 
ans = x^4-5*x^3+5*x^2+5*x-6 
 
%muda para a representação aninhada 
 » horner(ans) 
ans =-6+(5+(5+(-5+x)*x)*x)*x 
É uma ferramenta poderosa, de utilização geral, que tenta simplificar uma expressão pela 
aplicação de muitos tipos diferentes de identidades algébricas envolvendo somas, potências inteiras e 
fracionárias, funções trigonométricas, exponenciais, logarítmicas, funções de Bessel, hipergeométricas 
e gama. 
 
15.10.3. FUNÇÃO SIMPLE 
É uma das mais poderosas, mas a menos ortodoxa de todas as ferramentas de simplificação. A 
função simple tenta usar várias ferramentas diferentes de simplificação e seleciona a forma que tem o 
menor número de caracteres na expressão resultante. Algumas vezes é útil usar simple mais de uma 
vez, a fim de tentar uma operação de simplificação diferente ao da primeira. 
 
 
 
 
 
 
» simplify(sym('log(2*x/y)')) » f=sym('(1/x^3+6/x^2+12/x+8)^(1/3)'); 
 » simple(f) % serão apresentadas algumas ans =log(2)+log(x/y) 
 ans = (2*x+1)/x %passagens antes do resultado 
 » simplify(sym('sin(x)^2+3*x+cos(x)^2-5'))
» simple(ans) ans=-4+3*x 
ans =2+1/x
15.11.FRAÇÕES PARCIAIS 
As funções simbólicas do MATLAB podem ser usadas para converter uma expressão simbólica 
em sua representação fracionária parcial. Dado um polinômio racional f, int(f) integrará a função e 
geralmente separará os termos. Então, diff(ans) derivará cada termo a fim de obter a expressão 
original f na forma de uma 
 soma de termos, que é a representação de função em frações parciais. 
 
 
 
 
 
 
 
 
 
 
 
 
» y=sym('(10*s^2+40*s+30)/(s^2+6*s+8)'); » g='(x^3+5)/(x^2-1)'; 
% encontra a representação fracionária de y 
 » diff(int(g)) 
» diff(int(y)) ans = x+3/(x-1)-2/(1+x) 
ans =10-15/(s+4)-5/(s+2) 
 » pretty(ans) 3 2 
 » pretty(ans) x + ----- - ----- 
 x - 1 1 + x 
 
 
15.12.LATEX E FORTRAN 
O comando latex é útil para quem usa o programa LaTeX para processamento de texto ou 
editoração eletrônica. Esse comando retorna o código LaTeX necessário para criar a expressão que 
você fornecer e pode ainda armazenar o código LaTeX em um arquivo. O comando fortran produz o 
código da linguagem de programação FORTRAN. 
 
 
 
» f = taylor(sym('log(1+x)') ); 
 
» latex(f) % produz o código LaTeX da função 
ans =x-1/2\,{x}^{2}+1/3\,{x}^{3}-1/4\,{x}^{4}+1/5\,{x}^{5} 
 
 26
 
 
 
 % produz o código fortran da expressão simbólica f 
 » fortran(f) 
 ans = t0 = x-x**2/2+x**3/3-x**4/4+x**5/5 
 
 
15.13.INSTRUÇÃO DIGITS 
O Matlab se baseia exclusivamente na aritmética de ponto flutuante do computador para o 
processamento dos números. Embora sejam rápidas, as operações de ponto flutuante são limitadas pelo 
número máximo de dígitos e podem introduzir erros de arredondamento em cada operação; elas não 
podem produzir resultados exatos. 
A precisão relativa das operações aritméticas individuais em Matlab é cerca de 16 dígitos de 
precisão a menos que se redefina o número de dígitos (n) pela instrução digits(n). A conseqüência do 
aumento do número de dígitos é o aumento do tempo total de processamento, embora a visualização 
dos resultados não seja alterada. A instrução vpa permite visualizar os dados na precisão desejada. 
 
 
 
 
 
 
» format long » vpa('pi') % precisão digits (20) 
» pi ans =3.1415926535897932385 
ans = 3.14159265358979 
» vpa('pi',30) % apresenta o resultado com 30 dígitos » digits 
 ans =3.14159265358979323846264338328 Digits = 16 
 
» A=sym('[1/4,log(sqrt(2));exp(1),3/7]'); » vpa('pi') % precisão digits 
(16) » vpa(A,8) ans =3.141592653589793 ans = [ .250000000000000000, .346573590279972655]» digits(20) [ 2.71828182845904524, .428571428571428571]
 
15.14.RESOLUÇÃO DE EQUAÇÕES 
O Matlab permite resolver equações simbólicas usando-se ferramentas simbólicas. Se a 
expressão não for uma equação (não contiver um sinal de igualdade), a função solve define a 
expressão simbólica como sendo igual a zero antes de resolvê-la. 
 
 
 
 
 
 
 
» solve('a*x^2+b*x+c') % raízes da equação » e1='d+(c+u)/2=v'; e2='u=c+d+v-10'; 
ans =[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))] » e3='v+d=u+c/4'; e4='v+u=c+8*d-1'; 
 [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))] 
 » [x1,x2,x3,x4]=solve(e1,e2,e3,e4,'u,c,d,v') » solve('a*x^2+b*x+c', 'b') % resolve para b x1 =8 ans =-(a*x^2+c)/x x2 =3 
 x3 =16 » f=solve('cos(x)=sin(x)') x4 =15 f =1/4*pi 
 
 
15.15.EQUAÇÕES DIFERENCIAIS 
A função dsolve encontra soluções simbólicas para equações diferenciais ordinárias. A sintaxe 
de dsolve é um pouco diferente da maioria das outras funções. As equações são definidas usando-se a 
letra D para significar derivação e D2 e D3 etc. para significar derivações repetidas. 
Quaisquer letras após D maiúsculo são consideradas variável dependente. A equação d2y/dx=0 é 
representada pela expressão simbólica D2y=0. A variável independente pode ser especificada ou então 
será tomada pelo padrão seguindo-se a regra do symvar. 
 
 
 
 
 
 27
 
 
 
 
 
» dsolve('Dy=1+y^2') % encontra a solução geral para dy/dt=1+y2 
 ans = tan(t+C1) % C1 é uma constante de integração 
 
» y=dsolve('Dy=1+y^2','y(0)=1') % adiciona uma condição incial 
y =tan(t+1/4*pi) 
 
» dsolve('Dy=1+y^2','y(0)=1','v') % especifica a variável independente dy/dv 
 ans =tan(v+1/4*pi) 
 
 
15.15.1.EQUAÇÕES DIFERENCIAIS DE SEGUNDA ORDEM 
Considere a equação de segunda ordem 2)0(y,0)0(
dt
dy,y)t2cos(
dt
yd2 ==−= 
 
 
 
 
 
 
» y=dsolve('D2y=cos(2*t)-y','Dy(0)=0','y(0)=1') 
 y =(1/2*sin(t)+1/6*sin(3*t))*sin(t)+(1/6*cos(3*t)-1/2*cos(t))*cos(t)+4/3*cos(t) 
 
 » y=simple(y) 
 y =-1/3*cos(2*t)+4/3*cos(t) 
Considere a equação de segunda ordem 1)1(y,0)0(y,0y3
dt
dy2
dt
yd
2
2
===−− 
 
 » y=dsolve('D2y-2*Dy-3*y=0','y(0)=0','y(1)=1') 
 y = 1/(exp(3)-exp(-1))*exp(3*t)-1/(exp(3)-exp(-1))*exp(-t) 
 
 » y=simple(y) 
 y =(exp(3*t)-exp(-t))/(exp(3)-exp(-1)) » pretty(y) exp(3 t) - exp(-t) 
 ----------------------------- 
 exp(3) - exp(-1) 
 
15.15.2.EQUAÇÕES DIFERENCIAIS MÚLTIPLAS 
1)0(g,0)0(f,g3f4
dt
dg,g4f3
dt
df ==+−=+= Î 
»[f,g]=dsolve('Df=3*f+4*g', 'Dg=-4*f+3*g', 'f(0)=0, g(0)=1') 
 f =exp(3*t)*sin(4*t) 
 
g =exp(3*t)*cos(4*t) 
3
2dt
dy,2
2
y),tcos(4y
dt
yd
2
2
−=⎟⎠
⎞⎜⎝
⎛ π=⎟⎠
⎞⎜⎝
⎛ π=+ Î 
 » y=dsolve('D2y+y=4*cos(t)','y(pi/2)=2*pi','Dy(pi/2)=-3') 
 y =(2*sin(t)*cos(t)+2*t)*sin(t)-2*sin(t)^2*cos(t)+pi*sin(t)+5*cos(t) 
 
 » y=simple(y) 
 y =2*sin(t)*t+pi*sin(t)+5*cos(t) 
 
 
 
15.16.MATRIZES SIMBÓLICAS 
Matrizes e vetores simbólicos são conjuntos cujos elementos são expressões simbólicas. 
 
 
 
 
 
 28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
» A=sym('[a b c;b c a;c a b]') % matriz 
simbólica 
» H=sym(hilb(3)) % matriz simbólica de Hilbert 
 H = [ 1, 1/2, 1/3] 
 A =[ a, b, c] [ 1/2, 1/3, 1/4] 
 [ b, c, a] [ 1/3, 1/4, 1/5] 
 [ c, a, b] » J=inv(H) % inversa da matriz simbólica 
 » determ(A) % determinante J =[ 9, -36, 30] 
 ans =3*a*c*b-a^3-b^3-c^3 [ -36, 192, -180] 
 [ 30, -180, 180] 
» F=sym('[1/2,1/4;1/4,1/2]'); » jordan(F) 
» eigensys(F) % autovalores ans =[ 1/4, 0] 
 ans =[ 1/4] [ 0, 3/4] 
 [ 3/4] » G=symop(F,'+','t') % soma t à diagonal de F 
 G =[ 1/2+t, 1/4+t] 
» [V,E]=eigensys(F) %autovalores E e 
autovetores B 
 [ 1/4+t, 1/2+t] 
 V = [ -1, 1] E = [ 1/4, 0] 
 [ 1, 1] [ 0, 3/4] 
15.16.1.RESOLUÇÃO DE SISTEMAS LINEARES 
 
Considere o sistema: 
⎪⎪
⎪
⎭
⎪⎪
⎪
⎬
⎫
−=+−−
−=−−−
=++−−
=−++
1vd8cu
10vdcu
0vd
2
cu
0vd
2
c
2
u
Î 
 
 
% matriz dos coeficientes 
» A=sym('[1/2,1/2,1,-1;-1,-1/4,1,1;1,-1,-1,-1;1,-1,-8,1]'); 
 
» B=sym('[0;0;-10;-1]'); 
 
» X=linsolve(A,B) % resolve o sistema simbólico A*X=B 
 X =[ 16] 
 [ 8] 
 [ 3] 
 [ 15] 
15.17.TRANSFORMADAS 
15.17.1.TRANSFORMADA DE LAPLACE 
 
 
 
 
A função laplace(f) transforma f(t), no domínio 
do tempo, em F(s), no domínio s. A expressão pode 
ser novamente transformada no domínio do tempo 
usando-se o inverso da transformada de Laplace, 
» f=sym('exp(-a*t)*cos(w*t)'); 
» F=laplace(f) 
 F =(s+a)/((s+a)^2+w^2) 
» ilaplace(F) 
 ans =exp(-a*t)*cos(w*t) 
 
15.17.2.TRANSFORMADA DE FOURIER 
 
 
 
 
 
A transformada de Fourier (fourier(f)) e sua 
inversa (ifourier(f)) são utilizadas para determinar as 
características de um sistema em ambos os domínios de 
tempo e freqüência 
» F=fourier(f) 
 F =-1/2*i*pi^(1/2)*w*exp(-1/4*w^2)» ifourier(F) 
ans =1/2*4^(1/2)*x*exp(-x^2) 
15.17.3.TRANSFORMADA Z 
 » f=sym('2^n/7-(-5)^n/7'); 
 
 
 
 
 
Utilizada para analisar sistemas de tempo 
discreto, sendo z um número complexo. A 
transformada z e a transformada z inversa são obtidas 
usando-se as funções ztrans(f) e iztrans(f). 
» G=ztrans(f) 
 G =1/14*z/(1/2*z-1)+1/35*z/(-1/5*z-1) 
» simple(G) 
ans =z/(z-2)/(z+5) 
» iztrans(G) 
 ans =1/7*2^n-1/7*(-5)^n 
 
 
 
 
 
 
 29
 
15.18.SOMAS DE RIEMANN 
A integral de uma função pode representar a área sob a curva da função e ser aproximada em um intervalo 
fechado usando-se as somas de Riemann. O Matlab possui uma ferramenta interativa que lhe permite observar 
aproximações diferentes da integral usando essa técnica. A forma da função é rsums(f), onde f é uma função 
simbólica. Ela fará aparecer uma janela gráfica, em que a área sob a curva da função de 0 a 1 será aproximada 
por 10 retângulos. O título exibe a função e a área total dos retângulos calculada 
 
 
 
 
 
 
 
 
 
 
 
. Sob o gráfico está um deslizador horizontal que lhe permite 
mudar o número de retângulos usados para aproximar a curva de 
2 a 256 usando o mouse
 
» f=sym('10*x*exp(-5*x^2)'); 
 
» ezplot(f) 
 
» vpa(int(f,0,1),6) % calcula a integral 
 ans =.993262 
 
% aproximação de Riemann de 0 a 1 
»rsums(f) 
 
15.19.CALCULADORA DE FUNÇÕES 
Esta ferramenta é uma calculadora de funções gráficas interativas, chamada funtool, que usa o clique do 
mouse para efetuar cálculos em expressões simbólicas; funtool manipula duas funções de uma variável (f(x) e 
g(x)) e traça os gráficos das duas um janelas separadas. Uma terceira janela controla a calculadora e contém as 
funções simbólicas f e g, o domínio em x dos gráficos e uma expressão ‘a’ constante que pode ser alterada 
digitando em caixas de texto. Há três linhas de teclas sob a caixa de textos, que invocam as funções simbólicas 
do MATLAB, e uma quarta linha de teclas para controlar a própria calculadora. A tecla Help fornece 
informações mais detalhadas sobre funtool. A tecla Close fecha a janela da função. 
 
15.20.HELP DA MATEMÁTICA SIMBÓLICA 
Para saber mais função simbólica consulte Help simbolic. 
 
16.TÓPICOS EXTRAS

Outros materiais