Baixe Introdução ao MATLAB e outras Notas de estudo em PDF para Engenharia Elétrica, somente na Docsity!
INTRODUÇÃO AO MATLAB
30 e 31 de Maio de 2006.
FEIS-UNESP
Prof
a
. Dr
a
. Erica Regina Marani Daruichi Machado
Guilherme Borges Moreira
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+
Subtração a-b - 23-
Multiplicação ab * 3.140.
Divisão a÷ b / ou \ 56/8=8\
Potenciação a b^ ^ 5^
ans = 154 » 56
ans = 0.
ans =
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.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 log 10 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 =
6.4.APRESENTAÇÃO DE TEXTOS - DISP
Para apresentar textos na tela utiliza-se o comando disp. » disp('Curso de MATLAB')
Curso de MATLAB
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 -
» y(3) ans = -
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.
» 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- ans = -3 -2 -1 0
» 5*a- ans = -8 -3 2 7
» a=-4:-1, b=1: a = -4 -3 -2 - b = 1 2 3 4
» e=a.*b %multiplicação elemento por elemento e = -4 -6 -6 -
» f=a./b f = -4.0000 -1.5000 -0.6667 -0.
» 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.
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.
O conjunto começa em 10^0 , termina em 10^2 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
B=[100;213;521]
B = 100
8.2.2. OPERAÇÕES COM MATRIZES
%Divisão de matrizes » x=(A\B)’ % inv(A)*B x =-46.3333 105.6667 -21.
%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.
%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 no pseudo-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. 1.5556 -0.7778 0. -0.1111 0.2222 -0.
%Multiplicação de Matrizes » Y=A*B Y = 2089 4591 2404
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.
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=2sin(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,2y.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)')
9.7.GRÁFICOS TRIDIMENSIONAIS
Formato generalizado:
plot3(x 1 ,y 1 ,z 1 ,S 1 ,x 2 ,y 2 ,z 2 ,S 2 ,...) ,
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.
( ) 2 3 5 x^2 y^2 y 12 5
2 y 12 x^2 x e y 3
f ( x , y ) = 2 ( 1 −x ) e−^ ( + ) − − 10 −x −y e− − − − ( + ) −
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.
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. 9.56 9.48 9.30 11.2]; » n=2; » p=polyfit(x,y,n) p = -9.8108 20.1293 -0. % 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 % y = − 9. 8108 x^2 + 20. 1293 x− 0. 0317 » 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.
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. » t2 =10.2000 30.0000 30.9000 24. »[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: » t=[5 8 9 15 25 29 31 30 22 25 27 24] » hh=1:0.1: » 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. » t2=interp1(h,t,[3.2 6.5 7.1 11.7],’spline’) t2 =9.6734 30.0427 31.1755 25.
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
interp.
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
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_
comandos_
elseif condicao_
comandos_
elseif condicao_
comandos_
else if
else
Comandos
end
%%% programa ifthen_1.m
idade=input('Digite a idade: ')
if idade<=
disp ('Criança')
elseif idade>14 & idade<=
disp ('Adolescente')
elseif idade>18 & idade<=
disp ('Adulto')
else
disp('Idoso')
end
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.