Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Introdução ao MATLAB, Notas de estudo de Engenharia Elétrica

Apostila contendo noções básicas sobre o programa MATLAB, da Faculdade de Engenharia de Ilha Solteira - UNESP

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 30/08/2009

Jacirema68
Jacirema68 🇧🇷

4.5

(123)

211 documentos

1 / 29

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
INTRODUÇÃO AO MATLAB
30 e 31 de Maio de 2006.
FEIS-UNESP
Profa. Dra. Erica Regina Marani Daruichi Machado
Guilherme Borges Moreira
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d

Pré-visualização parcial do texto

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.