Baixe o app para aproveitar ainda mais
Prévia do material em texto
2013/1S – EM33D – Cálculo Numérico Lista 01 – Soluções de Equações – APS Soluções Resumo Os algoritmos indicados nas resoluções representam implementações dos métodos numéricos no software wxMaxima v11.08.0. Problema 1. Determine uma aproximação de 3 √ correta até 10−4 utilizando o método da Bissecção. O método da bissecção permite encontrar uma raíz de uma função contínua f em um intervalo [a, b] tal que f(a).f(b)< 0. Consideremos, pois, f(x)= x2− 3 com a=1 e b=2, uma vez que f ( 3 √ ) = ( 3 √ ) 2− 3= 0, f(a)= f(1)=−2 e f(b)= f(2)= 1. O algoritmo do método da bissecção consiste em determinar o ponto médio c=(a+b)/2 e substituir o extremo cuja função assume o mesmo sinal de f(c). Assim, temos (%i2) kill(all); reset(); (%i2) f(x) := x^2 - 3; a : 1; b : 2; N0 : 20; epsilon : 1e-4; (%o2) f(x)6 x2− 3 (%o3) 1 (%o4) 2 (%o5) 20 (%o6) 1.0× 10−4 (%i7) for i:1 thru N0 step 1 do ( c : (a+b)/2, if (f(c)*f(a)>0) then (a:c) else (b:c), if ( (b-a) < epsilon ) then (display(i,float(c)), return(float(c))) ); %^2; i= 14 float ( 28377 16384 ) = 1.73199462890625 (%o7) 1.73199462890625 (%o8) 2.999805394560099 Ou seja, após 14 iteradas, encontramos 3 √ ≈ 1, 7319 com erro absoluto de 10−4. PASSO-A-PASSO: • i=1 1 a=1, f(a) =−2, b=2, f(b)= 1, c= a+ b 2 =1, 5, f(c)=−0, 75 • i=2 f(a).f(c)> 0⇒ a← c, c= a+ b 2 = 1, 75, f(c) = 0, 0625 • i=3 f(a).f(c)< 0⇒ b← c, c= a+ b 2 =1, 625, f(c)=−0, 359375, • e assim por diante... Problema 2. Determine um limitante para o número de iterações necessárias para obter uma aproximação com precisão absoluta de 10−4 da solução de x3−x− 1=0 no intervalo [1, 2] utilizando o método da Bissecção. Determine uma aproximação da raiz com essa ordem de precisão. Como o método da bissecção consiste em particionar o intervalo inicial [a0, b0] ao meio, tem-se bn− an= 1 2 (bn−1− an−1) ⇒ ∆n≡ bn− an= 1 2n ∆0. Assim, para uma precisão absoluta de ε= 10−4, requer-se ∆n<ε ⇒ 1 2n ∆0<ε ⇒ 2n> ∆0 ε Uma vez que ambos os termos da inequação são positivos e log2 (x) é uma função crescente para x> 0, n> log2 ( ∆0 ε ) . Como ∆0>ε, o termo à direita é positivo e o limitante para o número de iterações N0 é dado pelo menor inteiro maior que log2 (∆0/ε). Nesse caso, log2 ( ∆0 ε ) = log2 ( 2− 1 10−4 ) =4 log210≈ 13, 28 ⇒ N0= 14. (%i9) kill(all); reset(); (%i9) f(x) := x^3-x-1; a : 1; b : 2; N0 : 14; epsilon : 1e-4; (%o9) f(x)6 x3− x− 1 (%i2) for i:1 thru N0 step 1 do ( c : (a+b)/2, if (f(c)*f(a)>0) then (a:c) else (b:c), if ( (b-a) < epsilon ) then (display(i,float(c)), return(float(c))) ); %^3-%-1; i= 14 2 float ( 21705 16384 ) = 1.32476806640625 (%o7) 1.32476806640625 (%o8) 2.1370716262936185× 10−4 Ou seja, com erro absoluto de 10−4 encontramos, após 14 iteradas, p≈ 1, 32476. Problema 3. Uma partícula começa a se movimentar sobre um plano inclinado liso cujo ângulo θ com a horizontal está variando a uma velocidade constante θ˙ =ω < 0. Depois de t segundos, a posição da partícula é dada por x(t) =− g 2ω2 ( eωt− e−ωt 2 − senωt ) . Suponha que a partícula tenha se deslocado 60cm em um segundo. Determine, com precisão relativa de 10−5, a velocidade ω com a qual θ varia. Suponha que g=9, 80665 m/s2. Seja x(0) = 0 a posição inicial da partícula. Denotando as quantidades nas unidades do sistema internacional (SI), o enunciado nos fornece 0, 60=x(1)=−9, 80665 2ω2 ( eω− e−ω 2 − senω ) . Ou seja, a velocidade angular ω (em radianos/segundo) pode ser determinada pelo zero (negativo) de (em que a expressão assima foi multiplicada por ω2� 0): f(ω)= 0, 60ω2+4, 903325 ( eω− e−ω 2 − senω ) . Vemos que f(0)=0 e f ′(ω)= 1, 2ω+4, 903325 ( eω+ e−ω 2 − cosω ) ⇒ f ′(0)= 0. f ′′(ω)= 1, 2+ 4, 903325 ( eω− e−ω 2 + senω ) ⇒ f ′′ (0)= 1, 2> 0. Esse resultado implica ω=0 ser um ponto de mínimo (local) de f . Ou seja, f(±δ)> 0 para δ≪ 1. Basta encontrarmos agora algum ω< 0 tal que f(ω)< 0 para que o método da bissecção possa ser utilizado. Por inspeção, escolhemos f(−1)≈−1, 03638767 e iniciamos o método no intervalo [−1,−δ], com δ= 10−2. Assim, (%i9) kill(all); reset(); (%i2) f(x) := 0.60*x^2+4.903325*( (exp(x)-exp(-x))/2 - sin(x) ); a : -1; b : -1e-3; N0 : 20; epsilon : 1e-5; 3 (%i7) for i:1 thru N0 step 1 do ( c : (a+b)/2, if (f(c)*f(a)>0) then (a:c) else (b:c), if ( (b-a) < epsilon ) then (display(i,float(c)), return(float(c))) ); f(%); i= 17 float(−0.36709624481201) =−0.36709624481201 (%o7) −0.36709624481201 (%o8) −1.3974194471993995× 10−6 Ou seja, com erro absoluto de 10−5, encontramos ω=−0, 36709 rad/s. Problema 4. Utilize manipulação algébrica para mostrar que cada uma das funções a seguir tem um ponto fixo em p precisamente quando f(p)= 0, sendo f(x)= x4+2x2− x− 3. a) g1(x) = (3+ x− 2x2)1/4 b) g2(x) = ( x+3− x4 2 ) 1/2 c) g3(x) = ( x+3 x2+2 ) 1/2 d) g4(x) = 3x4+2x2+3 4x3+4x− 1 (a) Fazendo-se f(x)= 0 e evidenciando x4, temos f(x)= 0= x4+2x2−x− 3 ⇒ x4=3+ x− 2x2 ⇒ x=(3+ x− 2x2)1/4= g1(x). (b) Analogamente, fazendo-se f(x)= 0 e evidenciando x2, temos f(x) = 0= x4+2x2− x− 3 ⇒ x2= 3+ x− x 4 2 ⇒ x= ( 3+ x−x4 2 ) 1/2 = g2(x). (c) Manipulando a igualdade f(x)= 0, temos x4+2x2−x− 3= 0 ⇒ x4+2x2= x+3 ⇒ x2(x2+2)= x+3 Como (x2+2)� 0 para todo x∈R, dividimos a igualdade por (x2+2) e obtemos x2= x+3 x2+2 ⇒ x= ( x+3 x2+2 ) 1/2 = g3(x). (d) Seguindo a mesma idéia do idem (c), encontramos x4+2x2− x− 3=0 ⇒ x4+2x2− x=3. Somando (3x4+2x2) em ambos os lados da igualdade e evidenciando x à esquerda, temos 4x4+4x2− x= x(4x3+4x− 1)= 3x4+2x2+3. 4 Investiguemos, pois, os zeros de h(x)= 4x3+4x− 1. Note que h(x)= 0= 4x3+4x− 1 ⇒ 4x3+4x=1 ⇒ 4x(x2+1)= 1. Essa última equação nos garante que não existe um zero de h para x6 0 (pois o termo à esquerda deve ser positivo para que a igualdade seja satisfeita). Observe, também, que h é estritamente crescente para x> 0. Assim, como h(0)=−1, h possui um (único) zero para x> 0. Como h(1)=7, este zero está contido em (0, 1). Analisemos, pois, a existência de um zero de f em (0,1). Como f é um polinômio, é contínua em [0, 1] e diferenciável em (0, 1). Assim, o teorema do valor extremo nos garante que maxx∈(0,1) {f(x)} ocorre em x=0, x=1, ou nos pontos em que f ′(x)= 0. Como f ′(x)= 4x3+4x− 1≡ h(x), existe um único ponto em x∈ (0,1) tal que f ′(x)=0. Uma vez que f(0)=−3 e f ′(0)=−1, o ponto x∈ (0,1) em que f ′(x)= 0 deve satisfazer f(x)< f(0)1. Assim, o máximo de f em [0, 1] ocorre em x=0 ou x=1. Como f(0)=−3 e f(1)=−1, f não possui nenhum zero em [0,1]. Assim, excluíndo- se esse intervalo do domínio de g4, temos x= 3x4+2x2+3 4x3+4x− 1 = g4(x). Problema 5. Se possível, efetue quatro iterações em cada função gi definida no exercício anterior. Faça p0=1 e pn+1 = g(pn) para n= 0, 1, 2, 3. Qual é a função que você acredita que fornecerá a melhor aproximação da solução? (%i2) kill(all); reset(); (%i2) f(x) := x^4 + 2*x^2 - x - 3; (%o2) f(x)6 x4+2x2− x− 3 (%i3) g[1](x) := (3+x-2*x^2)^(1/4); p[0] : 1 (%o3) g1(x)6 (3+ x+(−2) x2) 1 4 (%o4) 1 (%i5) for n:0 thru 3 step 1 do (p[n+1] : float(g[1](p[n]))); (%i6) [p[0],p[1],p[2],p[3],p[4]]; f([p[0],p[1],p[2],p[3],p[4]]); (%o6) [1, 1.189207115002721, 1.080057752667562, 1.149671430589383, 1.10782052951026] (%o7) [−1, 0.63922000974347,−0.38622826421642, 0.24082562051044,−0.14710524433897] (%i8) g[2](x) := ((x+3-x^4)/2)^(1/2); p[0] : 1; (%o8) g2(x)6 ( x+3− x4 2 ) 1 2 (%o9) 1 (%i10) for n:0 thru 3 step 1 do (p[n+1] : float(g[2](p[n]))); (%i11) [p[0],p[1],p[2],p[3],p[4]]; f([p[0],p[1],p[2],p[3],p[4]]); 1. Pois no intervalo (0, x) a função f é estritamentedecrescente, uma vez que sabemos que f ′(x) é contínua em diferente de zero em todo esse intervalo. 5 (%o13) [1, 1.224744871391589, 0.99366615907748, 1.228568645274987, 0.98750642915089] (%o14) [−1, 1.025255128608411,−1.044016960914045, 1.068423937076965,−1.086214057530968] (%i15) g[3](x) := ((x+3)/(x^2+2))^(1/2); p[0] : 1 (%o15) g3(x)6 ( x+3 x2+2 ) 1 2 (%o16) 1 (%i17) for n:0 thru 3 step 1 do (p[n+1] : float(g[3](p[n]))); (%i18) [p[0],p[1],p[2],p[3],p[4]]; f([p[0],p[1],p[2],p[3],p[4]]); (%o20) [1, 1.154700538379252, 1.116427409872122, 1.126052233002276, 1.123638884713255] (%o21) [−1, 0.28974390606519,−0.070068796119775, 0.017742879292814,−0.0044414774137986] (%i22) g[4](x) := (3*x^4+2*x^2+3)/(4*x^3+4*x-1); p[0] : 1 (%o22) g4(x)6 3x4+2x2+3 4 x3+4 x− 1 (%o23) 1 (%i24) for n:0 thru 3 step 1 do (p[n+1] : float(g[4](p[n]))); (%i25) [p[0],p[1],p[2],p[3],p[4]]; f([p[0],p[1],p[2],p[3],p[4]]); (%o25) [1, 1.142857142857143, 1.124481690017895, 1.124123163940149, 1.124123029704334] (%o26) [−1, 0.17534360683049, 0.0032931950564103, 1.2320832358803102× 10−6, 1.73194791841\ 52442× 10−13] Para cada função de iteração gi(x), duas listas foram geradas: [p0, p1, p2, p3, p4] e [f(p0), f(p1), f(p2), f(p3), f(p4)]. Comparando os resultados, espera-se que g1, g3 e g4 gerem sequências conver- gentes, sendo g4 apresentou a melhor aproximação. PASSO-A-PASSO: (para g1) • n=0 p0=1, p1= g(p0)⇒ p1=(3+ 1− 2 (1)2)1/4≈ 1, 189207 • n=1 p1=1, 189207, p2= g(p1)⇒ p2=(3+ 1, 189207− 2(1, 189207)2)1/2≈ 1, 080057 • e assim por diante... Problema 6. Utilize ummétodo de iteração de ponto fixo para determinar uma solução com precisão absoluta de 10−2 para x3− x− 1= 0 em [1, 2]. Utilize p0=1. Devemos construir uma função de iteração tal que g(p) = p⇒ f(p) = 0, sendo f(x) = x3− x − 1. Sabemos que a convergência será garantida se g([1, 2])⊂ [1, 2] e se existir constante positiva k < 1 tal que |g ′(x)|< k para todo x ∈ (1, 2). Seguindo o procedimento sugerido no problema anterior, fazemos f(x)= 0 e isolamos x: x3− x− 1=0 ⇒ x= g1(x)= x3− 1. 6 Mas observamos que g1 ′(x) = 3x2− 1> 1 para todo x∈ (1, 2). Assim, g1 não é uma boa função de iteração para o método do ponto fixo. Evidenciando x3, temos x3=1+x ⇒ x= g2(x)= (1+x)1/3. Vemos que g2′(x)= 1 3(1+ x)2/3 é decrescente em x∈ (1,2). Assim, max |g ′(x)|= |g ′(1)|≈0,2099<1. Vejamos, pois, se g2([1,2])⊂ [1,2]. Primeiro, notemos que g2 é crescente em [1,2] (pois g2′ é positiva nesse intervalo). Assim, basta verificarmos se g2(1) e g2(2) pertencem a [1, 2]. Como g2(1)= 2 1/3≈ 1, 2599 e g2(2)= 31/3≈ 1, 4422, verificamos que g2([1, 2])⊂ [1,25, 1, 45]⊂ [1,2]. Logo, a sequência {pk}k=0∞ convirgirá para p, sendo pk= g2(pk−1) para k> 1. Como conhecemos um limitante k=0,21 para a derivada de g2 em [1,2], podemos estimar o número máximo de iterações pelas relações ∆n≡ |pn− p|6 knmax{p0− a, b− p0} e ∆n≡ |pn− p|6 k n 1− k |p1− p0|. Pela primeira equação, temos (observe que a= p0=1 e b=2), ∆n= ε= 10−26 (0, 21)n(2− 1) ⇒ n> 2, 95 ⇒ N0=3. Determinando p1= g2(p0)= 1, 2599, a segunda desigualdade fornece ∆n= ε= 10−26 (0, 21)n 1− 0, 21 |1, 2566− 1| ⇒ n> 2, 23 ⇒ N0=3. Assim, fazemos N0=3 (número máximo de iterações). (%i2) kill(all); reset(); (%i2) f(x) := x^3 -x - 1; (%i3) g[2](x) := (1+x)^(1/3); epsilon : 1e-2; N0 : 3; p[0] : 1; k : 0; (%i8) for n:1 thru N0 step 1 do ( k : n, p[n] : float(g[2](p[n-1])), if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) ); (%i9) p[k]; (%o9) 1.322353819138825 Logo, a solução aproximada de f(x) = 0 é x≈ 1, 3223. Problema 7. Utilize o Teorema 2.2 para mostrar que g(x)=pi+ 1 2 sen(x/2) tem um único ponto fixo em [0,2pi]. Aplique a iteração de ponto fixo para encontrar uma aproximação do ponto fixo que tenha precisão de 10−2. Utilize o Corolário 2.4 para estimar o número de iterações necessárias para que a precisão 10−q seja alcançada, sendo q um inteiro positivo, e compare essa estimativa teórica para q=2 com o número realmente necessário. 7 A existência e unicidade do ponto fixo de g em um intervalo [a, b] é garantida se g([a, b])⊂ [a, b] e existir um k< 1 positivo tal que |g ′(x)|<k∀x∈ (a, b). Sabemos que −16 sen(x)6 1 para qualquer x, assim min {g(x)}= pi− 1 2 = 2pi− 1 2 > 0 e max {g(x)}= pi+ 1 2 = 2pi+1 2 < 2pi. Logo, g([0, 2pi]) ⊂ [0, 2pi]. Assim, a existência de um ponto fixo em [0, 2pi] está garantida. Para verificar a unicidade, analisemos g ′: g ′(x)= cos (x/2) 4 ⇒ |g ′(x)|6 1 4 ∀x∈ [0, 2pi] pois, assim como o seno, −16 cos (x)61 para qualquer x. Como existe o limitante k=1/4<1 para a derivada de g em [0, 2pi], o ponto fixo nesse intervalo é único. Aplicando o método de ponto fixo com ε= 10−2 e p0= pi (arbitrário, pois a convergência está garantida), obtemos: (%i15) reset(); kill(all); (%i15) g(x) := %pi + sin(x/2)/2; epsilon : 1e-2; N0 : 10; p[0] : %pi; k : 0; (%i15) for n:1 thru N0 step 1 do ( k : n, p[n] : float(g(p[n-1])), if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) ); (%i8) [k,p[k],float(g(p[k]))]; (%o8) [3, 3.626995622438735, 3.626938794225417] Ou seja, após 3 iterações encontramos p3≈ 3, 6269 tal que g(p3)≈ 3, 6269. Pelo Corolário 2.4, temos as seguintes desigualdades, para ∆n≡ |pn− p|= ε= 10−q, com k=1/4, p0= pi e p1= g(p0)= pi+ sen(pi/2)/2= pi+0, 5: 10−q< 2−2npi ⇒ n> q+ log10pi log104 e 10−q< (1/4)n 1− 1/4 |pi− pi− 0, 5|= 2 3 ( 1 4 )n ⇒ n> q+ log10 ( 2 3 ) log104 . Como pi > 2/3, utilizamos a primeira desigualdade. Com q=2, encontramos n> 2+ log10pi log104 ≈ 4, 1475 ⇒ N0=5. Vemos que a precisão ε=10−2 foi obtida com apenas 3 iterações. Isto se deve ao fato da estimativa considerar apenas o majorante da derivada da função de iteração. Ou seja, N0 é um limitante superior para o número de iteradas. Problema 8. Para cada uma das equações a seguir, (i) determine um intervalo [a, b] no qual a interação de ponto fixo convirja. (ii) Estime o número de iterações necessárias para se obter aproximações do ponto fixo com uma precisão de 10−5 e (iii) efetue os cálculos. a) x= 2− ex+ x2 3 8 b) x= 5 x2 +2 c) x= ( ex 3 ) 1/2 d) x=5−x e) x=6−x f) x= senx+ cosx 2 A primeira etapa consiste em determinar um intervalo [a,b] tal que g([a, b])⊂ [a, b]. Isto é garantido quando max {g(x)}6 b e min {g(x)}> a para qualquer x ∈ [a, b]. Pelo teorema do valor extremo sabemos que, se g é contínua em [a, b] e diferenciável em (a, b), então seus máximos e mínimos ocorrem em x = a, x = b ou nos pontos em que g ′(x) = 0. Em seguida, é necessário que ∃k < 1 positivo tal que |g ′(x)| < k para todos x ∈ [a, b]. Caso exista, então a iteração convergirá para o único ponto fixo de g em [a, b]. Por fim, o número de iterações será extimado pelas desigualdades |pn− p|<knmax{p0− a, b− p0} e |pn− p|< k n 1− k |p1− p0|. Analisemos, pois, as funções g(x)≡ x dadas. (a) g(x)= (2− e−x+ x2)/3 Derivando, obtemos g ′(x)= 2x+ e−x 3 ⇒ g ′′(x) = 2− e −x 3 ⇒ g ′′′(x) = e −x 3 . Para determinar se g é crescente ou decrescente em um intervalo, devemos analisar g ′. Como g ′′′(x)> 0 para qualquer x, sabemos que qualquer z tal que g ′′(z) = 0 será um ponto de mínima para g ′. Resolvendo g ′′(z) = 0 encontramos o único ponto de mínima z=−ln 2. Como g ′(−ln 2)= 2(−ln 2)+ e −(−ln 2) 3 = eln 2− 2 ln2 3 = 2(1− ln 2) 3 > 0, vemos que g ′(x)>g ′(z)>0 para qualquer x de tal modo que g(x) é crescente em qualquer intervalo [a, b]. Assim, g([a, b]) ⊂ [a, b] é garantido se g(a) > a e g(b) 6 b (pois sabemos que g(b) > g(a)). Substituindo b na expressão de g, encontramos, da segunda desigualdade, g(b)= 2− e−b+ b2 3 6 b ⇒ b2− 3b+26 e−b. Como e−b>0 para qualquer b, basta que b2−3b+260 para que a inequação seja satisfeita. Assim,qualquer b∈ [1,2] garante b2− 3b+26 0⇒ g(b)<b. Como g ′(x) é crescente para x>z, escolhemos b=1. Note que g ′(1)= 2+ e−1 3 < 1. Analogamente, substituindo a, temos g(a) = 2− e−a+ a2 3 > a ⇒ a2− 3a+2> e−a. com a restrição de que a < b = 1. Esta desigualdade é um pouco mais difícil de se analisar. Por inspeção, vemos que a=0 satisfaz as condições necessárias, pois g(0)= 2− 1+ 0 3 = 1 3 > 0 e g ′(0)= 1 3 < 1. Mais ainda, aplicando o teorema do valor extremo para g ′ em um intervalo arbitrário [a,b], sabemos que m= g ′(a) ou m= g ′(b) (pois z é o único ponto de mínima de g ′). Como g ′(0)< g ′(1), temos, portanto, |g ′(x)|<k= g ′(1)= 2+ 1/e 3 ≈ 0, 79 ∀x∈ (0, 1). 9 Assim, a existência de um único ponto fixo de g em [0, 1] está demonstrada. Assumindo como p0 o ponto médio, p0=0, 5, estimamos o número de iterdadas por ε= 10−5=∆n6 knmax{p0− a, b− p0}=(0, 79)n0, 5 ⇒ n> 45, 9 ⇒ N0= 46 e ε= 10−5=∆n6 kn 1− k |g(p0)− p0|= (0, 79)n 1− 0, 790, 547823 ⇒ n> 52, 91. Como o majorante da derivada no intervalo escolhido é próximo de um, o número de iteradas esperado é alto. Iterando, temos: (%i1) reset(); kill(all); (%i1) g(x) := (2 - exp(-x) + x^2)/3; epsilon : 1e-5; N0 : 46; p[0] :0.5; k : 0; (%i6) for n:1 thru N0 step 1 do ( k : n, p[n] : float(g(p[n-1])), if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) ); (%i7) [k,p[k],float(g(p[k]))]; (%o7) [17, 0.60897756585781, 0.60898232735509] Ou seja, após 17 iteradas encontramos p≈ 0, 60897 tal que g(p)≈ 0, 60898. (b) g(x)= 5 x2 +2 Como g é proporcional a +x−2, g é uma função simétrica (isto é, g(−x)= g(x)) e g(x)>0∀x. Assim, qualquer ponto fixo de g deve ser positivo. Como g ′(x) = −10/x3, g é estritamente decrescente para x> 0. Assim, g([a, b])⊂ [a, b] está garantido se g(a)< b e g(b)>a, restringindo 0<a< b. É necessário, também, que |g ′(x)|6k<1 para qualquer x∈ [a, b]. Isso é garantido desde que a>101/3. Assim, temos g(b)>a ⇒ 5 b2 +2>a> 101/3 ⇒ 5> (101/3− 2)b2 ⇒ b < 5 101/3− 2 √ ≈ 32, 3761 Assim, é garantida a existência de um ponto fixo de g no intervalo ( 101/3,32,3761 ) . Para obter uma melhor estimativa de convergência, devemos evitar as vizinhanças de x=101/3, pois ∣∣g ′(101/3)∣∣=1. Como g(32, 3761) = 101/3, g ( 101/3 )≈ 4, 320794 e g(4, 320794)≈ 2, 267819 escolhemos [a, b] = [2, 26, 4, 32], pois g(a)<b e k= max x∈[a,b] {|g ′(x)|}= |g ′(2, 26)| ≈ 0, 8663. Isto é, a convergência para o único ponto fixo em [a,b] é garantida. Estimando o número de iteradas, para p0= a+ b 2 =3, 29, encontramos ε=∆n<k nmax{p0− a, b− p0} ⇒ 10−5< (0, 8663)n1, 03 ⇒ n> 80, 42 ⇒ N0= 81 ε=∆n< kn 1− k |p1− p0| ⇒ 10 −5< (0, 8663)n 1− 0, 8663 |2, 461932− 3, 29| ⇒ n> 92, 92. 10 Iterando, temos: (%i1) reset(); kill(all); (%i1) g(x) := 5/x^2 + 2; epsilon : 1e-5; N0 : 81; p[0] :3.29; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(g(p[n-1])), if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) ); (%i7) [k,p[k],float(g(p[k]))]; (%o7) [18, 2.690650423743068, 2.690645920391698] Assim, após 18 iteradas, o método de iteração resulta em p18=2, 69065 tal que g(p18) = 2, 69064. Observe que, novamente, k= 18≪N0. (c) g(x)= ( ex 3 ) 1/2 Novamente, esta função satisfaz g(x)> 0∀x. Assim, o(s) ponto(s) fixo(s) deve(m) ser positivo(s). Como g ′(x)= 1 2 ( 3 ex ) 1/2ex 3 = ex/2 2 3 √ > 0∀x, a função g é estritamente crescente em [a,b]. Assim, g([a,b])⊂ [a,b] é garantido se g(a)>a e g(b)<b. Como requeremos que |g ′(x)|6 k < 1∀x∈ [a, b], temos |g ′(x)|= e x/2 2 3 √ < 1 ⇒ ex/2< 2 3√ ⇒ x< ln (12). Assim, já temos as restrições 06 a< b< ln (12). Uma vez que g(0)= ( e0 3 ) 1/2 = 3 √ 3 > 0, g(ln 12)= ( eln 12 3 ) 1/2 =2 e g(2)= e 3 √ < 2, delimitamos um intervalo [a, b]= [0, 2] tal que qualquer p0∈ [0, 2] converge para o único ponto fixo de g nesse intervalo. Como k= max x∈[0,2] |g ′(x)|= e 2/2 2 3 √ ≈ 0, 7847, estimamos o limitante para o número de iteradas com p0=1: ε=∆n<knmax{p0− a, b− p0} ⇒ 10−5< (0, 7847)n ⇒ n> 47, 48 ε=∆n< kn 1− k |p1− p0| ⇒ 10 −5< (0, 7847)n 1− 0, 7847 |0,951889−1| ⇒ n>28,63 ⇒ N0=29 Assim, iterando, temos (%i8) reset(); kill(all); 11 (%i1) g(x) := sqrt(exp(x)/3); epsilon : 1e-5; N0 : 29; p[0] :1; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(g(p[n-1])), if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) ); (%i7) [k,p[k],float(g(p[k]))]; (%o7) [12, 0.9100149616732, 0.91001093460184] ou seja, após k= 12 iteradas, obtemos p12=0, 910014 tal que g(p12)= 0, 910010. (d) e (e) g(x) =α−x, com α> 1 Como g(x)> 0 ∀x, g(p)= p só pode ser satisfeito para p> 0. Assim, a> 0. Mais ainda, como g ′(x)=−(lnα)α−x, g é estritamente decrescente, [a, b] deve ser tal que g(a)<b e g(b)>a. Para que o ponto fixo exista e seja único em [a, b], é necessário que |g ′(x)|6 k < 1∀x∈ [a, b]. Ou seja, (lnα)α−x< 1 ⇒ −x lnα<−ln (lnα) ⇒ x> ln (lnα) lnα . Como α> 1, encontramos a> ln (lnα)/lnα. Observe que a restrição sobre a derivada não limita o valor de b. Como g é decrescente, se definirmos b= g(a) temos a garantia de que g(x)<b para x∈ (a, b), pois se a<x<b, g(a)> g(x)> g(b)⇒ b > g(x)> g(b). Assim, o intervalo (β, g(β)) com β= ln (lnα) lnα certamente contem um único ponto fixo de g e a convergência para este é garantida. Como β é o ponto em que |g ′(β)| = 1, a estimativa da convergência será, certamente, superestimada para qualquer a≈ β. Definimos, então, b= g(β) e a= g(b), de tal modo que k= max x∈[a,b] {|g ′(x)|}=−g ′(a)= lnα 1 α−a , a= g(g(β)). Assim, para α=5, temos β≈ 0, 295683 ⇒ b=0, 621334 ⇒ a=0, 367879 ⇒ k=0, 890303 Assim, estimando o número máximo de iteradas para p0=(a+ b)/2= 0, 494606, temos ε=∆n<k nmax{p0−a, b− p0} ⇒ 10−5< (0,8903)n0,1267 ⇒ n>81,30 ⇒ N0=82 ε=∆n< kn 1− k |p1− p0| ⇒ 10 −5< (0, 8903)n 1− 0, 8903 |0, 451112− 0, 494606| ⇒ n> 91, 11. Iterando, encontramos: (%i1) reset(); kill(all); 12 (%i1) alpha : 5; g(x) := alpha^(-x); epsilon : 1e-5; N0 : 82; beta : float(log(log(alpha))/log(alpha)); b : g(beta); a : g(b); p[0] : (a+b)/2; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(g(p[n-1])), if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) ); (%i11) [k,p[k],float(g(p[k]))]; (%o11) [31, 0.46961771852934, 0.46962510075152] Ou seja, após k = 31 iterações, com p0 = 0, 494606, encontramos p31 = 0, 469617 tal que g(p31)= 0, 469625. Com α=6, temos β≈ 0, 325489 ⇒ b=0, 558106 ⇒ a=0, 367879 ⇒ k=0, 926859 Assim, estimando o número máximo de iteradas para p0=(a+ b)/2= 0, 462992, temos ε=∆n<k nmax{p0−a, b− p0} ⇒ 10−5< (0,926)n0,0951 ⇒ n>120,5 ⇒ N0=121 ε=∆n< kn 1− k |p1− p0| ⇒ 10 −5< (0, 9268)n 1− 0, 9268 |0, 436236− 0, 462992| ⇒ n> 138, 2. Iterando, encontramos: (%i32) reset(); kill(all); (%i32) alpha : 6; g(x) := alpha^(-x); epsilon : 1e-5; N0 : 121; beta : float(log(log(alpha))/log(alpha)); b : g(beta); a : g(b); p[0] : (a+b)/2; k : 0; (%i32) for n:1 thru N0 step 1 do ( k : n, p[n] : float(g(p[n-1])), if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) ); (%i11) [k,p[k],float(g(p[k]))]; (%o11) [37, 0.44805869405237, 0.44806659509971] Ou seja, com p0 = 0, 462992 encontramos, após k = 37 iteradas, p37 = 0, 448058 tal que g(p37)= 0, 448066. (f) g(x)= (senx+ cos x)/2 Como g ′(x)= (cosx− senx)/2 e −16 senx, cosx6 1 para qualquer x, a condição |g ′(x)|6 k < 1 é satisfeita para qualquer intervalo [a, b], pois senx=±1⇒ cosx=0 (e vice-versa). Vemos, também, que g(x)∈ [−g(m), g(m)]∀x sendo m dado pela menor solução positiva de g ′(m) = 0 ⇒ cosm− senm 2 = 0 ⇒ cosm= senm ⇒ m= pi 4 . 13 Ou seja, g(x) ∈ [− 2√ /2, 2√ /2]∀x.Assim, a escolha [a, b] com a = −b e b = 2√ /2 satisfaz as condições para a convergência da série gerada por g para o único ponto fixo em [a, b], pois k= max x∈[a,b] {|g ′(x)|}= 2 √ 2 < 1. Seguindo o processo iterativo, determinemos a estimativa para o número máximo de iteradas, fazendo p0=(a+ b)/2= 0: ε=∆n<k nmax{p0− a, b− p0} ⇒ 10−5< ( 2 √ 2 )n 2 √ 4 ⇒ n> 30, 2 ⇒ N0= 31 ε=∆n< kn 1− k |p1− p0| ⇒ 10 −5< ( 2 √ /2 )n 1− 2√ /2 |0, 5− 0| ⇒ n> 34, 76. Iterando, encontramos: (%i12) reset(); kill(all); (%i12) g(x) := (sin(x) + cos(x))/2; epsilon : 1e-5; N0 : 31; p[0] : 0; k : 0; (%i12) for n:1 thru N0 step 1 do ( k : n, p[n] : float(g(p[n-1])), if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) ); (%i7) [k,p[k],float(g(p[k]))]; (%o7) [6, 0.70481167720145, 0.70481198351321] Ou seja, após k=6 iteradas obtemos p6=0, 704811 tal que g(p6) = 0, 704811≈ 2 √ /2. OBSERVAÇÃO: Para esse exercício, é possível delimitar o intervalo [a, b] pela análise gráfica de g (para verificar a condição g([a, b])⊂ [a, b]) e de g ′ (para verificar a condição |g ′(x)|< 1∀x∈ [a, b]). Problema 9. Um objeto em queda vertical no ar está sujeito à resistência viscosa, bem como à força da gravidade. Suponha que um objeto commassam=50g seja solto a uma altura s0=10m e que a altura do objeto após t segundos seja s(t) = s0− mg k t+ m2g k2 ( 1− e−kt/m ) , em que g = 9, 80665m/s2 é a aceleração gravitacional e k = 0, 05kg/s é o coeficiente de resistência do ar. Determine, com precisão de 0,01 segundo, o tempo necessário para o objeto alcance o solo. Como s(t) é a altura do objeto, queremos determinar t tal que s(t) = 0m. Convertendo k = 0, 05 kg/s=50g/s, temos, nas unidades do SI, s(t)=α− βt+ γ(1− eδt) sendo α= 10, β=mg/k=9, 80665, γ=m2g/k2=9, 80665 e δ= k/m=1. Utilizando o método de Newton, tn+1= tn− s(tn) s′(tn) 14 em que n=0, 1, , t0=0 e s′(t) =−β − γet, encontramos o seguinte método iterativo: t0=0, tn+1= g(tn)= tn+ α− βt+ γ(1− e t) β+ γet , n> 0 Iterando, encontramos, com ε= 10−2, (%i1) kill(all); reset(); kill(all); (%i1) alpha : 10; beta : 9.80665; gamma : beta; g(t) := t + (alpha - beta*t + gamma*(1-exp(t)))/(beta + gamma*exp(t)); epsilon : 1e-2; N0 : 100; t[0] : 0; k : 0; s(t) := alpha - beta*t + gamma*(1-exp(t)); (%i1) for n:1 thru N0 step 1 do ( k : n, t[n] : float(g(t[n-1])), if (abs(s(t[n])) < epsilon) then ( return(t[k])) ); (%i11) [k,t[k],float(g(t[k])),s(t[k])]; (%o11) [3, 0.45054693657685, 0.4505465819868,−8.9338796156468447× 10−6] Ou seja, após 3 iteradas o método de Newton, com t0=0 resultou em t3=0, 450546 tal que s(t3) =−8, 93× 10−6. Ou seja, o tempo para que o objeto chegue ao solo é aproximadamente 0,450 segundos. PASSO-A-PASSO: • n=0 t0=0, s(t0) = 10, s′(t0) =−19, 6133, t1= g(t0)= t0− s(t0) s′(t0) = 0, 509858 • n=1 t1=0, 509858, |s(t1)=−1, 521960|>ε, s′(t1)=−26, 1352, t2= g(t1) = 0, 451624 • n=2 t2=0, 451624, |s(t2) =−0.027157|>ε, s′(t2)=−25, 2115, t3= g(t2)= 0, 450546 • n=3 t3=0, 450546, |s(t3)=−8, 93387× 10−6|<ε Problema 10. Utilize o método de Newton para encontrar soluções com precisão absoluta de 10−5 para os problemas abaixo: a) ex+2−x+2 cosx− 6= 0 para 16x6 2 b) ln (x− 1)+ cos (x− 1)= 0 para 1, 36 x6 2 15 c) 2x cos (2x) − (x − 2)2 = 0 para 2 6 x 6 3 e 36 x6 4 d) (x− 2)2− lnx=0 para 16 x6 2 e e6x6 4 e) ex− 3x2=0 para 06 x6 1 e 36 x6 5 f) sen x − e−x = 0 para 0 6 x 6 1, 3 6 x 6 4 e 66x6 7 Em cada um dos casos, utilizaremos p0= (a+ b)/2 como ponto inicial, sendo a6 x6 b dado pelo enunciado. Utilizaremos como critério de parada |f(x)| < ε=10−5 e colocaremos N0 = 100 como limitante do número de iteradas. Para cada um dos casos, fl(x)≡ f ′(x) e o resultado está indicado em uma lista [k, pk, f(pk)] sendo k o menor número inteiro tal que |f(pk)|<ε. (a) p6=1, 829383 (%i1) kill(all); reset(); kill(all); (%i1) a : 1; b : 2; f(x) := exp(x) + 2^(-x) + 2*cos(x) - 6; fl(x) := exp(x) + log(2)*2^(-x) - 2*sin(x); epsilon : 1e-5; N0 : 100; p[0] : float((a+b)/2); k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i10) [k,p[k],f(p[k])]; (%o10) [6, 1.829383901514923, 1.2287320254600331× 10−6] (b) p5=1, 397748 (%i11) kill(all); reset(); kill(all); (%i1) a : 1.3; b : 2; f(x) := log(x-1) + cos(x-1); fl(x) := 1/(x-1) - sin(x-1); epsilon : 1e-5; N0 : 100; p[0] : (a+b)/2; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i10) [k,p[k],f(p[k])]; (%o10) [5, 1.397748475911459,−1.0057221722092891× 10−10] (c) p2=2, 370687∈ [2, 3] e p4=3, 722112∈ [3, 4] (%i1) kill(all); reset(); kill(all); (%i1) a : 2; b : 3; f(x) := 2*x*cos(2*x) - (x-2)^2; fl(x) := 2*cos(2*x) - 4*x*sin(2*x) - 2*(x-2); epsilon : 1e-5; N0 : 100; p[0] : (a+b)/2; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i10) [k,p[k],f(p[k])]; (%o10) [2, 2.370687825747464, 7.9869315916525352× 10−6] 16 (%i1) kill(all); reset(); kill(all); (%i1) a : 3; b : 4; f(x) := 2*x*cos(2*x) - (x-2)^2; fl(x) := 2*cos(2*x) - 4*x*sin(2*x) - 2*(x-2); epsilon : 1e-5; N0 : 100; p[0] : (a+b)/2; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i10) [k,p[k],f(p[k])]; (%o10) [4, 3.722112773106613,−7.8667738989679492× 10−11] (d) p3=1, 412391∈ [1, 2] e p3=3, 057104∈ [e, 4] (%i1) kill(all); reset(); kill(all); (%i1) a : 1; b : 2; f(x) := (x-2)^2 - log(x); fl(x) := 2*(x-2) - 1/x; epsilon : 1e-5; N0 : 100; p[0] : (a+b)/2; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i10) [k,p[k],f(p[k])]; (%o10) [3, 1.412391171725005, 5.6286036942410078× 10−10] (%i11) kill(all); reset(); kill(all); (%i1) a : float(exp(1)); b : 4; f(x) := (x-2)^2 - log(x); fl(x) := 2*(x-2) - 1/x; epsilon : 1e-5; N0 : 100; p[0] : (a+b)/2; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i10) [k,p[k],f(p[k])]; (%o10) [3, 3.057104002504877, 8.0868112517507029× 10−7] (d) p4=0, 910007∈ [0, 1] e p4= 3.733079∈ [3, 5] (%i1) kill(all); reset(); kill(all); (%i1) a : 0; b : 1; f(x) := exp(x) - 3*x^2; fl(x) := exp(x) - 6*x; epsilon : 1e-5; N0 : 100; p[0] : (a+b)/2; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); 17 (%i10) [k,p[k],f(p[k])]; (%o10) [4, 0.91000766186313,−2.6595183566513469× 10−7] (%i11) kill(all); reset(); kill(all); (%i1) a : 3; b : 5; f(x) := exp(x) - 3*x^2; fl(x) := exp(x) - 6*x; epsilon : 1e-5; N0 : 100; p[0] : (a+b)/2; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i10) [k,p[k],f(p[k])]; (%o10) [4, 3.733079028654685, 4.2448533577044145× 10−10] (f) p2=0, 588529∈ [0, 1], p3=3, 096363∈ [3, 4] e p2=6, 285049∈ [6, 7] (%i11) kill(all); reset(); kill(all); (%i1) a : 0; b : 1; f(x) := sin(x) - exp(-x); fl(x) := cos(x) + exp(-x); epsilon : 1e-5; N0 : 100; p[0] : (a+b)/2; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i10) [k,p[k],f(p[k])]; (%o10)[2, 0.58852941262635,−4.6202542183237938× 10−6] (%i11) kill(all); reset(); kill(all); (%i1) a : 3; b : 4; f(x) := sin(x) - exp(-x); fl(x) := cos(x) + exp(-x); epsilon : 1e-5; N0 : 100; p[0] : (a+b)/2; k : 0; (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i10) [k,p[k],f(p[k])]; (%o10) [3, 3.096363932421375,−1.0233223990407936× 10−11] (%i11) kill(all); reset(); kill(all); (%i1) a : 6; b : 7; f(x) := sin(x) - exp(-x); fl(x) := cos(x) + exp(-x); epsilon : 1e-5; N0 : 100; p[0] : (a+b)/2; k : 0; 18 (%i1) for n:1 thru N0 step 1 do ( k : n, p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i10) [k,p[k],f(p[k])]; (%o10) [2, 6.285049264874215,−8.5242161697307584× 10−9] Problema 11. Repita o exercício anterior utilizando o método da Secante. O método da secante consiste em substituir o cálculo da derivada da função f por uma “aproxi- mação finita”, dada por f ′(x)≈ f(b)− f(a) b− a quando x= a − δ = b+ δ e 0 < δ≪ 1. Neste exercício, consideraremos p0 = (2a+ b)/3 e p1 = (a+ 2b)/3 como pontos iniciais, sendo [a, b] o intevalo que contém a raíz dado pelo enunciado. Note que essa escolha é arbitrária. Novamente, para a implementação, faremos ε= 10−5 e N0= 100. Como exemplo, temos o algoritmo explicitamente indicado abaixo e, em seguida, as operações explícitas das primeiras iteradas, para o item (a). Os demais foram obtidos de modo análogo e apenas a os valores numéricos da sequência [n, pn, f(pn)] com n=0, 1, , k está indicada, tal que k é o menor inteiro em que |f(pk)|<ε. (a) (%i1) kill(all); reset(); kill(all); (%i1) a : 1; b : 2; f(x) := exp(x) + 2^(-x) + 2*cos(x) - 6; epsilon : 1e-5; N0 : 100; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; (%i1) for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ) (%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 1.333333333333333,−1.339006695718794] [1, 1.666666666666667,−0.581976783085] [2, 1.922921086460217, 0.41484626548166] [3, 1.816276091425861,−0.053172744190985] [4, 1.82839228098871,−0.0040625250562822] [5, 1.829394563702024, 4.4960103105395888× 10−5] [6, 1.829383592820235,−3.7379484396637963× 10−8] (%o11) done PASSO-A-PASSO: • n=0 e n=1 p0= 2a+ b 3 =1, 33333, f(p0)=−1, 33900, p1= a+2b 3 = 1, 66666, f(p1)=−0, 58197 19 • n=2 p2= p1− f(p1) (p1− p0) f(p1)− f(p0) = 1, 922921, |f(p2)= 0, 414846|>ε • n=3 p3= p2− f(p2) (p2− p1) f(p2)− f(p1) = 1, 816276, |f(p3) =−0, 053172|>ε • e assim por diante, até n=6 tal que (p4=1, 828392 e p5=1, 829394) p6= p5− f(p5) (p5− p4) f(p5)− f(p4) = 1, 829383, |f(p6)=−3, 73794× 10 −8|<ε (b) (%i12) kill(all); reset(); kill(all); (%i1) a : 1.2; b : 2; f(x) := log(x-1) + cos(x-1); epsilon : 1e-5; N0 : 100; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; (%i1) for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ) (%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 1.466666666666667, 0.13093290115153] [1, 1.733333333333333, 0.4327924395202] [2, 1.350998828254909,−0.10794264552751] [3, 1.427321225480112, 0.059859925850834] [4, 1.400094866544541, 0.0049704534535085] [5, 1.397629414721318,−2.5327175126566015× 10−4] [6, 1.397748951886167, 1.0122054784345025× 10−6] (%o10) done (c) (%i11) kill(all); reset(); kill(all); (%i1) a : 2; b : 3; f(x) := 2*x*cos(2*x) - (x-2)^2; epsilon : 1e-5; N0 : 100; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; (%i1) for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ) 20 (%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 2.333333333333334,−0.32440757322449] [1, 2.666666666666667, 2.658507501471132] [2, 2.369585071996235,−0.009687805786293] [3, 2.370663729463333,−2.0394691604963544× 10−4] [4, 2.370686925597618, 6.9794253515498283× 10−8] (%o10) done (%i11) a : 3; b : 4; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; (%i11) for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ) (%i17) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 3.333333333333334, 4.404673575895391] [1, 3.666666666666667, 0.87013492374774] [2, 3.748726873988588,−0.44126505995858] [3, 3.721114930451893, 0.016257675807783] [4, 3.722096097050512, 2.7187355257840551× 10−4] [5, 3.722112783935823,−1.7663171147930257× 10−7] (%o17) done (d) (%i18) kill(all); reset(); kill(all); (%i1) a : 1; b : 2; f(x) := (x-2)^2-log(x); epsilon : 1e-5; N0 : 100; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; (%i1) for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ) (%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 1.333333333333333, 0.15676237199266] [1, 1.666666666666667,−0.39971451265488] [2, 1.427235030670952,−0.027679317484776] [3, 1.409421381976789, 0.0056038512922186] [4, 1.412420646828124,−5.5506949740768974× 10−5] 21 [5, 1.412391230057486,−1.0929101085244142× 10−7] (%o10) done (%i11) a : float(exp(1)); b : 4; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; (%i11) for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ) (%i17) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 3.145521218972696, 0.16623925729281] [1, 3.572760609486348, 1.20023735781907] [2, 3.076832544468293, 0.035667655654329] [3, 3.061643594060686, 0.0081352268022652] [4, 3.057155593488045, 9.3009785026243463× 10−5] [5, 3.057103688899104, 2.4823602484680407× 10−7] (%o17) done (e) (%i1) kill(all); reset(); kill(all); (%i1) a : 0; b : 1; f(x) := exp(x) - 3*x^2; epsilon : 1e-5; N0 : 100; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; (%i1) for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ) (%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 0.33333333333333, 1.062279091752756] [1, 0.66666666666667, 0.61440070772134] [2, 1.123934182155312,−0.71274848972444] [3, 0.87835762475556, 0.092407003320651] [4, 0.90654223499685, 0.010290692722792] [5, 0.91007428802497,−1.9853351795706686× 10−4] [6, 0.91000743553298, 4.075397046499063× 10−7] (%o10) done (%i11) a : 3; b : 5; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; 22 (%i11) for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ) (%i17) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 3.666666666666667,−1.212049335180119] [1, 4.333333333333333, 19.86452323963724] [2, 3.705004631117562,−0.53094237734503] [3, 3.721361518534282,−0.22498004494528] [4, 3.733389055510208, 0.0060190832390674] [5, 3.733075657157634,−6.543730758323818× 10−5] [6, 3.733079027668792,−1.8710871074745228× 10−8] (%o17) done (f) (%i18) kill(all); reset(); kill(all); (%i1) a : 0; b : 1; f(x) := sin(x) - exp(-x); epsilon : 1e-5; N0 : 100; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; (%i1)for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ) (%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 0.33333333333333,−0.38933661377764] [1, 0.66666666666667, 0.10495268403714] [2, 0.59588983988315, 0.010173470253652] [3, 0.58829275278793,−3.3287511928248303× 10−4] [4, 0.58853345316311, 9.835612988506881× 10−7] (%o10) done (%i11) a : 3; b : 4; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; (%i11) for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ) (%o16) 3.096363633495409 (%i17) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 3.333333333333334,−0.22624195622274] [1, 3.666666666666667,−0.52683858179485] 23 [2, 3.08245232206434, 0.013259175058276] [3, 3.096794540983691,−4.1070734771160577× 10−4] [4, 3.096363633495409, 2.850946038829294× 10−7] (%o17) done (%i18) a : 6; b : 7; p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0; (%i18) for n:2 thru N0 step 1 do ( k : n, p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ), if (abs(f(p[n])) < epsilon) then ( return(p[k])) ); (%i24) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])])); [0, 6.333333333333333, 0.048350906336438] [1, 6.666666666666667, 0.37287859676988] [2, 6.283670487129711,−0.0013813569746096] [3, 6.285084088661371, 3.4880110503015529× 10−5] [4, 6.285049273461183, 7.8743192521990579× 10−11] (%o25) done Problema 12. A equação de iteração do método da Secante pode ser escrita na forma mais simples pn= f(pn−1)pn−2− f(pn−2)pn−1 f(pn−1)− f(pn−2) . Explique porque essa equação tende a ser menos precisa que pn= pn−1− f(pn−1)(pn−1− pn−2) f(pn−1)− f(pn−2) . Sabemos que no cálculo com precisão finita, como no caso da álgebra de ponto flutuante, os erros de arredondamento e truncamento são, tipicamente, maiores para multiplicações (e divisões) que para adições (e subtrações). Portanto, uma maneira de se reduzir os erros de arredondamento e manipular algebricamente as expressões para que um menor número de multiplicações (e divisões) esteja presenta. Vemos que na primeira forma, o método da secante envolve duas multiplicações, uma divisão e duas subtrações (5 operações). Na segunda forma, no entanto, exite uma multi- plicação, uma divisão e três subtrações (também 5 operações). Como o número de produtos na segunda forma é menor que na primeira, espera-se que a segunda forma seja menos sensível à erros de arredondamento e truncamento. Problema 13. A soma de dois numeros é 20. Se a cada número for adicionado à respectiva raiz quadrada, o produto das duas somas será 155,55. Determine os dois números com precisão 10−4. Sejam x e y esses números. Então { x+ y = 20 (x+ x √ )(y+ y √ ) = 155, 55 24 Da primeira equação, temos y= 20− x. Substituindo na segunda, temos f(x) = (x+ x √ )(20− x+ 20− x√ )− 155, 55=0. Ou seja, podemos utilizar qualquer método visto até agora para estimar x (e, consequentemente, y) com precisão de 10−4. Observando que 13+7= 20, ( 13+ 13 √ )( 7+ 7 √ )≈ 160, 17, 14+6= 20, ( 14+ 14 √ )( 6+ 6 √ )≈ 149, 90 temos duas boas aproximações iniciais x0= 13 e x1= 14 (ou x0=7 e x1=6) para x. Utilizando o método da secante, encontramos x0= 13 ⇒ |f(x0) = 4, 623018|>ε x1= 14 ⇒ |f(x1) =−5, 6420479|>ε x2= 13, 450364 ⇒ |f(x2) = 0, 37401|>ε x3= 13, 484535 ⇒ |f(x2) = 0, 026738|>ε x4= 13, 487166 ⇒ |f(x2) =−1, 46209296× 10−4|>ε x5= 13, 487151 ⇒ |f(x2) = 5, 65559617× 10−8|<ε= 10−4 Assim, x= 13, 4871 e y=6, 5129 são as aproximações para tais números. Note que (x+ x √ )(y+ y √ )= 155, 5505. Problema 14. O valor acumulado em uma poupança com base em pagamentos regulares pode ser determinado a partir da equação da anuidade antecipada, A= P i [(1+ i)n− 1]. Nessa equação, A é a quantia na conta, P é a quantia depositada de forma regular e i é a taxa de juros por período para n períodos de depósito. Um engenheiro gostaria de ter uma poupança de R$2.000.000,00 ao se aposentar, depois de 30 anos de trabalho, e pode depositar R$2.000,00 por mês para esse fim. Qual é a taxa de juros mínima com a qual essa quantia pode ser alcançada, supondo que os juros sejam compostos mensalmente? Buscamos determinar a taxa de juros i tal que em n= 30×12= 360 meses tenhamos A=2× 106, com P = 2000. Assim, buscamos uma raiz de f(i)= 2000 i [(1+ i)360− 1]− 2000000. Podemos utilizar o método de Newton, com condição inicial i0=0, 01 (um rendimento mensal de 1%). Derivando, temos f ′(i)= 2000 i [360(1+ i)359]− 2000 i2 [(1+ i)360− 1]. Determinamos, portanto, in por in= in−1− f(in−1) f ′(in−1) . n> 1. 25 Temos n in f(in) f ′(in) 0 0, 01 4, 98992× 106 1, 86375×109 1 0, 007322 1, 50309× 106 8, 71164× 108 2 0, 005597 307.846 5, 41801× 108 3 0, 005029 22.488, 3 4, 64744× 108 4 0, 004980 145, 477 4, 58745× 108 5 0, 004980 � � Ou seja, a aplicação de R$2.000,00 mensais deve ser ter um rendimento de 0,49% ao mês para que, ao cabo de 30 anos, a aplicação totalize R$2.000.000,00. Problema 15. (APS) No projeto de veículos para qualquer tipo de terreno, é necessário considerar falhas do veículo quando este tenta transpor dois obstáculos. Um tipo de falha é denominado falha de suspensão e ocorre quando o veículo tenta cruzar um obstáculo onde sua parte inferior toca o chão. Outro tipo de falha é chamado falha dianteira e ocorre quando o veículo desce em uma vala e sua parte dianteira toca o chão. A figura abaixo mostra os componentes envolvidos na falha dianteira de um veículo. Figura 1. Esquema do projeto e cálculo de falhas do veículo. O ângulo máximo α que pode ser transposto por um veículo quando β é o ângulo máximo para o qual a falha de suspensão não ocorre satisfaz a seguinte equação A senα cosα+B sen2α−C cosα−E senα=0, sendo A= l sen β1, B= l cos β1, C =(h+0, 5D)sen β1− 0, 5D tanβ1 e E=(h+0, 5D)cos β1− 0, 5D. a) Afirma-se que quando l=226cm, h=125cm, D=140cm e β1=11, 5 o, o ângulo α é de aproximadamente 33o. Verifique esse resultado. b) Determine α para a situação em que l, h e β1 tenham os mesmos valores da parte (a) mas D= 76cm. (a) Fazendo a conversão β1 = 11, 5o = 11, 5pi 180 = 0, 2007 rad(neste caso, podemos manter todas as unidades em cm), temos: A = l sen β1= 45, 0571 B = l cos β1= 221, 4619 C = (h+0, 5D)sen β1− 0, 5D tanβ1= 25, 2331 E = (h+0, 5D)cosβ1− 0, 5D= 124, 0250 de tal modo que, com α= 33o=0, 5759 rad, temos f(α)=A senα cosα+B sen2α−C cosα−E senα=−2, 4374 26 Este resultado, certamente, poderia ser refinado, pois espera-se que f(α) = 0. (b) Para determinar α nesse caso, calculamos novamente os parâmetros com D= 76, para obter C = 24, 6350 e E= 121, 0853. Então, utilizamos algum método iterativo para encontrar a raíz de f(α). Fazemos α0 = 33o = 0, 5759 rad e α1 = 34o= 0, 5934 rad (novamente, escolhas arbitrárias próximas da raiz) e obtemos a sequência {αk}k=0n pelo método da secante: k αk f(αk) 0 0, 5759 −0, 334696 1 0, 5934 2, 005414 2 0, 5784 −0, 003344 3 0, 5784 � , αk=αk−1− f(αn−1)(αn−1−αn−2) f(αn−1)− f(αn−2) Assim, o ângulo máximo para que a falha de suspensão não ocorra nesse caso é α= 180× 0, 5784 pi = 33, 13o. 27
Compartilhar