Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Métodos numéricos para encontrar raízes de equações: bisseções, falsa posição e Newton, Provas de Matemática

Este documento explica três métodos numéricos para encontrar raízes de equações: método de bisseções, método de falsa posição e método de newton. Os métodos são ilustrados através do exemplo da equação x + 1 − tan(x) = 0, e os passos para calcular as raízes com diferentes precisões são apresentados.

Tipologia: Provas

2022

Compartilhado em 07/11/2022

Maracana85
Maracana85 🇧🇷

4.2

(62)

223 documentos

1 / 9

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1 Raízes de equações
1.1 Equações transcendentes
Algumas equações que dependem de uma variável
x
podem ser resolvidas para obter um
ou mais valores de
x
que verificam a equação. Por exemplo, a equação
x2+4x+3=0
tem duas soluções,
x=1
e
x=3
, e a equação
ex=3
tem uma única solução
x=ln(3) =
1.0986...
Existem equações, chamadas
transcendentes
, em que não é possível escrever
uma expressão matemática para a solução
x
e até pode ser difícil determinar se existem
soluções e quantas. Por exemplo, a equação
x+1=tan(x)
é uma equação transcendente; as
suas soluções podem ser calculadas de forma aproximada, usando métodos numéricos.
Para facilitar a procura das soluções de uma equação transcendente, é conveniente rescrevê-
la na forma
f(x) = 0
; por exemplo, a equação
x+1=tan(x)
pode ser escrita como
x+1tan(x) = 0
. O problema de encontrar as soluções consiste então em encontrar as
raízes
da função
f(x)
, ou seja, os pontos onde o gráfico de
f(x)
corta o eixo das abcissas.
No exemplo anterior,
f(x) = x+1tan(x)
, o gráfico da função no intervalo
0x2π
obtém-se no Maxima com o seguinte comando:
(%i1) plot2d(x+1-tan(x),[x,0,2*%pi],[y,-5,5],[ylabel,"f(x)"]);
e o resultado (ver figura 1.1) mostra que nesse intervalo existem duas soluções, próximas
dos valores x=1.1 e x=4.5.
No caso das funções contínuas, se em dois pontos diferentes
a
e
b
(admitindo
a<b
),
os sinais de
f(a)
e
f(b)
são diferentes, deve existir pelo menos uma raiz de
f(x)
no
intervalo
a<x<b
. No caso da figura 1.1, vê-se que
f(0)
é positiva mas
f(1.3)
é negativa;
assim sendo, existe pelo menos uma raiz entre 0 e 1.3. Em
x=3
,
f(3)
é positiva, mas
comparando com o valor negativo de
f(1.3)
não se pode concluir que existam raízes no
intervalo 1.3<x<3, que nesse intervalo a função não é contínua.
1.2 Método de bissecções
Dados dois valores diferentes
x1
e
x2
, onde
x1<x2
e
f(x1)f(x2)<0
(ou seja, os sinais
de
f(x1)
e
f(x2)
são diferentes), calculam-se o ponto meio
xm= (x1+x2)/2
e o valor da
função nesse ponto,
f(xm)
. Se
f(xm)
for nula,
xm
é a raiz procurada; caso contrário, se
o sinal de
f(xm)
for o mesmo de
f(x1)
substitui-se
x1
por
xm
, se o sinal de
f(xm)
for o
mesmo de
f(x2)
substitui-se
x2
por
xm
e o processo repete-se indefinidamente até se obter
pf3
pf4
pf5
pf8
pf9

Pré-visualização parcial do texto

Baixe Métodos numéricos para encontrar raízes de equações: bisseções, falsa posição e Newton e outras Provas em PDF para Matemática, somente na Docsity!

1 Raízes de equações

1.1 Equações transcendentes

Algumas equações que dependem de uma variável x podem ser resolvidas para obter um ou mais valores de x que verificam a equação. Por exemplo, a equação x^2 + 4 x + 3 = 0 tem duas soluções, x = 1 e x = 3 , e a equação ex^ = 3 tem uma única solução x = ln( 3 ) =

  1. 0986... Existem equações, chamadas transcendentes, em que não é possível escrever uma expressão matemática para a solução x e até pode ser difícil determinar se existem soluções e quantas. Por exemplo, a equação x + 1 = tan(x) é uma equação transcendente; as suas soluções só podem ser calculadas de forma aproximada, usando métodos numéricos.

Para facilitar a procura das soluções de uma equação transcendente, é conveniente rescrevê- la na forma f (x) = 0 ; por exemplo, a equação x + 1 = tan(x) pode ser escrita como x + 1 − tan(x) = 0. O problema de encontrar as soluções consiste então em encontrar as raízes da função f (x), ou seja, os pontos onde o gráfico de f (x) corta o eixo das abcissas. No exemplo anterior, f (x) = x + 1 − tan(x), o gráfico da função no intervalo 0 ≤ x ≤ 2 π obtém-se no Maxima com o seguinte comando:

(%i1) plot2d(x+1-tan(x),[x,0,2%pi],[y,-5,5],[ylabel,"f(x)"]);*

e o resultado (ver figura 1.1) mostra que nesse intervalo existem duas soluções, próximas dos valores x = 1 .1 e x = 4 .5.

No caso das funções contínuas, se em dois pontos diferentes a e b (admitindo a < b), os sinais de f (a) e f (b) são diferentes, deve existir pelo menos uma raiz de f (x) no intervalo a < x < b. No caso da figura 1.1, vê-se que f ( 0 ) é positiva mas f ( 1. 3 ) é negativa; assim sendo, existe pelo menos uma raiz entre 0 e 1.3. Em x = 3 , f ( 3 ) é positiva, mas comparando com o valor negativo de f ( 1. 3 ) não se pode concluir que existam raízes no intervalo 1. 3 < x < 3, já que nesse intervalo a função não é contínua.

1.2 Método de bissecções

Dados dois valores diferentes x 1 e x 2 , onde x 1 < x 2 e f (x 1 ) f (x 2 ) < 0 (ou seja, os sinais de f (x 1 ) e f (x 2 ) são diferentes), calculam-se o ponto meio xm = (x 1 + x 2 )/ 2 e o valor da função nesse ponto, f (xm). Se f (xm) for nula, xm é a raiz procurada; caso contrário, se o sinal de f (xm) for o mesmo de f (x 1 ) substitui-se x 1 por xm, se o sinal de f (xm) for o mesmo de f (x 2 ) substitui-se x 2 por xm e o processo repete-se indefinidamente até se obter

2 Raízes de equações

f(x)

x

0

2

4

0 1 2 3 4 5 6

Figura 1.1: Gráfico da função x + 1 − tan(x).

um intervalo de comprimento muito reduzido:

|x 2 − x 1 | < ε (1.1)

onde ε/2 é a precisão com que se quer calcular a raiz. O valor final de xm será o que melhor aproxima o valor da raiz, com a precisão desejada.

Exemplo 1. Calcule a raiz de f (x) = x + 1 − tan(x) no intervalo 0 < x < 1. 3 com 2 casas decimais, usando o método de bisseções.

Resolução. Definem-se primeiro a função e os pontos iniciais:

(%i2) f(x) := float (x+1-tan(x))$ (%i3) [x1, x2]: [1, 1.2]$

É importante usar float, para garantir que a função dê sempre um número e não uma expressão.

Os valores da função nos pontos iniciais são

(%i4) [f(x1), f(x2)]; (%o4) [.4425922753450977, - .3721516221263186]

e como os sinais são diferentes, é possível usar o método das bissecções. O ponto meio e o valor da função nesse ponto são:

(%i5) [xm: (x1+x2)/2, f(xm)]; (%o5) [1.1, .1352403427513478]

Como o sinal da função nesse ponto é positivo, substitui-se x 1 pelo ponto meio e repete-se o passo anterior:

(%i6) x1: xm$ (%i7) [xm: (x1+x2)/2, f(xm)]; (%o7) [1.15, - .08449694875532554]

4 Raízes de equações

Exemplo 1. Calcule a raiz de f (x) = x + 1 − tan(x) no intervalo 0 < x < 1. 3 com 3 casas decimais, usando o método de falsa posição.

Resolução. Aproveitando que a função é a mesma que já foi definida no exemplo da secção anterior, basta definir novamente os valores iniciais e modificar o ciclo while usado na secção anterior. É conveniente também guardar os valores da função já calculados, para evitar a redundância de serem calculados novamente a cada iteração:

(%i16) [x1, x2]: [1.1, 1.2]$ (%i17) [f1, f2]: [f(x1), f(x2)]; (%o17) [.1352403427513478, - .3721516221263186]

Os valores da função nos dois extremos do intervalo são armazenados nas variáveis f 1 e f 2 ; o resultado (%o17) permite também conferir que o sinal da função muda entre x 1 e x 2. Como será claro nos resultados no fim deste exemplo, neste método a distância entre x 1 e x 2 não tem que ser pequena para que o valor xr esteja muito próximo da raiz. Assim sendo, a condição de paragem |x 2 − x 1 | < ε já não serve e no seu lugar deve comparar-se cada valor xr com o que tenha sido obtido na iteração anterior, que representaremos por x 0. Inicialmente pode admitir-se que x 0 e xr são os próprios x 1 e x 2.

(%i18) [x0, xr]: [x1, x2]$

Para obter a precisão de 3 casas decimais, usa-se o comando:

(%i19) while abs(xr-x0) > 0.0005 do (x0:xr, xr:x2-f2(x2-x1)/(f2-f1), fr:f(xr), print (x1, x2, xr), if f1fr>0 then (x1:xr,f1:fr) else (x2:xr,f2:fr))$ 1.1 1.2 1. 1.126654017428903 1.2 1. 1.131297851469829 1.2 1. 1.132100363591035 1.2 1.**

Note-se que o valor da raiz com três casas decimais, 1.132, foi obtido na quarta iteração, enquanto que no método de bisseções foram precisas 7 iterações. Neste caso foram também apresentados os valores de x 1 e x 2 em cada iteração, para mostrar que o valor de x 2 permanece sempre em 1.2 e, como tal, |x 2 − x 1 | não diminui muito.

1.4 Método de aproximações sucessivas

Quando a equação f (x) = 0 pode ser escrita na forma,

x = g(x) (1.3)

o método de aproximações sucessivas consiste em começar com um valor inicial x 0 e calcular a sequência x 1 = g(x 0 ), x 2 = g(x 2 ),... Dependendo da função g e do valor inicial,

1.4 Método de aproximações sucessivas 5

em alguns casos a sequência aproxima-se de um limite, isto é, dentro de uma tolerância numérica dada, o valor de g(xn) será igual a xn a partir de algum inteiro n e, nesse caso xn será raiz de f (x).

Exemplo 1. Encontre a raiz de f (x) = x + 1 − tan(x) mais próxima de x = 1. 1 , com 3 casas decimais, usando o método de aproximações sucessivas.

Resolução. A equação x + 1 − tan(x) = 0 pode também ser escrita:

x = tan(x) − 1

Definindo a função g(x) = tan(x) − 1 e com valor inicial x 0 = 1. 1 , os seguintes 6 valores na sequência xi são: (%i20) g(x) := float (tan(x)-1)$ (%i21) xi: 1.1$ (%i22) for i:1 thru 6 do (xi: g(xi), print (xi))$ . .

**-.

  • 1.** Esta sequência não parece ser convergente. O problema neste caso é que uma das condições para que a sequência seja convergente é que, na vizinhança da raiz que se pretende encontrar, o declive de g(x) seja menor que 1, que não é o que acontece neste caso: (%i23) subst(x=1.1, diff(tan(x)-1, x)); (%o23) 4. O problema pode ser resolvido quando se consegue inverter a função usada. Ou seja, em vez de se usar x = tan(x) − 1 pode usar-se a equação inversa, arctan(x + 1 ) = x, que implica usar g(x) = arctan(x + 1 ). No Maxima, a função inversa da tangente é a função atan. Com valor inicial x 0 = 1 .1, os primeiros termos da sequência xi são: **(%i24) g(x) := float (atan(x+1))$ (%i25) xi: 1.1$ (%i26) for i:1 thru 6 do (xi: g(xi), print (xi))$

1.** que converge rapidamente para o valor da raiz.

1.6 Sistemas de equações transcendentes 7

usada para forçar a que a expressão dentro dos parêntesis seja calculada e simplificada imediatamente. Usando o valor inicial x 0 = 1 .1, os seguintes 6 valores na sequência xi são: **(%i29) xi: 1.1$ (%i30) for i:1 thru 6 do (xi: xi-f(xi)/df(xi), print (xi))$

1.** Note-se a rapidez com que o método converge; após apenas 3 interações já se obtêm 4 casas decimais para a raiz e após a quinta iteração já é obtida a solução com o número máximo de casas decimais (15) que é possível obter com o formato de dupla precisão numérica usado pela função float.

1.6 Sistemas de equações transcendentes

O método de Newton pode ser generalizado facilmente para resolver um sistema de n variáveis com n equações contínuas e deriváveis. Por exemplo, no caso de duas equações com duas variáveis, f (x, y) = 0 e g(x, y) = 0 , os primeiros termos nas séries de Taylor para as duas funções são:

f (xi+ 1 , yi+ 1 ) = f (xi, yi) + (xi+ 1 − xi)

∂ f ∂ x

(xi,yi)

  • (yi+ 1 − yi)

∂ f ∂ y

(xi,yi)

g(xi+ 1 , yi+ 1 ) = g(xi, yi) + (xi+ 1 − xi)

∂ g ∂ x

(xi,yi)

  • (yi+ 1 − yi)

∂ g ∂ y

(xi,yi)

Os índices (xi, yi) indicam que x e y devem ser substituídas por (xi, yi). Substituindo f (xi+ 1 , yi+ 1 ) = 0 e g(xi+ 1 , yi+ 1 ) = 0 e escrevendo o sistema em forma matricial, obtém-se,

J(xi, yi) (ri+ 1 − ri) = −F(xi, yi) (1.8)

onde J(xi, yi) é a matriz jacobiana:

J(x, y) =

∂ f ∂ x

∂ f ∂ y ∂ g ∂ x

∂ g ∂ y

calculada em x = xi e y = yi. As matrizes ri+ 1 , ri e F(xi, yi) são:

ri+ 1 =

[

xi+ 1 yi+ 1

]

ri =

[

xi yi

]

F(xi, yi) =

[

f (xi, yi) g(xi, yi)

]

8 Raízes de equações

A equação (1.8) permite definir a relação de recorrência para xi+ 1 e yi+ 1 ,

ri+ 1 = ri − J−^1 (xi, yi) F(xi, yi) (1.11)

onde J−^1 (x, y) é a matriz inversa da matriz jacobiana.

Exemplo 1. Encontre os pontos de intersecção da circunferência x^2 + y^2 = 3 com a hipérbole y = 1 /x.

Resolução. Os gráficos da circunferência e da hipérbole podem ser traçados com o comando:

(%i31) plot2d ([sqrt(3-x^2), -sqrt(3-x^2), 1/x], [x,-3,3], [y,-2.25,2.25], [legend,false], [color,blue,blue,red]);

x

-1.

-0.

0

1

2

-3 -2 -1 0 1 2 3

Figura 1.2: Gráficos da circunferência x^2 + y^2 = 3 e a hipérbole y = 1 /x.

O gráfico (figura 1.2) mostra que existem quatro pontos de intersecção, simétricos em relação às retas y = ±x. Basta encontrar um desses quatro pontos, por exemplo, o que está mais próximo do ponto inicial x 0 = 0. 5 , y 0 = 1. Escrevendo as duas equações na forma f (x, y) = 0 e g(x, y) = 0, as duas funções são definidas pelas expressões, (%i32) f: x^2+y^2-3$ (%i33) g: 1-xy$*

e a inversa da matriz jacobiana é:

(%i34) Jinv: invert (jacobian ([f,g], [x,y]))$

Define-se a função vectorial F(ri),

(%i35) F(ri) := matrix ([subst ([x=ri[1][1], y=ri[2][1]], f)], [subst ([x=ri[1][1], y=ri[2][1]], g)])$