


Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Documento que apresenta a resolução de aproximações numéricas de uma equação cúbica usando os métodos da bissecção e de newton. O documento inclui códigos em pascal para aplicação dos métodos.
Tipologia: Notas de estudo
1 / 4
Esta página não é visível na pré-visualização
Não perca as partes importantes!



Pretende-se determinar um valor aproximado de x = 7^(1/3), este valor é única raiz real da função f(x)=x^3-7.
delete x: plot(x^3-7)
-5 -4 -3 -2 -1 1 2 3 4 5
50
100
x
y
1º Processo - Método da bissecção:
delete x: f:=x->x^3-7; f(1.75); f(2) x → x^3 − 7
− 1.
1
n:=3: a:=1.75: b:=2.0: for i from 1 to n do c:=(a+b)/2: va:=evalAt(f(x),x=a): vc:=evalAt(f(x),x=c): print(Unquoted,"x".i=float(c)): if vc= then i:=n+ elif va*vc< then b:=c else a:=c end end_for:
e:=(b-a)/2^n: // Erro do método print(NoNL,"\n"): print(Unquoted,"A soluçao é aproximadamente ".float(c)." com um erro absoluto de ".round(e,4)."."):
Uma vez que o erro absoluto é inferior a 0.5 x 10^(-2), então, após conveniente arredondamento a solução tem pelo menos 2 casas decimais corretas, ou seja, 7^(1/3) é aproximadamente 1.91 com 2 casas decimais corretas.
2º processo - Método de Newton:
delete x: f'; f'' x → 3 x^2
x → 6 x
f(1.75)f''(1.75); f(2)f''(2); − 17.
12
Assim, a aproximação inicial é x 0 = 2.
n:=3: x[1]:=2.0: for i from 1 to n do x[i+1]:=x[i]-f(x[i])/f'(x[i]): e[i]:=abs(x[i+1]-x[i]): // Erro do método print(Unquoted,"x".i=float(x[i+1]),"com erro absoluto e".i=e[i]): end_for:
print(NoNL,"\n"): print(Unquoted,"A soluçao é aproximadamente ".x[n+1]."."):
x1 = 1.916666667, com erro absoluto e1 = 0. x2 = 1.912938458, com erro absoluto e2 = 0. x3 = 1.912931183, com erro absoluto e3 = 0.
A soluçao é aproximadamente 1.912931183.
Uma vez que o erro absoluto é inferior a 0.5 x 10^(-4), então, após conveniente arredondamento a solução tem pelo menos 4 casas decimais corretas, ou seja, 7^(1/3) é aproximadamente 1.9129 com 4 casas decimais corretas.
XList:= [101.6,203.2,304.8]: YList:=[88964.43,97860.88,66723.32]: n:=2: DD[1,1]:=YList[1]: for i from 1 to n do DD[i+1,i+1]:=YList[i+1]: for j from i-1 downto 0 do DD[j+1,i+1]:=(DD[j+2,i+1]-DD[j+1,i])/(XList[i+1]-XList[j+1]): end: end: MDD:=matrix(n+1,n+1,DD);
( 88964.43 87.56348425 − 1. 0 97860.88 − 306. 0 0 66723.
A tabela de diferenças divididas é a seguinte:
xi F(xi) F[xi,xi+1]] F[x 0 ,x 1 ,x 2 ]
101.6 88964.43 87.56348425 -1.
delete x: P:=DD[1,n+1]: for k from n-1 downto 0 do P:=DD[1,k+1]+ P*(x-XList[k+1]) end: print(Unquoted,"O polinómio interpolador é dado por \n\t P(x)= ".simplify(P)."."); valor:= evalAt(P,x=250): print(NoNL,Unquoted, "Assim, o valor de F(250) é aproximadamente P(250)=".round(valor,4)." N."):
O polinómio interpolador é dado por P(x)= - 1.939151238x^2 + 678.6167815x + 40033.97. Assim, o valor de F(250) é aproximadamente P(250)=88491.213 N.
O algoritmo está assocido ao método de Euler. A informaçao em falta é respetivamente (b-a)/h, y 0 e f(t,y).