Você está na página 1de 23

UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL-REI - UFSJ

DEPARTAMENTO DE ENGENHARIA ELÉTRICA - DEPEL

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA - PPGEL

3ª LISTA DE EXERCÍCIOS DE MÉTODOS NUMÉRICOS

Aluno: Jhonathan Campos Resende

Matrícula: 2015220230009
Prof. Leonidas Chaves de Resende

São João del-Rei, 21 de maio de 2015


1ª Questão

Considere a seguinte tabela que relaciona a intensidade de corrente (I) medida


num circuito elétrico em função da tensão (U ) , por meio de I =f (U) :

U (V ) 1,00 1,50 1,70 2,00 2,50


I ( A) 0,11 0,14 0,18 0,30 0,35

a) Construa um polinômio interpolador de Newton de 2º grau para estimar o valor da


intensidade de corrente quando a tensão é de 1,9V;
x−x
x−x
x−x
(¿¿ 0)
( ¿¿ 0)… ¿ M n+1
b) Sabendo que: , onde é o maior valor em módulo das
M n+1
(¿¿ 0)¿
( n+1 ) !
¿
|En (x )|≤¿

diferenças divididas de ordem ( n+1 ) , estime o erro de truncamento cometido em

“a)”.
Solução:
A necessidade de obter um valor intermediário que não consta de uma tabela ocorre
comumente. Dados experimentais, tabelas estatísticas e de funções complexas são

exemplos dessa situação. Interpolar uma função f ( x) consiste em aproximar

essa função por uma outra função g( x) , escolhida entre uma classe de funções

definida a priori e que satisfaça algumas propriedades. Considerando que os


polinômios são as funções mais simples e estudadas, então eles são os mais
utilizados para determinar esta relação. Um polinômio construído com o intuito de

aproximar uma função é denominado polinômio interpolador. A função g(x) é

então usada em substituição à função f (x) .1

pn ( x) f (x) , em x0 , x1, … , xn n+1


a) O polinômio que interpola , pontos

distintos, é dado por:

1 CAMPOS FILHO, Frederico Ferreira. Algoritmos numéricos. 2.ed. Rio de Janeiro: LTC, 2012. 428 p.
pn ( x )=d 0+ d 1 ( x−x 0 ) + d 2 ( x−x 0 ) ( x−x 1 ) +…+d n ( x−x 0 ) ( x−x 1 ) … ( x−x n−1)

dk k =0,1, … ,n
Onde os coeficientes , acima, são diferenças divididas de ordem

x
f (¿¿ j )
k entre os pontos j=0,1,… ,k .
xj ,¿ ,
¿

Para um polinômio interpolador de Newton de grau 2, precisamos somente de 3


pontos, tal que:
U(V) 1,70 2,00 2,50
I(A) 0,18 0,30 0,35

O polinômio p2 ( x ) que interpola I ( A) nos pontos dados é:

x1 , x
x2 , x1 , x
f [¿¿ 0 ]( x−x 0 )( x −x1 )
f [¿¿ 0] ( x−x 0 ) +¿
p2 ( x )=f ( x 0 ) +¿

Dessa forma, a tabela de diferenças divididas é:


U(V) Ordem 0 Ordem 1 Ordem 2
1,70 0,18
0,40
2,00 0,30 -0,375
0,10
2,50 0,35

Portanto, o polinômio interpolador de Newton de 2º grau é dado por:


p2 ( x )=0,18+ 0,40 ( x−1,70 )−0,375 ( x−1,70 ) ( x−2,00 )

Agrupando os termos semelhantes, temos:


p2 ( x )=−0,375 x 2+1,7875 x−1,775

Para U ( V )=1,9 V o polinômio tem como resposta:

p2 ( 1,9 ) =0,2675 A
Portanto, quando U=1,9 V , estima-se que a corrente seja I =0,2675 A .

x−x
x−x
x−x
(¿¿ 0)
( ¿¿ 0)… ¿ M n+1
b) O erro de truncamento é dado por: , onde é o maior valor
M n+1
(¿¿ 0)¿
( n+1 ) !
¿
|En (x )|≤¿

em módulo das diferenças divididas de ordem ( n+1 ) . Dessa forma, para calcular o

erro, torna-se necessário obter o valor da diferença dividida de ordem 3. A tabela de


diferenças divididas até a ordem 3ª ordem é dada por:

U(V) Ordem 0 Ordem 1 Ordem 2 Ordem 3


1,00 0,11
0,06
1,50 0,14 0,20
0,20 0,20
1,70 0,18 0,40
0,40 -0,775
2,00 0,30 -0,375
0,10
2,50 0,35

M
Para |E2 ( x )|≤|( x−x 0 ) ( x−x 1 ) ( x−x 2)| 3 !3 , onde
M3
é o maior valor em módulo das

M 3=0,275
diferenças divididas de ordem 3, ou seja, , a inequação nos fornece a

seguinte estimação de erro:


|E2 ( 1,9 )|≤0,00155
Para fins de comparação, o gráfico ilustrado na Figura 1 relaciona os dados
fornecidos, plotados ponto a ponto, e a resposta obtida pelo polinômio de Newton de
2º grau.
Figura 1 - Gráfico comparativo entre o polinômio interpolador e os dados fornecidos
O algoritmo mostrado abaixo, desenvolvido no software Matlab, realiza as operações
as operações mostradas durante o desenvolvimento desse exercício, bem como
compara graficamente os dados fornecidos e o polinômio interpolador de Newton.
clc
clear all
close all

%% Dados de entrada
U=[1 1.5 1.7 2 2.5]; % Tensão
I=[0.11 0.14 0.18 0.30 0.35]; % Corrente

%% Tabela de diferenças divididas


Tab=[U' I'];
r=length(U);
s=1;

for j=1:r
k=0;
for i=s:r-1
k=k+1;
Num=Tab(i+1,j+1)-Tab(i,j+1);
Den=Tab(i+1,1)-Tab(k,1);
Tab(i+1,j+2)=Num/Den;
end
s=s+1;
end

%% Cálculo dos coeficientes do polinômio interpolador


x0=Tab(3,1);
x1=Tab(4,1);
a=Tab(3,2);
b=Tab(4,3);
c=Tab(5,4);
syms x;
P=a+b*(x-x0)+c*(x-x0)*(x-x1); % Polinômio interpolador de Newton
y=subs(P,x,1.9);

disp(['O valor da intensidade de corrente quando a tensão é de 1,9V é:


',num2str(y),'A.'])
disp(' ')

%% Erro de truncamento
n=2; % Grau do polinômio interpolador
M=max(abs(Tab(:,n+2+1)));
E=(abs((1.9-1.7)*(1.9-2)*(1.9-2.5))*M)/factorial(n+1);

disp(['O erro de truncamento cometido é: ',num2str(E),'.'])


disp(' ')

%% Comparando dados fornecidos e polinômio interpolador


plot(U,I) % Plotando gráfico de UxI
title('Comparação: Dados fornecidos x Polinômio Interpolador'); % Definindo
o título do gráfico
xlabel('Tensão[V]'); % Nomeando o eixo das ordenadas
ylabel('Corrente[A]'); % Nomeando o eixo das abscissas
grid on
hold on

t = linspace(1,2.5,1000);
PN=-0.375.*t.^2+1.7875.*t-1.775;
plot(t,PN,'r'); % Plotando polinômio interpolador de Newton

2ª Questão
A velocidade do som na água varia com a temperatura de acordo com a tabela a
seguir:
Temp. (ºC) 86,0 93,3 98,9 104,4 110,0
Vel. (m/s) 1552 1548 1544 1538 1532

Estime a velocidade do som na água a uma temperatura de 100 ºC.


Solução:
Utilizando-se um polinômio interpolador de grau 2 para estimar a velocidade do som
na água a uma temperatura de 100 ºC, é necessário utilizar 3 dos pontos dados. Os
pontos utilizados são mostrados na tabela a seguir.
Temp. (ºC) 98,9 104,4 110,0
Vel. (m/s) 1544 1538 1532

A tabela de diferenças divididas usando tais pontos é mostrada abaixo:


Temp.
Ordem 0 Ordem 1 Ordem 2
(°C)
98,9 1544
-1,091
104,4 0,00175
1538
5
-1,071
110 1532

Assim, o polinômio interpolador obtido é dado por:


p2 ( x )=1544−1,091 ( x−98,9 ) +0,001755 ( x−98,9 )( x−104,4 )

Agrupando os termos semelhantes, temos:


p2 ( x )=0,001755 x 2−1,4478 x+ 1670,0206

Para x=100 ℃ , obtém-se:

m
p2 ( 100 ) =1542,79
s

Portanto, para uma temperatura de 100 ℃ , estima-se que a velocidade do som na

m
1542,79
água seja de s .

Para fins de comparação, o gráfico ilustrado na Figura 2 relaciona os dados


fornecidos, plotados ponto a ponto, e a resposta obtida pelo polinômio de Newton de
2º grau.

Figura 2 - Gráfico comparativo entre o polinômio interpolador e os dados fornecidos


O algoritmo mostrado abaixo, desenvolvido no software Matlab, realiza as operações
as operações mostradas durante o desenvolvimento desse exercício, bem como
compara graficamente os dados fornecidos e o polinômio interpolador de Newton.
clc
clear all
close all

%% Dados de entrada
Temp=[86 93.3 98.9 104.4 110]; % Temperatura
Vel=[1552 1548 1544 1538 1532];% Velocidade

%% Tabela de diferenças divididas


Tab=[Temp' Vel'];
r=length(Temp);
s=1;
for j=1:r
k=0;
for i=s:r-1
k=k+1;
Num=Tab(i+1,j+1)-Tab(i,j+1);
Den=Tab(i+1,1)-Tab(k,1);
Tab(i+1,j+2)=Num/Den;
end
s=s+1;
end

%% Cálculo dos coeficientes do polinômio interpolador


x0=Tab(3,1);
x1=Tab(4,1);
a=Tab(3,2);
b=Tab(4,3);
c=Tab(5,4);
syms x;
P=a+b*(x-x0)+c*(x-x0)*(x-x1); % Polinômio interpolador de Newton
y=subs(P,x,100);

disp(['A velocidade do som na água a uma temperatura de 100 ºC é:


',num2str(y),'m/s.'])
disp(' ')

%% Erro de truncamento
n=2; % Grau do polinômio interpolador
M=max(abs(Tab(:,n+2+1)));
E=(abs((1.9-1.7)*(1.9-2)*(1.9-2.5))*M)/factorial(n+1);

disp(['O erro de truncamento cometido é: ',num2str(E),'.'])


disp(' ')

%% Comparando dados fornecidos e polinômio interpolador


plot(Temp,Vel) % Plotando gráfico de UxI
title('Comparação: Dados fornecidos x Polinômio Interpolador'); % Definindo
o título do gráfico
xlabel('Temperatura[ºC]'); % Nomeando o eixo das ordenadas
ylabel('Velocidade[m/s]'); % Nomeando o eixo das abscissas
grid on
hold on
t = linspace(86,110,1000);
PN=0.001755.*t.^2-1.4478.*t+1670.0206;
plot(t,PN,'r'); % Plotando polinômio interpolador de Newton

3ª Questão
A curva de carga típica de uma cidade é dada pela figura:

Sejam as medidas de potência a cada hora:


Hora MW Hora MW Hora MW Hora MW
1 30 7 40 13 42 19 39
2 28 8 39 14 38 20 45
3 29,8 9 33 15 34 21 50
4 32 10 32,5 16 30 22 44
5 33 11 31 17 29 23 40
6 38 12 39 18 31 24 30

Estime o consumo de energia diário dessa cidade utilizando:


a) Trapézio Composto;
b) Primeira Regra de Simpson Composta;
c) Segunda Regra de Simpson Composta;
d) Quadratura Gaussiana;
e) Compare os resultados.

Solução:
No intuito de comparar os métodos apresentados a seguir, foi considerado que a
potência na hora zero é igual à potência na hora 24, ou seja, 30MW, pois o número
de subintervalos no Método de Simpson deve ser par para a primeira regra
composta e um múltiplo de 3 para a segunda regra composta.
A figura 3 mostra a curva de carga típica da cidade.

Figura 3 - Curva de carga típica da cidade


Esse gráfico foi gerado através do software Matlab, usando interpolação linear. A
rotina utilizada para tal é mostrada abaixo.
clear all
close all
clc

%% Dados de entrada
Pot=[30 30 28 29.8 32 33 38 40 39 33 32.5 31 39 42 38 34 30 29 31 39 45 50
44 40 30]; % Potências
Hora=0:1:24; % Hora

%% Plotanto gráfico da curva de carga típica da cidade


plot(Hora,Pot)
title('Curva de carga típica de uma cidade'); % Definindo o título do
gráfico
xlabel('Hora [h]'); % Nomeando o eixo das ordenadas
ylabel('Potência [MW]'); % Nomeando o eixo das abscissas
grid on
hold on

a) O algoritmo desenvolvido no Matlab para estimar o consumo de energia diário


nessa cidade utilizando a regra dos trapézios composta é mostrado a seguir.
clear all
close all
clc

%% Dados de entrada
Pot=[30 30 28 29.8 32 33 38 40 39 33 32.5 31 39 42 38 34 30 29 31 39 45 50
44 40 30]; % Potências
Hora=0:1:24; % Hora

%% Regra dos Trapézios Composta


R=0;
Soma=0;
n=length(Pot); % Número de intervalos da função
h=1; % Passo de integração

for i=1:n
if (i==1||i==n)
Soma=Soma+Pot(i);
else
Soma=Soma+2*Pot(i);
end
end
R=(h/2)*Soma;

%% Imprimindo resultados
disp(['A estimativa de consumo de energia diário dessa cidade utilizando a
Regra dos Trapézios Composta é: ',num2str(R),' MW.'])
disp(' ')

A regra dos trapézios composta fornece como resultado um consumo de energia


diário de 857,3000 MW.

b) O algoritmo desenvolvido no Matlab para estimar o consumo de energia diário


nessa cidade utilizando a primeira regra de Simpson composta é mostrado a seguir.
clear all
close all
clc

%% Dados de entrada
Pot=[30 30 28 29.8 32 33 38 40 39 33 32.5 31 39 42 38 34 30 29 31 39 45 50
44 40 30]; % Potências
Hora=0:1:24; % Hora

%% Primeira Regra de Simpson Composta


R=0;
Soma=0;
n=length(Pot); % Número de intervalos da função
h=1; % Passo de integração

for i=1:n
if (i==1||i==n)
Soma=Soma+Pot(i);
else
k=mod(i,2); % Retorna 0 (ímpar) ou 1 (par)
switch k
case 0
Soma=Soma+4*Pot(i);
case 1
Soma=Soma+2*Pot(i);
end
end
end
R=(h/3)*Soma;

disp(['A estimativa de consumo de energia diário dessa cidade utilizando a


Primeira Regra de Simpson Composta é: ',num2str(R),' MW.'])
disp(' ')

A primeira regra de Simpson composta fornece como resultado um consumo de


energia diário de 858,7333 MW.

c) O algoritmo desenvolvido no Matlab para estimar o consumo de energia diário


nessa cidade utilizando a segunda regra de Simpson composta é mostrado a seguir.
clear all
close all
clc

%% Dados de entrada
Pot=[30 30 28 29.8 32 33 38 40 39 33 32.5 31 39 42 38 34 30 29 31 39 45 50
44 40 30]; % Potências
Hora=0:1:24; % Hora

%% Segunda Regra de Simpson Composta


R=0;
Soma=0;
j=0;
n=length(Pot); % Número de intervalos da função
h=1; % Passo de integração

for i=1:n
if (i==1||i==n)
Soma=Soma+Pot(i);
else
j=j+1;
if j<=2
Soma=Soma+3*Pot(i);
else
j=0;
Soma=Soma+2*Pot(i);
end
end
end
R=(3*h/8)*Soma;

disp(['A estimativa de consumo de energia diário dessa cidade utilizando a


Segunda Regra de Simpson Composta é: ',num2str(R),' MW.'])
disp(' ')

A segunda regra de Simpson composta fornece como resultado um consumo de


energia diário de 857,6625 MW.
d) Para estimar o consumo de energia diário dessa cidade utilizando Quadratura
Gaussiana, primeiramente, a partir dos dados fornecidos na tabela, calculou-se um
polinômio interpolador de Newton de 2º grau para cada subintervalo com 3 dos
pontos dados. Um polinômio gerado utilizando-se todos os pontos, apesar de passar
nos pontos de interesse, oscilaria demasiadamente, o que implicaria em um enorme
erro no cálculo do consumo de energia. Posteriormente, aplicou-se o método da
Quadratura Gaussiana para cada subintervalo. O algoritmo desenvolvido no Matlab
para estimar o consumo de energia diário nessa cidade pelo método descrito acima
é mostrado a seguir.
clear all
close all
clc

%% Dados de entrada
Pot=[30 30 28 29.8 32 33 38 40 39 33 32.5 31 39 42 38 34 30 29 31 39 45 50
44 40 30]; % Potências
Hora=0:1:24; % Hora

%% Tabela de diferenças divididas


Tab=[Hora' Pot']; % Tabela de diferenças divididas
n=length(Pot); % Número de intervalos da função
h=1; % Passo de integração
s=1;

for j=1:n-1
for i=s:n-1
Tab(i+1,j+2)=Tab(i+1,j+1)-Tab(i,j+1);
end
s=s+1;
end

%% Metodo da Quadratura Gaussiana


ns=(n-1)/2; % Número de subintervalos: (Número de Pontos - 1) dividido pelo
grau do polinômio interpolador
syms x;
R=0;

% Criando polinômio interpolador de Newton de 2º grau


for k=1:ns
Q=1;
for i=0:2
if i==0
P=Tab(2*k-1,2);
else
switch i
case 1
F= Tab(2*k,3);
Q=Q*(x-Tab(2*k-1,1));
P=P+(F*Q)/(factorial(i)*h^(i));
case 2
F=Tab(2*k+1,4);
Q=Q*(x-Tab(2*k,1));
P=P+(F*Q)/(factorial(i)*h^(i));
end
end
end

% Método da Quadratura Gaussiana para n=2


A0=1;
A1=1;
t0=-1/sqrt(3);
t1=1/sqrt(3);

% Normalizando os limites de integração (x em função de t)


a=Tab(2*k-1);
b=Tab(2*k+1);
syms t;
y=((b-a)*t)/2+(b+a)/2;
P=subs(P,'x',y);
dx=diff(y,'t');
P=P*dx;

% Valor de F(t0)
R0=A0*subs(P,'t',t0);

% Valor de F(t1)
R1=A1*subs(P,'t',t1);

R=R+R0+R1;
end

disp(['A estimativa de consumo de energia diário dessa cidade utilizando a


Quadratura Gaussiana é: ',num2str(R),' MW.'])
disp(' ')

O método da Quadratura Gaussiana fornece como resultado um consumo de


energia diário de 858,73333 MW.

e) Como a região a ser integrada possui um formato bastante complexo, o polinômio


interpolado estaria sujeito a erros consideráveis, o que poderia refletir diretamente
no resultado da integral. Entretanto, observa-se que todos os métodos forneceram
resultados relativamente próximos, fornecendo uma boa estimativa do consumo de
energia diário dessa cidade.

4ª Questão
π
2

Calcule um valor aproximado da integral I =∫ e x sen ( x ) dx com um erro de


0

truncamento não superior, em valor absoluto, a 0,01, usando:


a) A regra dos trapézios composta;
b) A primeira regra de Simpson composta.
Dados sobre o erro cometido:

| |
3
(b−a)
max|f (x)| ,
''
 Regra do Trapézio – Fórmula Composta: ET ≤ 2
12 n

a≤x ≤b ;

−( b−a )5 ( IV )
 Primeira Regra de Simpson – Fórmula Composta: ET = f (c ) ,
180 n 4

c ∈[a , b] ;

Solução:
a) O algoritmo desenvolvido no Matlab para calcular o valor aproximado da integral
dada usando a regra dos trapézios composta é mostrado a seguir.
clear all
close all
clc

%% Dados de entrada
x0=0.0; % Limite inferior de integração
xn=pi/2; % Limite superior de integração
n=30; % Número de intervalos de integração
h=(xn-x0)/n; % Passo de integração
f=@(x)exp(x)*sin(x);

%% Regra dos Trapézios Composta


R=0;

for i=1:n-1,
R=R+f(x0+i*h);
end
R=h/2*(f(x0)+2*R+f(xn));

% Imprimindo resultados
disp(['O valor aproximado da integral calculado utilizando a Regra dos
Trapézios Composta é: ',num2str(R),'.'])
disp(' ')

%% Erro de Truncamento
syms x
f=exp(x)*sin(x);
d2=diff(f,2); % calculando a derivada segunda
d21=abs(2*exp(x0)*sin(x0));
d22=abs(2*exp(xn)*sin(xn));
maior=max(d21,d22);
et=abs((h^3)/(12*n^2))*maior;

disp(['O erro de truncamento cometido utilizando a Regra dos Trapézios


Composta é: ',num2str(et),'.'])
disp(' ')

Considerando n=30 , a regra dos trapézios composta fornece o seguinte

resultado:
π
2
x
I =∫ e sen ( x ) dx=2,9061
0

com um erro de truncamento de:


ET =1,2788e-07

Observou-se que com o aumento de n , o erro de truncamento diminui.

b) O algoritmo desenvolvido no Matlab para calcular o valor aproximado da integral


dada usando a primeira regra de Simpson composta é mostrado a seguir.
clear all
close all
clc

%% Dados de entrada
x0=0.0; % Limite inferior de integração
xn=pi/2; % Limite superior de integração
n=30; % Número de intervalos de integração
h=(xn-x0)/n; % Passo de integração
f=@(x)exp(x)*sin(x);

%% Primeira Regra de Simpson Composta


Soma_Impares=0;
Soma_Pares=0;

for i=1:2:n-1,
Soma_Impares=Soma_Impares+f(x0+i*h);
end;

for i=2:2:n-2,
Soma_Pares=Soma_Pares+f(x0+i*h);
end;
R=h/3*(f(x0)+4*Soma_Impares+2*Soma_Pares+f(xn));

% Imprimindo resultados
disp(['O valor aproximado da integral calculado utilizando a Primeira Regra
de Simpson Composta é: ',num2str(R),'.'])
disp(' ')

%% Erro de Truncamento
syms x
f=exp(x)*sin(x);
d2=diff(f,4); % calculando a derivada segunda
d21=abs((-4)*exp(x0)*sin(x0));
d22=abs((-4)*exp(xn)*sin(xn));
maior=max(d21,d22);
et=abs((h^5)/(180*n^4))*maior;

disp(['O erro de truncamento cometido utilizando a Primeira Regra de


Simpson Composta é: ',num2str(et),'.'])
disp(' ')

Considerando n=30 , a primeira regra de Simpson composta fornece o seguinte

resultado:
π
2
I =∫ e x sen ( x ) dx=2,9052
0

com um erro de truncamento de:


ET =5,1938e-14

Assim como para a Regra dos Trapézios Composta, observou-se que o aumento de

n leva à diminuição do erro de truncamento. Além disso, comparando ambos os

métodos, observa-se que o erro de truncamento para a Primeira Regra de Simpson


é bem menor que para a Regra dos Trapézios Composta, para o mesmo valor de

n .

5ª Questão
As técnicas vistas para a integração numérica podem ser estendidas para a
aproximação de integrais múltiplas. Para exemplificar, seja a integral dupla.

∬ f ( x , y ) dA
R

onde R= {( x , y )|a ≤ x ≤ b , c ≤ y ≤ d } .

Supondo a integração numérica pela Primeira Regra de Simpson:


b d

R a
(
∬ f ( x , y ) dA=∫ ∫ f ( x , y ) dy
c
) dx

A integração numérica da integral ∫ f ( x , y ) dy é dada por:


c

d 5 4
k k ∂ f ( x , μ)
∫ f ( x , y ) dy = 3 [ f ( x , y 0 ) + 4 f ( x , y1 ) + f ( x , y 2 ) ] − 90 ∂ y 4
c

k y , dado por k =(d −c) /2 , y 0=c y 1=c +k


onde é o passo no eixo , ,

y 2=d μ ∈( y 0 , y 2) .
e

Substituindo na expressão acima:


b d b b b
4
k 4k k k 5 ∂ f (x , μ)
∫∫ f ( x , y ) dy dx= ∫ ( 0)
3 a
f x , y dx +
3 a
∫ ( 1 ) 3 ∫ ( 2 ) 90 ∂ y 4
f x , y dx+ f x , y dx−
a c a

Cada integral acima também pode ser calculada numericamente pela Primeira
Regra de Simpson:
b 5 4
h ∂ f (ξ , y j)
∫ f ( x , y ) dy = 3h [ f ( x0 , y j ) + 4 f ( x 1 , y j ) + f ( x 2 , y j ) ] − 90 ∂y
4
a

h x , dado por k =(b−a)/2 , x 0=a x 1=a+h


onde é o passo no eixo , ,

x 2=b
, ξ ∈( x 0 , x 2 ) e j=1,2,3 .

Resultando em:
b d

(
∫ ∫ f ( x , y ) dy
a c
) dx ≈
hk
9 {[ 0 0
f ( x , y ) + 4 f ( x1 , y 0 ) +f ( x 2 , y 0 ) ]+ 4 [ f ( x 0 , y 1 ) + 4 f ( x 1 , y 1 ) + f ( x 2 , y 1 ) ] + [ f ( x0 , y 2 ) +4

Utilizando a expressão desenvolvida acima calcule numericamente as integrais:


π
4 cos ⁡(x)

a) ∫∫ 2
[2∙ y ∙ sen ( x ) + cos ( x ) ]dy dx
0 sen( x)

1 2x

b) ∫∫ ( x 2+ y 3 )dy dx
0 x

1 2x

c) ∫∫ ( y 2 + x3 ) dy dx
0 x

Solução:
a) O algoritmo desenvolvido no Matlab para calcular o valor aproximado da integral
dada, usando a expressão desenvolvida a partir da primeira regra de Simpson no
enunciado da questão, é mostrado a seguir.
clc
clear all
close all

%% Dados de entrada
syms x y;
f=2*y*sin(x)+(cos(x))^2; % Função F(x,y)
lim_x=[0 pi/8 pi/4]; % Limites da integral em x
lim_y=[sin(x) (cos(x)+sin(x))/2 cos(x)]; % Limites da integral em y

%% Cálculo numérico da integral dada


% Calculando y0, y1 e y2 de forma simbólica
for i=1:3
f_y(i)=subs(f,'y',lim_y(i));
end

Soma=0;
% Variação de x0 em relação y0, y1, y2
for i=1:3
for j=1:3
f_x_y(j)=subs(f_y(j),'x',lim_x(i));
if (j==2)
f_x_y(j)=4*f_x_y(j);
end
end

k=subs((lim_y(3)-lim_y(1))/2,'x',lim_x(i));

if (i~=2)
Soma=Soma+k*sum(f_x_y);
else
Soma=Soma+4*k*sum(f_x_y);
end
end

h=lim_x(2);

R=(h/9)*Soma;

%% Avaliando o erro cometido


Int=int(int(f,y,lim_y(1),lim_y(3)),x,lim_x(1),lim_x(3)); % Cálculo direto
do valor da integral dada através do Matlab
Erro=100*(abs(R-Int)/abs(Int)); % Cálculo do erro relativo cometido

%% Imprimindo resultados
disp(['O valor aproximado da integral calculado utilizando a expressão dada
é: ',num2str(R),'.'])
disp(' ')
disp(['O valor da integral calculado através do Matlab é:
',num2str(eval(Int)),'.'])
disp(' ')
disp(['Portanto, o erro cometido é: ',num2str(eval(Erro)),'%.'])
disp(' ')

Essa rotina fornece o seguinte resultado:


π
4 cos ⁡(x)

∫∫ [2∙ y ∙ sen ( x ) + cos2 ( x ) ]dy dx=0,51446


0 sen( x)

com um erro relativo estimado em:


Erro=0,51011

b) O algoritmo desenvolvido no Matlab para calcular o valor aproximado da integral


dada, usando a expressão desenvolvida a partir da primeira regra de Simpson no
enunciado da questão, é mostrado a seguir.
clc
clear all
close all

%% Dados de entrada
syms x y;
f=x^2+y^3; % Função F(x,y)
lim_x=[0 0.5 1]; % Limites da integral em x
lim_y=[x 1.5*x 2*x]; % Limites da integral em y

%% Cálculo numérico da integral dada


% Calculando y0, y1 e y2 de forma simbólica
for i=1:3
f_y(i)=subs(f,'y',lim_y(i));
end

Soma=0;
% Variação de x0 em relação y0, y1, y2
for i=1:3
for j=1:3
f_x_y(j)=subs(f_y(j),'x',lim_x(i));
if (j==2)
f_x_y(j)=4*f_x_y(j);
end
end

k=subs((lim_y(3)-lim_y(1))/2,'x',lim_x(i));

if (i~=2)
Soma=Soma+k*sum(f_x_y);
else
Soma=Soma+4*k*sum(f_x_y);
end
end

h=lim_x(2);

R=(h/9)*Soma;

%% Avaliando o erro cometido


Int=int(int(f,y,lim_y(1),lim_y(3)),x,lim_x(1),lim_x(3)); % Cálculo direto
do valor da integral dada através do Matlab
Erro=100*(abs(R-Int)/abs(Int)); % Cálculo do erro relativo cometido

%% Imprimindo resultados
disp(['O valor aproximado da integral calculado utilizando a expressão dada
é: ',num2str(R),'.'])
disp(' ')
disp(['O valor da integral calculado através do Matlab é:
',num2str(eval(Int)),'.'])
disp(' ')
disp(['Portanto, o erro cometido é: ',num2str(eval(Erro)),'%.'])
disp(' ')

Essa rotina fornece o seguinte resultado:


1 2x

∫∫ ( x 2+ y 3 ) dy dx=1,0313
0 x

com um erro relativo estimado em:


Erro=3,125
c) O algoritmo desenvolvido no Matlab para calcular o valor aproximado da integral
dada, usando a expressão desenvolvida a partir da primeira regra de Simpson no
enunciado da questão, é mostrado a seguir.
clc
clear all
close all

%% Dados de entrada
syms x y;
f=y^2+x^3; % Função F(x,y)
lim_x=[0 0.5 1]; % Limites da integral em x
lim_y=[x 1.5*x 2*x]; % Limites da integral em y

%% Cálculo numérico da integral dada


% Calculando y0, y1 e y2 de forma simbólica
for i=1:3
f_y(i)=subs(f,'y',lim_y(i));
end

Soma=0;
% Variação de x0 em relação y0, y1, y2
for i=1:3
for j=1:3
f_x_y(j)=subs(f_y(j),'x',lim_x(i));
if (j==2)
f_x_y(j)=4*f_x_y(j);
end
end

k=subs((lim_y(3)-lim_y(1))/2,'x',lim_x(i));

if (i~=2)
Soma=Soma+k*sum(f_x_y);
else
Soma=Soma+4*k*sum(f_x_y);
end
end

h=lim_x(2);

R=(h/9)*Soma;

%% Avaliando o erro cometido


Int=int(int(f,y,lim_y(1),lim_y(3)),x,lim_x(1),lim_x(3)); % Cálculo direto
do valor da integral dada através do Matlab
Erro=100*(abs(R-Int)/abs(Int)); % Cálculo do erro relativo cometido

%% Imprimindo resultados
disp(['O valor aproximado da integral calculado utilizando a expressão dada
é: ',num2str(R),'.'])
disp(' ')
disp(['O valor da integral calculado através do Matlab é:
',num2str(eval(Int)),'.'])
disp(' ')
disp(['Portanto, o erro cometido é: ',num2str(eval(Erro)),'%.'])
disp(' ')
Essa rotina fornece o seguinte resultado:
1 2x

∫∫ ( y 2 + x3 ) dy dx=0,79167
0 x

com um erro relativo estimado em:


Erro=1,0638

Você também pode gostar