Escolar Documentos
Profissional Documentos
Cultura Documentos
As funções ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb são usadas
na resolução numérica de equações diferenciais ordinárias com valores iniciais. As mais
usadas são ode45 e ode23. Consulte o help do MATLAB para conhecer as diferenças e
semelhanças entre as diversas funções.
1.1.1 Exemplo
d2 y1 dy1
= −10 − 10 y1 (1)
dx2 dx
A equação (1) pode ser dividida no sistema de duas equações ordinárias de 1a ordem
(2).
dy1
= −10 y1 − y2
dx (2)
dy2
= 10 y1
dx
Código no MATLAB (dentro de um arquivo chamado diferenciais.m):
function diferenciais
intervalox = [0 2];
y0 = [4 -2];
[x,y]=ode23(@sistema,intervalox,y0);
1
figure
plot(x,y)
>> plot(x,y)
1.2.1 Exemplo 1
>> y = dsolve(’Dy=1+y^2’,’y(0)=1’)
2
4
−1
−2
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Resultado:
y =
tan(t+1/4*pi)
1.2.2 Exemplo 2
>> x = dsolve(’(Dx)^2+x^2=1’,’x(0)=0’)
Resultado:
x =
[ -sin(t)] [ sin(t)]
1.2.3 Exemplo 3
Resultado:
y=(1/2*sin(x)+1/6*sin(3*x))*sin(x)+(1/6*cos(3*x)-1/2*cos(x))*cos(x)+
4/3*cos(x)
ans =
-2/3*cos(x)^2+4/3*cos(x)+1/3
3
2 Interpolação de dados
Uma das funções para interpolação de dados disponı́vel no MATLAB é interp1. Existe
também a função spline, que é a mais conhecida de todas. Entretanto, spline é uma
subfunção de interp1.
1
Exemplo de utilização (dentro de um arquivo .m):
figure(1);
plot(x,y,’*’); %Plota a funçao nos pontos de amostragem
hold on
fplot(’sin(x).*sin(2*x)’,[0 2*pi]); %Plota a funçao original
%Metodos de interpolaçao
% ’nearest’ - nearest neighbor interpolation
% ’linear’ - linear interpolation
% ’spline’ - piecewise cubic spline interpolation (SPLINE)
% ’pchip’ - piecewise cubic Hermite interpolation (PCHIP)
% ’cubic’ - same as ’pchip’
% ’v5cubic’ - the cubic interpolation from MATLAB 5, which does not
% extrapolate and uses ’spline’ if X is not equally spaced.
subplot(3,1,1); yi = interp1(x,y,xi,’nearest’);
plot(x,y,’o’,xi,yi)
1O exemplo é autoexplicativo.
4
0.8
0.6
0.4
0.2
−0.2
−0.4
−0.6
−0.8
0 1 2 3 4 5 6
subplot(3,1,3); yi = interp1(x,y,xi,’v5cubic’);
plot(x,y,’o’,xi,yi)
3 Ajuste polinomial
5
1
0.5
−0.5
−1
0 1 2 3 4 5 6 7
0.5
−0.5
−1
0 1 2 3 4 5 6 7
0.5
−0.5
−1
0 1 2 3 4 5 6 7
0.5
−0.5
−1
0 1 2 3 4 5 6 7
0.5
−0.5
−1
0 1 2 3 4 5 6 7
0.5
−0.5
−1
0 1 2 3 4 5 6 7
6
A função polyfit efetua o ajuste dos coeficientes da um polinômio de qualquer grau.
A função polyfit recebe dois vetores de entrada (abscissas e ordenadas) e um número que
representa o grau do polinômio. A saı́da da função é um vetor com coeficientes.
Para verificar o resultado do ajuste usa-se a função polyval, que resolve o polinômio
em um ponto desejado ou em vários pontos desejados, caso a entrada de polyval seja
um vetor de pontos.
2
Exemplo de utilização (dentro de um arquivo .m):
figure(1);
subplot(3,1,1);
subplot(3,1,2);
7
fplot(’sin(x) + cos(2*x)’,[0 2*pi]); %Plota a funçao original
x = 0:0.5:2*pi; %Pontos de amostragem de dados
y = sin(x) + cos(2*x); %Valor da funçao nos pontos
%amostrados
hold on %Congela o grafico
plot(x,y,’*’); %Plota a funçao nos pontos
%amostrados
subplot(3,1,3);
8
2
−1
−2
0 1 2 3 4 5 6
−2
0 1 2 3 4 5 6
−2
−4
0 1 2 3 4 5 6
4 Integração
Z
x2 + 2x + 3 dx (3)
>> f = ’x^2+2*x+3’
f =
x^2+2*x+3
>> int(f)
9
ans =
1/3*x^3+x^2+3*x
Z 10
x2 + 2x + 3 dx (4)
0
>> f = ’x^2+2*x+3’
f =
x^2+2*x+3
>> int(f,0,10)
ans =
1390/3
>> double(ans)
ans =
463.3333
Pode-se efetuar a integração numérica de dois vetores de dados que definem um con-
junto de pontos coordenados no plano. Seja X o vetor contendo as abscissas e Y o vetor
contendo as ordenadas da função sen(x), definidos da seguinte forma:
>> X = 0:pi/20:pi;
>> Y = sin(X);
10
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2 2.5 3 3.5
>> trapz(X,Y)
ans =
1.9959
11