Você está na página 1de 7

CAPÍTULO 2 – CÁLCULO DE RAÍZES DE FUNÇÕES NÃO LINEARES

2.1 INTRODUÇÃO a linguagem de programação usada na


implementação dos algoritmos (Pascal, Fortan, C++,
A representação de números em máquinas digitais MatLab, etc). E mesmo quando usamos uma mesma
(calculadoras, computadores, etc) é feita na forma de linguagem, mas compiladores diferentes (Ex. C++
ponto flutuante com um número finito de dígito. da Borland e C++ da Microsoft), os resultados
Logo os números que tem representação infinita podem apresentar diferenças. Existem várias
(Ex. 1/3, π, √2 ) são representados de forma bibliotecas de rotinas numéricas em diversas
truncada. Com isto algumas das propriedades da linguagens e algumas disponíveis na Internet. Um
aritmética real não valem na aritmética exemplo é a LIMPACK: uma coleção de rotinas em
computacional. Como exemplo, na aritmética Fortran para soluções de sistemas lineares.
computacional temos:
𝑛 𝑛 2.2 MATLAB
𝑎𝑘 1
∑ ≠ ∑ 𝑎𝑘 , O MatLab surgiu nos anos 1970 como um
𝑁 𝑁 Laboratório de Matrizes para auxiliar os cursos de
𝑘=0 𝑘=0

Onde estamos considerando que no primeiro Teoria Matricial, Álgebra Linear e Analise
Numérica. Ele é tanto um ambiente quanto uma
somatório para cada k fazemos 𝑎𝑘 /N e depois
linguagem de programação, e um de seus aspectos
somamos. No segundo somatório somamos todos os
mais poderosos é que os problemas e as soluções são
𝑎𝑘 e o resultado da soma dividimos por N. Do ponto
expressos numa linguagem matemática bem
de vista analítico, as duas expressões são
familiar.
equivalentes, mas a segunda forma apresenta melhor
resultado do ponto de vista computacional, pois Apesar das últimas versões do MatLab ter
realiza menos operações e comete menos erros de expandido sua capacidade, o elemento básico dos
truncamento. Outros exemplos interessantes é que dados ainda é um vetor, o qual não requer
em aritmética computacional é possível que para A declaração de dimensão ou tipo variável. O MatLab
dado exista um ε ≠ 0 tal que: é um sistema interativo, onde os comandos podem
ser executados na janela de comandos ou por
A + ε = A.
programas.
Analiticamente a expressão acima é verdadeira
2.2.1. CÁLCULO NA JANELA DE COMANDOS
se, e somente se, ε = 0.
Um cálculo simples pode ser executado na
Outro assunto importante são os tipos de janela de comandos digitando as instruções no
esquemas numéricos. Eles são classificados como prompt como você faria numa calculadora.
esquemas diretos e esquemas iterativos. Os
esquemas diretos são aqueles que fornecem a >> 3*4 +5
ans = 17
solução após um número finito de passos. Os
esquemas iterativos são aqueles que repetem um Os símbolos dos operadores aritméticos são
número de passos até que um critério de parada seja dados na Tabela 1.1. As expressões são calculadas
satisfeito. Como exemplo considere o algoritmo que da esquerda para a direita, com a potenciação tendo
é usado para determinar a precisão de uma máquina precedência, seguido da multiplicação e divisão
digital. (mesma precedência) e pela adição e subtração
(também com a mesma precedência).
Algoritmo: Epsilon da Máquina
𝐸𝑝 ← 1 As Variáveis. A forma de armazenar o resultado para
Enquanto (1 + 𝐸𝑝) > 1, faça: uso posterior é pelo uso de variáveis.
𝐸𝑝 ← 𝐸𝑝/2
fim enquanto >> s = 3+4+7+12
OutPut: 2Ep s = 26
Tabela 2.1 Operadores Aritméticos
O critério de parada é (1 + 𝐸𝑝) ≤ 1 e cada OPERAÇÃO SÍMBOLO
execução de laço Enquanto é chamado de iteração. Adição a+b
Máquinas diferentes apresentarão resultados Multiplicação a*b
diferentes. Subtração a–b
Divisão a/b ou b/a
Outro fator que pode influenciar nos resultados é Potenciação a^b
O nome da variável pode consistir de no Matriz n x m cujo elementos são todos iguais a 1:
máximo 31 caracteres, iniciando sempre por um >> A = ones (2 , 3 )
caractere alfa seguido de qualquer combinação de A=
caracteres do tipo alfa, numérico e underscores. Por 1 1 1
exemplo, resultado_da_soma_2. Ao contrário de 1 1 1
outras linguagens, o MatLab diferencia as variáveis Matriz nula de ordem n x m:
que usam letras minúsculas e maiúsculas. Isto é, as
variáveis Contas, contas, conTas e CoNtAs, são >> B = zeros (3 , 4 )
A=
consideradas como quatro variáveis diferentes. Para 0 0 0 0
saber quais as variáveis que estão ativas utilizar o 0 0 0 0
comando who. As variáveis são tratadas como 0 0 0 0
matrizes, apesar dos escalares não serem
apresentados na rotação matricial. Um vetor linha Como na maioria das linguagens de
pode ser definido como programação, o MatLab oferece diversas funções
elementares que são importantes em matemática. A
>> x=[ 1 2 3 4] Tabela 1.3 apresenta uma lista destas funções e sua
x=
sintaxe.
1 2 3 4
Tabela 1.3 Funções Elementares
Também podemos separar os elementos por
vírgulas. Já um vetor coluna pode ser definido da FUNÇÃO SINTAXE
Valor Absoluto abs(x)
seguinte forma Arco Cosseno acos(x)
>> y=[5; 6; 7; 8] Arco Seno asin(x)
y= Cosseno cos(x)
5 Exponencial 𝑒 𝑥 exp(x)
6 Logaritmo Natural log(x)
7 Logaritmo base 10 log10(x)
8 Seno sin(x)
Raiz Quadrada sqrt(x)
Um exemplo de uma matriz 3 x 4. Tangente tan(x)
>> a= [ 1 2 3 4; 5 6 7 8; 9 10 11 12] Se desejamos gerar o gráfico da função 𝑠𝑒𝑛(𝑥)
a= no intervalo [−𝜋 , 𝜋] devemos proceder da seguinte
1 2 3 4 forma:
5 6 7 8
9 10 11 12 >> x= −pi : 0.01 : pi;

Os elementos na i-ésima linha e na j-ésima >> f = sin ( x );


coluna, denotados por 𝑎𝑖𝑗 podem ser obtidos pelo >> plot (x , f)
comando 𝑎(𝑖, 𝑗), por exemplo 𝑎(2, 3) = 7. Em Note, que na definição do vetor x, usamos o
algumas situações necessitamos de vetores com passo igual a 0.01. Isto determina a quantidade de
alguma estrutura particular. Por exemplo, um vetor pontos que o comando plot usa para gerar o gráfico.
cujo o primeiro termo vale −2 e o ultimo vale 3 e os Quanto mais ponto mais perfeito será o gráfico (em
termos intermediários variam ao passo de 0,5. Este contra partida maior o tempo de execução). Se
vetor pode ser definido pela linha de comando: tivéssemos o passo 0.5 não teríamos um gráfico de
>> v= −2 : 0.5 : 3 boa qualidade.
v=
-2.0 -1.5 -1.0 -0.5 0 0.5 1.0 1.5 2.0 2.5 3.0
2.2.2. M-arquivos

De forma geral este comando tem a sintaxe Existem dois tipos de programas em MatLab:
scripts e functions. Ambos devem ser salvos com
v = a : passo : b extensão *.m no diretório corrente. Uma diferença
Algumas matrizes elementares podem ser básica entre os dois é que o scripts trata as variáveis,
geradas através de comandos simples, por exemplo, nele definidas, como variáveis globais, enquanto
a matriz identidade: functions trata as variáveis como variáveis locais.
Desta forma functions tem que ter um valor de
>> I= eye (3)
retorno.
I=
1 0 0 Scripts. Permite que um conjunto de comandos e
0 1 0 definições sejam executados através de um único
0 0 1 comando na janela de comandos. Como exemplo, o
script seguinte calcula a aproximação da derivada de atribui-se a x a próxima coluna de vetor. Por
𝑠𝑒𝑛(𝑥) usando diferenças finitas. exemplo,
% Aproximação da derivada do seno >> for n=1:5
% Usando o operador de diferença finita progressiva. x (n) = cos(n*pi/2);
clear; end
h=0.0001 >> x
x= input (‘Entre com o valor de, x=’); % atribuir valores a x x = 0 . 0000 −1 . 0000 −0 . 0000 1 . 0000 0 . 0000
disp(‘ O valor da aproximacao eh...’) %Mostra mensagem
no monitor Isto diz que para n igual a 1 até 5 calcule os
dsen= (sin(x+h)−sin(x)) /h comandos até end.
As primeiras duas linhas são comentários que Ao contrario do loop for, que executa um grupo
descrevem o script. Na quinta linha temos o de comandos um número fixo de vezes, o loop while
comando que permite atribuir valores a uma executa um grupo de comandos quantas vezes forem
variável. E na sexta linha o comando que permite necessárias para que uma condição seja negada. Sua
mostrar uma mensagem no monitor. Vamos supor forma geral é
que este arquivo seja salvo com o nome de while expressão
deriva_seno.m. comandos...
end
Functions. Numa função em MatLab a primeira
linha é da forma function y = nome(argumentos). O grupo de comandos entre while e end são
Para ilustrar o uso de funções em MatLab considere executados até que assuma um valor falso. Por
o seguinte código: exemplo,
function dsen=deriva_sin (x , h) while abs (x(n) − x(n − 1)) > 10^(−6)
% Aproximação da derivada do seno x (n) = 2*x(n −1) + 1/4;
% Usando o operador de diferença finita progressiva. n= n+1;
dsen= (sin(x+h)−sin(x)) /h; end

Apesar deste arquivo poder ser salvo com um Neste caso o grupo de comandos são executados até
nome qualquer, é usual usar o mesmo nome da que o valor absoluto da diferença entre dois valores
função, ou seja deriva_sin.m. Para executá-lo consecutivos seja menor ou igual a 10−6.
devemos digitar seu nome e informar os valores dos A estrutura if-else-end permite que grupos de
argumentos, por exemplo, comandos sejam executados por um teste relacional.
>> y=deriva_sin (3.14 , 0.001) A forma geral é dada por
o que forneceria em y uma aproximação da derivada if expressão
da função seno em 3.14. Uma diferença importante comandos 1...
else expressão
entre esta versão, usando o function, com a anterior
comandos 2...
é que o valor calculado poder ser atribuído a uma end
variável. Além disso, agora podemos escolher o
valor de h, que na versão anterior estava fixo em Se a expressão for verdadeira é executado o grupo
h=0.0001. Vale notar que no primeiro caso todas as de comandos 1, caso contrario é executado o grupo
variáveis do script estão ativas, isto é, a variável h de comandos 2. Esta estrutura permite o uso da
só é ativada na execução da função. forma mais simples que envolve só um condicional.
Controle do Fluxo. É um recurso que permite que if expressão
resultados anteriores influenciem operações futuras. comandos...
end
Como em outras linguagens, o MatLab possui
recursos que permitem o controle de fluxo de Como exemplo, considere o seguinte fragmento de
execução de comando, com base em estruturas de código que calcula o valor absoluto de um número.
tomada de decisões. Apresentamos as estruturas de if x < 0
loops for, loops while e if-else-end. A forma geral x= −x
do loop for é end
for x = vetor Isto é, se x for menor que zero então troca de sinal,
comandos...
caso contrário nada é feito.
end
Os comandos entre for e end são executados
uma vez para cada coluna de vetor. A cada iteração
2.3 ISOLAMENTO DAS RAÍZES Exemplo 2.2 Dá análise da Fig. 2.1 a função 𝑓(𝑥) =
𝑒 −𝑥 − 𝑥 tem uma raiz em [𝑎, 𝑏]. Tabelando a função
Um número x que satisfaz a equação 𝑓(𝑥) = 0 é para valores a partir de zero e espaçados de 0,25
chamado de raiz ou zero de f. O objetivo é encontrar observa-se que:
um intervalo [a, b], de pequena amplitude (𝑏 − 𝑎 ≪ x 0 0.25 0.5 0.75 1
1), que contenha a raiz que desejamos determinar. 𝑓(𝑥)
Para isto usaremos duas estratégias: análise gráfica e
tabelamento da função. No intervalo [0.5, 0.75], 𝑓(𝑎)𝑓(𝑏) < 0, logo a raiz
pertence ao intervalo.
A análise gráfica é baseada na ideia de que, a
partir da equação 𝑓(𝑥) = 0, podemos obter uma Note que 𝑓 ′ (𝑥) = −𝑒 −𝑥 − 1 < 0, ∀ 𝑥 ∈ ℜ, isto
equação equivalente 𝑔(𝑥) − ℎ(𝑥) = 0, onde g e h é, 𝑓’ preserva o sinal em [𝑎, 𝑏] o que implica em
sejam funções mais simples e de fácil análise dizer que esta raiz é única!
gráfica. Esboçando o gráfico de g e h podemos
determinar os pontos x, onde as curvas se 2.4 MÉTODO DA BISSECÇÃO
interceptam, pois estes pontos serão as raízes de
Este método é baseado no Teorema 2.1. Seja
𝑓(𝑥) (𝑔(𝜉) = ℎ(𝜉) ⟹ 𝑓(𝜉) = 0).
𝑓(𝑥) uma função contínua no intervalo [a, b] tal
Exemplo 2.1 Sendo 𝑓(𝑥) = 𝑒 −𝑥 − 𝑥 temos 𝑓(𝑥) = que 𝑓(𝑎)𝑓(𝑏) < 0 e seja 𝜀 > 0 um número dado. A
𝑔(𝑥) − ℎ(𝑥), onde 𝑔(𝑥) = 𝑒 −𝑥 e ℎ(𝑥) = 𝑥. ideia é reduzir a amplitude do intervalo até atingir a
3 precisão requerida: 𝑏 − 𝑎 < 𝜀, usando divisão
h(x) = x
g(x) = exp(-x) sucessivas do intervalo.
2.5

1.5

0.5

-0.5

-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
valores de x

Figura 2.1 Exemplo 2.1 da função f(x) = e−x − x.


Na Fig. 2.1 as curvas se interceptam no intervalo
[0, 1]; Pelo comportamento das funções 𝑔(𝑥) e ℎ(𝑥)
não há outro ponto de intercepção; Logo, 𝑓(𝑥)
admite uma única raiz. Figura 2.2 Esquema geométrico do Método da Bissecção.

A fase de refinamento será mais eficiente 𝑎0 + 𝑏0


𝑓(𝑎0 ) < 0 𝜉 ∈ (𝑎0 , 𝑥0 )
quanto menor for a amplitude do intervalo que 𝑥0 = ⇒ {𝑓(𝑏0 ) > 0 ⇒ { 𝑎1 = 𝑎0
contém a raiz. Para obtermos um intervalo de menor 2 𝑏1 = 𝑥0
𝑓(𝑥0 ) > 0
amplitude usaremos a estratégia do tabelamento que
é baseada no seguinte Teorema. 𝑓(𝑎1 ) < 0 𝜉 ∈ (𝑎1 , 𝑏1 )
𝑎1 + 𝑏1
𝑥1 = ⇒ {𝑓(𝑏1 ) > 0 ⇒ { 𝑎2 = 𝑥1
Teorema 2.1 Seja 𝑓(𝑥) uma função contínua num 2 𝑏2 = 𝑏1
𝑓(𝑥1 ) < 0
intervalo [a, b]. Se 𝑓(𝑎)𝑓(𝑏) < 0 então existe pelo
menos uma raiz 𝜉 ∈ [𝑎, 𝑏]. 𝑓(𝑎2 ) < 0 𝜉 ∈ (𝑎2 , 𝑏2 )
𝑎2 + 𝑏2
O Teorema 2.1 garante a existência de pelo 𝑥2 = ⇒ {𝑓(𝑏2 ) > 0 ⇒ { 𝑎3 = 𝑥2
2 𝑏3 = 𝑏2
menos uma raiz, mas pode ser que o intervalo 𝑓(𝑥2 ) < 0
contenha mais de uma raiz. E ainda, 𝑓′(𝑥) preserva E assim vamos calculando a sequência 𝑥𝑘 até que
o sinal em [𝑎, 𝑏] e 𝑓(𝑎)𝑓(𝑏) < 0, então o intervalo seja satisfeito o critério de parada
contém uma única raiz.
𝑏𝑘 − 𝑎𝑘 < 𝜀
Se 𝑓(𝑎)𝑓(𝑏) > 0 não podemos afirmar nada
sobre a existência ou não de raízes. Esse critério garante que se tomarmos 𝑥̅ ∈ [𝑎𝑘 , 𝑏𝑘 ],
teremos a garantia que o erro é menor que 𝜀, isto é Como estes valores são sempre positivos, podemos
aplicar a função logaritmo, obtendo
|𝑥̅ − 𝜉| ≤ 𝑏𝑘 − 𝑎𝑘 < 𝜀
log(𝑏0 − 𝑎0 ) − log(𝜀)
2.4.1 Estudo da Convergência 𝑘>
log(2)
A convergência é bastante intuitiva, como é
mostrado na Fig. 2.2. Vejamos a demonstração Exemplo 2.3 No Exemplo 2.1 isolamos uma raiz de
analítica através do seguinte teorema. 𝑓(𝑥) = 𝑒 −𝑥 − 𝑥 no intervalo de [0.5, 0.75]. Usando
a precisão 𝜀 = 10−8 , temos
Teorema 2.2 Seja f uma função contínua em [a, b],
onde 𝑓(𝑎)𝑓(𝑏) < 0. Então o método da bissecção log(0.75 − 0.5) − log(10−8 )
𝑘> = 24.5754
gera uma sequencia {𝑥𝑘 } que converge para a raiz 𝜉 log(2)
quando 𝑘 → ∞. Logo será necessário no mínimo 25 iterações para
Prova: O método gera três sequências: que o método da bissecção possa atingir a precisão
{𝑎𝑘 }: Sequência não decrescente desejada.
e limitada
superiormente por 𝑏0 . Logo Exemplo 2.4 Considerando a equação 𝑥 3 − 2𝑥 −
5 = 0. Sendo 𝑓(2) = −1 < 0 e 𝑓(3) = 16 > 0,
𝑎0 ≤ 𝑎1 ≤ ⋯ < 𝑏0 ⇒ ∃ 𝑀 ∈ ℝ
uma vez que 𝑓 ′ (𝑥) = 3𝑥 2 − 2 não se anula em
Tal que: lim 𝑎𝑘 = 𝑀 [2, 3], existe uma única raiz 𝑓(𝑥) = 0 neste
𝑘→∞
intervalo.
{𝑏𝑘 }: Sequência não crescente e limitada
inferiormente por 𝑎0 . Logo 2.5 MÉTODO DE NEWTON-RAPHSON
𝑏0 ≥ 𝑏1 ≥ ⋯ > 𝑎0 ⇒ ∃ 𝑚 ∈ ℝ
O método de Newton-Raphson (MNR) pode ser
Tal que: lim 𝑏𝑘 = 𝑚 usado para calcular raízes reais e complexas de 𝑓(𝑥) =
𝑘→∞
0. É determinado de tal forma que teremos uma função
{𝑥𝑘 }: Por construção temos que de iteração tal que 𝜙 ′ (𝜉) = 0, onde 𝜉 é uma raiz de f.
𝑎𝑘 + 𝑏𝑘 Com isto temos a garantia que existe um intervalo [𝑎, 𝑏]
𝑥𝑘 = ⇒ 𝑎𝑘 < 𝑥𝑘 < 𝑏𝑘 , ∀ 𝑘 ∈ ℕ (1) que contém a raiz e que |𝜙′(𝑥)| ≪ 1 e conseqüentemente
2
a convergência será mais rápida.
A amplitude de cada intervalo gerado é metade
Para determinar a forma de 𝜙 considere uma função
da amplitude do intervalo anterior, assim temos,
𝐴(𝑥) continua e diferenciável e 𝐴(𝑥) ≠ 0, ∀𝑥:
𝑏0 − 𝑎0
𝑏𝑘 − 𝑎𝑘 = 𝑓(𝑥) = 0 ⇒ 𝐴(𝑥)𝑓(𝑥) = 0 ⇒ 𝑥 = 𝑥 + 𝐴(𝑥)𝑓(𝑥) = 𝜙(𝑥)
2𝑘
Calculando a derivada de 𝜙 na raiz 𝜉 temos que
Calculando o limite quando 𝑘 → ∞ temos
′ ′
𝜙′(𝜉) = 1 + 𝐴 (𝜉)𝑓(𝜉) + 𝐴(𝜉)𝑓 (𝜉) = 0
𝑏0 − 𝑎0
lim (𝑏𝑘 − 𝑎𝑘 ) = lim ( )=0 Como 𝑓(𝜉) = 0 e consideramos que 𝑓 ′ (𝜉) ≠ 0, segue
𝑘→∞ 𝑘→∞ 2𝑘
que
Isso segue que 1
𝐴(𝜉) = − ′
lim 𝑏𝑘 − lim 𝑎𝑘 = 0 ⇒ 𝑀 − 𝑚 = 0 ⇒ 𝑀 = 𝑚 𝑓 (𝜉)
𝑘→∞ 𝑘→∞
Assim tomamos a função 𝐴(𝑥) = −1/𝑓 ′ (𝑥), e portanto
Usando este fato e calculando o limite em (1) 𝑓(𝑥)
𝜙(𝑥) = 𝑥 −
𝑚 = lim 𝑎𝑘 < lim 𝑥𝑘 < lim 𝑏𝑘 = 𝑚 ⇒ lim 𝑥𝑘 𝑓′(𝑥)
𝑘→∞ 𝑘→∞ 𝑘→∞ 𝑘→∞
=𝑚 Com esta função de iteração montamos o processo
iterativo do método de Newton-Raphson, onde dado 𝑥0
Portanto m é raiz de f, isto é f (m) = 0. Em cada 𝑓(𝑥𝑛 )
iteração 𝑓(𝑎𝑘 )𝑓(𝑏𝑘 ) < 0. 𝑥𝑛+1 = 𝑥𝑛 − ′ , 𝑛 = 0,1,2, …
𝑓 (𝑥𝑛 )
2.4.2 Estimativa do Número de Iterações
Graficamente este método tem a interpretação
Pelo critério de parada podemos observar que mostrada na Fig. 2.3. A derivada de uma função no ponto
o número de iterações depende do intervalo inicial 𝑥𝑛 é igual a tangente do ângulo formado entre a reta
[𝑎0 , 𝑏0 ] e da precisão requerida 𝜀. Dada uma tangente a curva, no ponto 𝑥𝑛 , e o eixo x.
precisão 𝜀 temos, Usando a relação sobre o triangulo retângulo
temos
𝑎0 − 𝑏0 𝑏0 − 𝑎0 𝑓(𝑥𝑛 ) 𝑓(𝑥𝑛 )
𝑏𝑘 − 𝑎𝑘 < 𝜀 => 𝑘
< 𝜀 => 2𝑘 > 𝑓 ′ (𝑥𝑛 ) = tan(𝛼) = ⇒ 𝑥𝑛+1 = 𝑥𝑛 − ′
2 𝜀 𝑥𝑛 − 𝑥𝑛+1 𝑓 (𝑥𝑛 )
a) ln(𝑥) + 2𝑥 = 0 𝑒𝑥
d) 2 cos(𝑥) − 2
=0
b) 𝑒 𝑥 − sin(𝑥) = 0 e) 3 ln(𝑥) −
𝑥2
=0
2

c) ln(𝑥) − 2𝑥 = −2 f) (5 − 𝑥)𝑒 𝑥 = 1

3.Utilize o Método da Bissecção e aproxime a menor raiz


em módulo com erro relativo menor que 10−1 para as
equações a) e b) da questão 2.
4. Utilize o Método Iterativo Linear e aproxime a menor
raiz em módulo com erro relativo menor que 10−2 para
as equações c) e d) da questão 2.
5. Utilize o Método de Newton e aproxime a menor raiz
Teorema 2.3 Sejam f, f’, f”, funções contínuas num em módulo com erro relativo menor que 10−3 para as
intervalo [a, b], onde existe uma raiz 𝜉. Supor que equações d) e f) da questão 2.
𝑓 ′ (𝜉) ≠ 0. Então existe um intervalo[𝑎̅, 𝑏̅] ⊂ [𝑎, 𝑏], 6. Achar a raiz p-ésima de um número positivo a é
𝑝
contendo a raiz 𝜉, tal que se 𝑥0 ∈ [𝑎̅, 𝑏̅] , a seqüência equivalente a achar a raiz positiva de √𝑎 = 𝑥.
{𝑥𝑛 } gerada pelo processo iterativo a) Encontre um intervalo que depende do valor de a e
𝑓(𝑥𝑛 ) que contenha a raiz.
𝑥𝑛+1 = 𝑥𝑛 −
𝑓 ′ (𝑥𝑛 ) b) Verifique se a função de iteração 𝜙(𝑥) = 𝑎⁄𝑥 𝑝−1
converge para a raiz. satisfaz os critérios de convergência do Método Iterativo
Linear.
Exemplo 2.3 Considere 𝑓(𝑥) = 𝑒 −𝑥 − 𝑥 possuindo uma
raiz no intervalo [0.5, 0.75], vamos achar uma c) Verifique que o processo iterativo gerado pelo M.N.R.
aproximação usando 𝑥0 = 0.625 𝑒 𝜀 = 0.006. Sendo é dado por
1 𝑎
𝑓 ′ (𝑥) = −𝑒 −𝑥 − 1 𝑥𝑛+1 = [(𝑝 − 1)𝑥𝑛 + 𝑝−1 ]
𝑝 𝑥𝑛
teremos o processo iterativo
d) Implemente um programa em MatLab que execute o
𝑓(𝑥𝑛 ) 𝑒 −𝑥 − 𝑥 processo iterativo dado em c).
𝑥𝑛+1 = 𝑥𝑛 − ′ = 𝑥𝑛 + −𝑥
𝑓 (𝑥𝑛 ) 𝑒 +1 7. Dada a função 𝑓(𝑥) = 𝑒 𝑥 − 4𝑥 2 .
Assim temos que a) Isole as raízes da função 𝑓(𝑥).
𝑒 −𝑥0 − 𝑥0
𝑥1 = 𝑥0 + −𝑥 = 0.56654 b) Verifique se as funções abaixo são funções de iteração
𝑒 0+1 de 𝑓 e se satisfazem o critério de convergência do M.I.L.
|𝑥1 − 𝑥0 | = 0.0584 > 𝜀 para a raiz positiva.
𝑒 −𝑥1 − 𝑥1 1
𝑥2 = 𝑥1 + = 0.56714 𝜙1 (𝑥) = 𝑒 𝑥⁄2 𝜙2 (𝑥) = ln(4𝑥 2 )
𝑒 −𝑥1 + 1 2
|𝑥2 − 𝑥1 | = 0.0006 < 𝜀 c) Tomando 𝑥0 = 0.6 e 𝜀 = 0.01, aplique o M.I.L. para
encontrar uma aproximação para a raiz positiva, usando
EXERCÍCIO 2 uma função de iteração que satisfaça os critérios de
1.Calcule a precisão de sua máquina usando o algoritmo: convergência.
Algoritmo: Epson da Máquina 8. A função 𝑓(𝑥) = sin(cos(√3𝑥)) tem uma raiz no
Input: A: número que representa a grandeza intervalo [0.7, 0.9]. Encontre uma aproximação com 𝜀 =
0.07 escolhendo entre os métodos numéricos estudados o
Ep ← 1 mais adequado. Justifique sua resposta.
Enquanto (A+Ep) > 1, faça: 9. A equação 𝑓(𝑥) = 𝑒 𝑥 − 3𝑥 2 = 0 tem três raízes. Um
Ep ← Ep/2 método iterativo pode ser definido usando a preparação
óbvia da equação:
Fim enquanto
Output: Imprimir 2Ep 𝑒𝑥
𝑥 = ±√
Tomando A = 1, 10, 100, 1000. Comente os resultados. 3

2. Localize graficamente e dê intervalos de amplitude 0.5 Verificar que se começando com 𝑥0 = 0 haverá
que contenha as raízes das equações: convergência para a raiz próxima de −0.5, se o valor
negativo for usado e que haverá convergência para a raiz No intervalo [0, 1] e com precisão 𝜀 = 10−2.
próxima de 1.0, se o valor positivo for usado.
Nas questões 12 a 14, encontre aproximações para a
10.Mostre que 𝑥 3 − 2𝑥 − 17 = 0 tem apenas uma raiz solução da equação 3𝑥 2 + 𝑥 3 = 1, no intervalo [−4, 0] e
real e determine seu valor correto até 2 casas decimais com precisão 𝜀 = 10−4.
usando o método de Newton.
12. Utilizando o Método da bissecção;
11. Utilizando o Método da bissecção encontre 13. Utilizando o Método Iterativo Linear;
aproximações para a solução da equação 14. Utilizando o Método de Newton-Raphson.
sen 𝑥 − 𝑒 𝑥 = 0

Você também pode gostar