Click here to load reader
View
292
Download
0
Embed Size (px)
DESCRIPTION
2 Programas que calculam o valor da integral definida em um intervalo [a,b], sendo que um utiliza o método de Simpson e outro o método dos Trapézos. Ambos utilizam a interpolação por Lagrange para gerar os gráficos da curva da função integrada a menos da constante de integração.
Citation preview
Fernando Henrique Gomes Zucatelli 1
sábado – 27/11/2010 – 19:33
1. CÁLCULO NUMÉRICO
Valor de ( )
b
a
I f x dx= ∫ e gráfico de f(x) e de ( ) ( )
x
a
G x f t dt= ∫ , usando método dos trapézios, Simpson e
Interpolação de Lagrange. function I = Integral_Trapezios_Trabalho_4(a,b,h,f)
% f = inline('função');
% a,b: pt inicial,final do intervalo
% h: tamanho do intervalo
format long;
X = [a:h:b]; % vetor c/ pontos do intervalo para calcular a integral
XI = [a:(h/4):b]; % vetor c/ 1/4 do intervalo para usar na interpolação
Y = f(X);
n = length(X);
for i = 2:n
IX (i) = ( (X(i) - X(i-1))/2 ) * ( Y(i) + Y(i-1) );
end
I = sum (IX);
IX2 = IX; %Vetor para criar o gráfico
for i = 2:n
IX2 (i) = IX2(i) + IX2(i-1); %somando as diferenças entre os intervalos
end
for int = 1:length(XI),
Xint = XI(int);
YI2(int) = LagrangeINT(X,IX2,Xint);
end
plot (X,Y,'r', XI,YI2,'b', X,IX2,'g*'); grid; xlabel('x'); ylabel('y');
legend('f(x)', 'Int(f(x))dx +/- cte', 'pts IX2');
end
function I = Integral_Simpson_Trabalho_4(a,b,h,f)
%f = inline('exp(-x.^2)');
% a,b: pt. inicial final do intervalo
% h: tamanho do intervalo
format long;
X = [a:h:b]; % vetor c/ pontos do intervalo para calcular a integral
XI = [a:(h/4):b]; % vetor c/ 1/4 do intervalo para usar na interpolação
Y = f(X);
n = length(X)-1;
m = length(Y);
if (n+1) == m
if mod(n,2) == 0
for i = 1:(n/2)
IX (i) = ( ((X(2*i)-X(2*i-1)))/3 * (Y(2*i-1) + 4*Y(2*i) + Y(2*i+1)) );
end
I = sum (IX);
IX2 = IX; %Vetor para criar o gráfico
for i = 2:(n/2)
IX2 (i) = IX2(i) + IX2(i-1); %somando as diferenças entre os intervalos
end
for i = 1:n/2
X2(i) = X(2*i); %X2 deve ter a mesma dimensão de IX2
end
for int = 1:length(XI),
Xint = XI(int);
YI2(int) = LagrangeINT(X2,IX2,Xint);
end
plot (X,Y,'r', XI,YI2,'b', X2,IX2,'g*'); grid; xlabel('x'); ylabel('y');
legend('f(x)', 'Int(f(x))dx +/- cte', 'pts IX2');
else
fprintf('n pts do intervalo deve ser ímpar');
end
else
fprintf('Vetores com tamanhos diferentes');
end
end
Fernando Henrique Gomes Zucatelli 2
sábado – 27/11/2010 – 19:33
function Yint = LagrangeINT(x,y,Xint)
%x Vetor com as coordenadas x dos pontos dados
%y Vetor com as coordenadas y dos pontos dados
%Xint - A coordenada x do ponto a ser interpolado
%Variável de saída: Yint - O valor interpolado de Xint
n = length(x);
for i = 1:n,
L(i) = 1;
for j = 1:n,
if j ~= i,
L(i) = L(i)*(Xint-x(j))/(x(i)-x(j));
end
end
end
Yint = y*(L');
end
Resultados
Figura 1: (a,b,h,f) = (-3,3,0.5, inline('sinh(x)') ); Itrap = -8.881784197001252e-016 ≅ 0. Isimp = 0;
Figura 2: (a,b,h,f) = (0,10,1, inline('sin(x)') ); Itrap = 1.68319892666270. Isimp = 1.85064715255191;
Figura 3: (a,b,h,f) = (-2,2,0.5, inline('f(t)') ); Itrap = 0.63150622874050. Isimp = 0.63212521277458.
Valor exato calculado manipulando por ser diferencial exata = 1 – e-1
≅ 0.63212055882856.
Trapézios Simpson Figura 1 – Gráfico da função sinh( )x gerado por Matlab.
Trapézios Simpson Figura 2 – Gráfico da função sin( )x gerado por Matlab.
Trapézios Simpson
Figura 3 – Gráfico da função 4
3 4 ( 2 1)(1 )( ) 4.(2 1).(1 ) 2(1 )
t tf t t t t e
− − = − − − + − gerado por Matlab.