raízes de equações não linearescomp.ssdi.di.fct.unl.pt/aulas/praticas/aulap3.pdf · efeito de...
TRANSCRIPT
Raízes de Equações não Lineares
Computação – 2º Semestre 2016/2017
Caso de Estudo
Efeito de Estufa
27 Março 2017 Raízes de Equações não Lineares 2
Efeito de Estufa
Tem-se observado ao longo dos anos um aumento da
pressão parcial do dióxido de carbono na atmosfera
327 Março 2017 Raízes de Equações não Lineares
Efeito de Estufa
Esta tendência pode ser aproximada por um polinómio:
em que representa a pressão parcial de (ppm)
entre 1958 e 2008 aumentou de 315 para 386 ppm (≈22%)
Problema:
Quais as consequências do aumento do no pH da água da chuva?
4
38309.342)1983(418542.1)1983(012226.0 2
2 ttpCO
2COp2CO
2COp
2COp
27 Março 2017 Raízes de Equações não Lineares
Efeito de Estufa
O tem uma importância determinante no pH da chuva
O pH é uma medida da actividade dos iões de hidrogénio
que indica a sua acidez ou alcalinidade:
em que [H+] é a concentração molar dos iões de hidrogénio
5
][HlogpH 10
2CO
27 Março 2017 Raízes de Equações não Lineares
Efeito de Estufa
A química da água pode ser modelada pelo seguinte conjunto de equações:
em que:
KH é a constante de Henry
K1, K2 e Kw são coeficientes de equilíbrio
cT (carbono total inorgânico), (bicarbonato),
(carbonato), (ião de hidrogénio) e (ião hidroxilo) são as 5 incógnitas.
6
2
][HCO][H10
-
36
1
COH pKK
][HCO
][CO][H-
3
-2
32
K ][OH][H -wK
][CO][HCO10
2-
3
-
36
2 COH
T
pKc ][H][OH][CO2][HCO0 --2
3
-
3
][HCO-
3
][CO-2
3 ][H ][OH
27 Março 2017 Raízes de Equações não Lineares
Efeito de Estufa
Problema:
Assumindo KH=101.46, K1=106.3, K2=1010.3 e Kw=1014
Comparar os resultados em 1958 em que com os de
2008 em que
Os valores de pH[2,12] só podem ser medidos com 2 decimais
Solução:
7
3152COp
3862COp
2
][HCO][H10
-
36
1
COH pKK
2][H10
][HCO6
1-
3 COH pKK
][HCO
][CO][H-
3
-2
32
K][H
][HCO][CO
-
322-
3
K
226
-
3212-
3][H10
][HCO][CO COH pK
KK
][H][H][H10
2][H10
022 26
12
6
1
w
COHCOH
KpK
KKpK
K
27 Março 2017 Raízes de Equações não Lineares
Efeito de Estufa
Problema:
Assumindo KH=101.46, K1=106.3, K2=1010.3 e Kw=1014
Comparar os resultados em 1958 em que com os de
2008 em que
Os valores de pH[2,12] só podem ser medidos com 2 decimais
Solução:
Calcular o valor de pH que é a raiz da equação
Como apenas estamos interessados em obter 2 decimais correctas:
Iterações com o método da bissecção:
8
3152COp
3862COp
][H][H][H10
2][H10
022 26
12
6
1
w
COHCOH
KpK
KKpK
K
][HlogpH 10
pH10][H
005.0tE
ntol
ab
2log
27 Março 2017 Raízes de Equações não Lineares
Efeito de Estufa
Problema:
Assumindo KH=101.46, K1=106.3, K2=1010.3 e Kw=1014
Comparar os resultados em 1958 em que com os de
2008 em que
Os valores de pH[2,12] só podem ser medidos com 2 decimais
Solução:
Calcular o valor de pH que é a raiz da equação
Como o pH varia entre 2 e 12 podemos calcular o número de
iterações que garante a precisão desejada:
>> n = log2((12-2)/0.005)
n = 10.9659
9
3152COp
3862COp
][H][H][H10
2][H10
022 26
12
6
1
w
COHCOH
KpK
KKpK
K
][HlogpH 10
pH10][H
(número iterações = 11)
27 Março 2017 Raízes de Equações não Lineares
Efeito de Estufa
Problema:
Assumindo KH=101.46, K1=106.3, K2=1010.3 e Kw=1014
Comparar os resultados em 1958 em que com os de
2008 em que
Solução:
Traduzindo a função para MATLAB:function f = fpH(pH,pCO2)
K1=10^-6.3;K2=10^-10.3;Kw=10^-14;
KH=10^-1.46;
H=10^-pH;
f=K1/(1e6*H)*KH*pCO2+2*K2*K1/(1e6*H^2)*KH*pCO2+Kw/H-H;
end
10
3152COp
3862COp
][H][H][H10
2][H10
022 26
12
6
1
w
COHCOH
KpK
KKpK
K
][HlogpH 10
pH10][H
27 Março 2017 Raízes de Equações não Lineares
Efeito de Estufa
Problema:
Assumindo KH=101.46, K1=106.3, K2=1010.3 e Kw=1014
Comparar os resultados em 1958 em que com os de
2008 em que
Solução:
Podemos calcular o pH em 1958:>> [pH1958 fx ea iter]=bisect(@fpH,2,12,1e-8,11,315)
pH1958 = 5.6279
fx = -2.7163e-008
ea = 0.08676
iter = 11
11
3152COp
3862COp
][H][H][H10
2][H10
022 26
12
6
1
w
COHCOH
KpK
KKpK
K
][HlogpH 10
pH10][H
(número iterações = 11)
(muito pequeno)
5.63 (2 decimais correctas)
27 Março 2017 Raízes de Equações não Lineares
Efeito de Estufa
Problema:
Assumindo KH=101.46, K1=106.3, K2=1010.3 e Kw=1014
Comparar os resultados em 1958 em que com os de
2008 em que
Solução:
Podemos calcular o pH em 1958:>> [pH2008 fx ea iter]=bisect(@fpH,2,12,1e-8,11,386)
pH2008 = 5.5889
fx = 2.9653e-008
ea = 0.0874
iter = 11
12
3152COp
3862COp
][H][H][H10
2][H10
022 26
12
6
1
w
COHCOH
KpK
KKpK
K
][HlogpH 10
pH10][H
5.59 (2 decimais correctas)
27 Março 2017 Raízes de Equações não Lineares
Efeito de Estufa
Problema:
Assumindo KH=101.46, K1=106.3, K2=1010.3 e Kw=1014
Comparar os resultados em 1958 em que com os de
2008 em que
Solução:
1958 :
2008 :
13
3152COp
3862COp
][H][H][H10
2][H10
022 26
12
6
1
w
COHCOH
KpK
KKpK
K
][HlogpH 10
pH10][H
3152COp 63.5pH
3862COp 59.5pH
%5.22 %78.0
27 Março 2017 Raízes de Equações não Lineares
Caso de Estudo
Atrito de um fluido
27 Março 2017 Raízes de Equações não Lineares 14
Atrito de um fluido
A determinação do atrito de um fluido quando passa num tubo é um problema importante em muitas áreas de ciência e engenharia:
Passagem de líquidos ou gases em canalizações
Corrente sanguínea
A equação de Colebrook pode ser usada para calcular o factor de atrito f:
onde: → rugosidade (m); D→ diâmetro (m)
→ nº de Reynold
→ densidade do fluido (kg/m3);
V → velocidade (m/s); → viscosidade (Ns/m2);
15
fDf Re
51.2
7.3log0.2
10
VDRe
27 Março 2017 Raízes de Equações não Lineares
Atrito de um fluido
A equação de Colebrook pode ser usada para calcular o factor de
atrito f:
Neste estudo: passagem do ar num tubo estreito
= 1.23 kg/m3; = 1.7910-5Ns/m2; D= 0.005 m; V = 40 m/s; = 0.0015(mm);
Os valores de f estão entre 0.008 e 0.08
Pode ser calculada uma estimativa aproximada de f com a equação
de Swamee-Jain:
16
fDf Re
51.2
7.3log0.2
10
VDRe
2
9.0Re
74.5
7.3ln
325.1
D
f
27 Março 2017 Raízes de Equações não Lineares
Atrito de um fluido
Solução:
Antes de resolver fazemos o plot>> rho=1.23;mu=1.79e-5;D=0.005;V=40;e=0.0015/1000;
>> Re=rho*V*D/mu;
>> g=@(f) 1/sqrt(f)+2*log10(e/(3.7*D)+2.51/(Re*sqrt(f)));
>> fplot(g,[0.008 0.08]),grid,xlabel('f'),ylabel('g(f)')
17
743.131079.1
005.0)40(23.1Re
5
VD
fffg
743.13
51.2
)005.0(7.3
0000015.0log0.2
1)(
27 Março 2017 Raízes de Equações não Lineares
Atrito de um fluido
A solução é 0.03
Método de Newton-Raphson:>> dg=@(f) -2/log(10)*1.255/Re*f^(-3/2)/(e/D/3.7 ...
+2.51/Re/sqrt(f))-0.5/f^(3/2);
>> [f ea it]=newtraph(g,dg,0.008)
f =
0.02896781017144
ea =
6.870124190058040e-006
it =
6
>> [f ea iter]=newtraph(g,dg,0.08)
f =
NaN + NaNi
1827 Março 2017 Raízes de Equações não Lineares
Atrito de um fluido
O método de Newton-Raphson é muito eficiente mas
requer boas estimativas iniciais.
Sabendo a equação de Swamee-Jain:>> fSJ=1.325/log(e/(3.7*D)+5.74/Re^0.9)^2
fSJ =
0.02903099711265
>> [f ea iter]=newtraph(g,dg,fSJ)
f =
0.02896781017144
ea =
8.510189472800060e-010
iter =
3
1927 Março 2017 Raízes de Equações não Lineares
Atrito de um fluido
Se usarmos a função fzero também podemos ter problemas:>> fzero(g,0.008)
Exiting fzero: aborting search for an interval containing a sign
change because complex function value encountered during search.
(Function value at -0.0028 is -4.92028-20.2423i.)
Check function or try again with a different starting value.
ans =
NaN
>> fzero(g,0.08)
ans =
0.02896781017144
2027 Março 2017 Raízes de Equações não Lineares
Atrito de um fluido
Este problema também pode ser resolvido pelo método das
substituições sucessivas:
21
21
Re
51.2
7.3log
25.0
i
i
fD
f
27 Março 2017 Raízes de Equações não Lineares
Problemas
27 Março 2017 22Raízes de Equações não Lineares
Problemas
1. Considere a seguinte função:
a) Use o gráfico da função para identificar um intervalo inicial onde estão
todas a raízes da função.
b) Use o método da bissecção para calcular a primeira raiz da função
com a garantia de correcção 4 casas decimais.
c) Use o método de pesquisa incremental para localizar automaticamente
todas as raízes da função.
d) Defina uma função que combine os métodos anteriores para calcular
todos os zeros da função com 4 casas decimais correctas.
(baseie-se sempre no gráfico para obter as estimativas iniciais requeridas)
23Raízes de Equações não Lineares
12211875.2)( 23 xxxxf
27 Março 2017
Problemas
2. Considere a seguinte função:
a) Use o gráfico da função para identificar uma boa estimativa inicial para
a raíz da função.
b) Use o método das substituições sucessivas para calcular a raiz da
função com um erro aproximado inferior a 0.001%.
c) Use o método de Newton-Raphson para calcular a raiz da função com
um erro relativo inferior ou igual a 10-8.
d) Use a função fzero para calcular a raiz da função com um erro
relativo inferior ou igual a 10-8.
(baseie-se sempre no gráfico para obter as estimativas iniciais requeridas)
24Raízes de Equações não Lineares
xxxf )sin()(
27 Março 2017