Você está na página 1de 5

5 FUNES

Uma classe de comandos do MATLAB no trabalha com matrizes numricas, mas com funes
matemticas. Esses comandos incluem:
Integrao numrica;
Equaes no-lineares e otimizao;
Soluo de equaes diferenciais.

As funes matemticas so representadas no MATLAB por arquivos ".m". Por exemplo, a funo
est disponvel no MATLAB como um arquivo ".m" chamado humps.m:
O grfico da funo :
>> x = -l:0.0l:2;
>> plot(x,humps(x))


5.1 Integrao Numrica

function y = humps(x)
y = l ./ ((x-.3).^2 + .0l) + 1./((x-.9).^2 + .04) - 6;
Page 1 of 5 Tutorial de Matlab - Funes
29/7/2013 http://www.del.ufms.br/tutoriais/matlab/capitulo5.htm
A rea abaixo da curva pode ser determinada atravs da integrao numrica da funo humps(x),
usando o processo chamado quadratura. Integrando a funo humps(x) de -1 a 2:
>> q = quad (humps,-1,2)
Os dois comandos do MATLAB para integrao usando quadratura so:

5.2 Equaes No-Lineares e Otimizao
Os dois comandos para equaes no-lineares e otimizao incluem:
Continuando o exemplo, a localizao do mnimo da funo humps(x) no intervalo de 0.5 a 1
obtido da seguinte maneira,
>> xm = fmin(humps,0.5,1)
>> ym = humps(xm)
E o grfico deste intervalo com o ponto de mnimo pode ser construdo:
>> x = 0.5:0.01:1
>> plot(x, humps(x), xm, ym, o)
q =
26.3450
quad Calcular integral numericamente, mtodo para baixa ordem.
quad8 Calcular integral numericamente, mtodo para alta ordem.
fmin Minimizar funo de uma varivel.
fmins Minimizar funo de vrias variveis
fzero Encontrar zero de funo de uma varivel.
xm =
0.6370
ym =
11.2528
Page 2 of 5 Tutorial de Matlab - Funes
29/7/2013 http://www.del.ufms.br/tutoriais/matlab/capitulo5.htm

Pode-se ver que a funo humps(x) apresenta dois "zeros" no intercalo de -1 a 2. A localizao do
primeiro "zero" prxima do ponto x = 0,
xzl = fzero('humps',0)
e a localizao do segundo "zero" prxima do ponto x= 1,
>> xz2=fzero('humps',1)
O grfico da funo com os dois "zeros" obtido atravs da expresso:
>> x = -1:0.01:2
>> plot(x, humps(x), xzl, humps(xzl),'*', xz2, humps(xz2), '+'), grid
xzl =
-0.1316
xz2 =
1.2995
Page 3 of 5 Tutorial de Matlab - Funes
29/7/2013 http://www.del.ufms.br/tutoriais/matlab/capitulo5.htm


5.3 Equaes Diferenciais
Os comandos do MATLAB para resolver equaes diferenciais ordinrias so:
Considere a equao diferencial de segunda ordem chamada de Equao de Van der Pol
x + (x
2
- 1) . x + x = 0

Pode-se rescrever esta equao como um sistema acoplado de equaes diferenciais de primeira
ordem
x
1
= x
1
. (1-x
2
2
) - x
2

x
2
= x
1

O primeiro passo para simular esse sistema criar um arquivo ".m" contendo essas equaes
diferenciais. Por exemplo, o arquivo volpol.m:
Para simular a equao diferencial no intervalo 0 t 20, utiliza-se o comando ode23
>> t0 = 0; tf = 20;
>> x0 = [0 0.25];
>> [t,x] = ode23('volpol', t0, tf, x0);
ode23 Resolver equao diferencial. mtodo baixa ordem.
ode23p Resolver e plotar solues.
ode45 Resolver equao diferencial. Mtodo para alta ordem
function xdot=volpol(t,x)
xdot=[0 0]
xdot(l)=x(l).*(1- x(2).^2) - x(2);
xdot(2)=x(l);
Page 4 of 5 Tutorial de Matlab - Funes
29/7/2013 http://www.del.ufms.br/tutoriais/matlab/capitulo5.htm
>> plot(t,x)

Dvidas ou sugestes, envie um e-mail para pet@del.ufms.br

Page 5 of 5 Tutorial de Matlab - Funes
29/7/2013 http://www.del.ufms.br/tutoriais/matlab/capitulo5.htm