2

Click here to load reader

Cálculo numérico_Cálculo da integral definida e seu gráfico por interpolação de Lagrange com os métodos dos Trapézios e de Simpson_MATLAB

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

Page 1: Cálculo numérico_Cálculo da integral definida e seu gráfico por interpolação de Lagrange com os métodos dos Trapézios e de Simpson_MATLAB

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

Page 2: Cálculo numérico_Cálculo da integral definida e seu gráfico por interpolação de Lagrange com os métodos dos Trapézios e de Simpson_MATLAB

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.