Buscar

Método da Newton-Raphson, Método da Posição Falsa e Método da Bissecção

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Maranhão
Bacharelado em Ciência e Tecnologia
Curso de Cálculo Numérico
1º Trabalho Prático
Prof. Dr. Kenio Alexsom de Almeida Silva 
Discente: Adriano Mitsuo Goto Trabalho completar para a nota da primeira avaliação da disciplina de Cálculo Numérico.
Número de matrícula: 2013046440
São Luís / Maranhão
2015
Resolução da questão utilizando o programa Matlab
Um modelo simplificado para a suspensão de um autom´ovel consiste em uma massa m, uma mola com constante el´astica k e um amortecedor com constante de amortecimento c, conforme mostrado na figura 7. Uma estrada esburacada pode ser modelada assumindo-se que a roda se mova para cima e para baixo de acordo com a equacão y = Ysin(ωt). A partir da solucão dessa equacão, o movimento do carro (massa-mola) para cima e para baixo é dado por x = Xsin(ωt−φ). A razão entre as amplitudes X e Y é dada por:
Figura 01: Representação do veículo.
Pode-se mostrar que 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 equação:
Asin(α)cos(α)+Bsin²(α)−Ccos(α)−Esin(α) = 0,
Onde:
 A = l sin(β1), 
B = l cos(β1), 
C = (h+.5D)sin(β1)−.5D tan(β1), e
E = (h+.5D)cos(β1)−.5D. 
Afirma-se que quando l = 89pol, h = 49pol, D = 55pol, e β1 = 11◦, o ângulo α é de aproximadamente de 33º. Verifique esse resultado.
Cálculo dos termos A, B, C e E.
A= l sin() 
A = 89 pol * sin(11°)
A = 16.98200059 pol
Arredondando, temos:
	A = 16.982 pol
O erro cometido ao aplicarmos o arredondarmos foi de:
	Erro = | 16.98200056 – 16.982| = 0.00000059 = 5.9*10-7 
	B = l cos()
	B = 89 pol * cos(11°)
	B = 87.36481933 pol
Arredondando, temos:
	B = 87.36482 pol
O erro cometido ao aplicarmos o arredondarmos foi de:
 	Erro = |87.36481933 – 87.36482| = 0.000000673 = 6.73 * 10-7
	C = (h + .5D)sin() – .5D tan()
	C = (49 pol +0.5*55 pol) sin(11°) – 0.5*55 pol * tan(11°)
	C = 76.5 pol * sin(11°) – 27.5 pol * tan(11°)
	C = 14.59688815 pol – 5.345458501 pol
	C = 9.251429649 pol
Arredondando, temos:
C = 9.25143 pol
O erro cometido ao aplicarmos o arredondamento foi de:
Erro = |9.251429646 – 9.25143| = 0.000000351 = 3.51*10-7
E = (h +.5D)cos() - .5D
E = (49 pol + 0.5*55 pol)cos(11°) – 0.5*55 pol
E = 76.5 pol * cos(11°) – 27.5 pol
E = 75.09447953 – 27.5 pol
E = 47.59447953 pol 
Arredondando, temos:
	E = 47.59448 pol
O erro cometido ao aplicar o arredondamento foi de :
	Erro = |47.59447953 – 47.59448| = 0.000000466 = 4.66*10-7
 Assim, a equação fica na forma:
16.982pol*sin()cos() + 87.36482pol*sin²() – 9.25143pol*cos() – 47.59448pol *sin() = 0
Aproximação da raiz utilizando o método da bissecção.
Seja
 
, o método da bissecção, onde:
a = 32.5°
b = 33.5°
O critério de parada será com base no tamanho do intervalo onde se encontra a raiz, que deverá ser menor que .
Para k = 0
Verificando os valores na função:
A raiz real está, então, entre e b.
O erro relativo à é:
Para k =1 
Testando os valores na função:
 
A raiz real está entre e .
O erro relativo à é:
Para k = 2
Testando os valores na função:
A raiz real está entre e .
O erro relativo à é:
Para K = 3
Testando os valores na função:
A raiz está entre e .
O erro relativo à é:
Para k = 4
Testando os valores na função:
A raiz está entre e .
O erro relativo à é:
Para k = 5
Testando os valores:
A raiz está entre e .
O erro relativo à é:
Para k = 6
Testando os valores:
A raiz está entre e .
O erro relativo à é:
 
Para k = 7
Testando os valores:
A raiz está entre e .
O erro relativo à é:
Para K = 8
Testando os valores:
O erro relativo à é:
Portanto, podemos tomar como a raiz real , com erro inferior à .
Para a utilização do algoritmo no Matlab, algumas considerações devem ser feitas:
O programa calcula o valor dos ângulos em radianos e não em graus.
O critério de parada do algoritmo é mais sofisticado que comparado ao cálculo acima. Nele são levados em conta o erro absoluto das aproximações e o valor da função no ponto calculado. Portanto, o algoritmo apresentará um numero maior de interações.
Fazendo a conversão dos dados iniciais, pela seguinte fórmula:
Assim;
Colocando os valores no programa, temos:
Figura 02: Resultados obtidos utilizando o método da Bissecção.
Fonte: Matlab
O resultado apresentado pelo algoritmo é 
Fazendo a conversão para graus:
Percebe-se, portanto, que há coerência no resultado obtido no cálculo anterior.
Aproximação da raiz utilizando o método da posição falsa.
Seja: 
O método da posição falsa para descobrir uma raiz real, tomando como dados iniciais:
Para k = 0, temos:
Fazendo o cálculo do erro relativo à :
Portanto, há a necessidade se fazer uma nova iteração.
Para k = 1, temos:
Como , a raiz real está entre e . Assim:
Fazendo o cálculo do erro relativo à :
Portanto, podemos tomar a raiz real =33.0095°, com um erro menor que .
Comparando com o algoritmo no Matlab, temos:
Fazendo a conversão dos valores:
Colocando os dados iniciais e o critério do erro inferior a , temos:
Figura 03: Resultados obtidos pelo método da Posição Falsa.
Fonte: Matlab
O resultado fornecido pelo programa foi , convertendo para graus, temos:
Percebe-se, portanto, que há coerência no resultado obtido no cálculo anterior.
Aproximação da raiz real utilizando o método da Secante.
Para o método de Newton, precisamos saber se no intervalo da raiz real a primeira derivada assuma o valor zero, isto é, se nesse mesmo intervalo tenha também uma raiz da derivada.
Seja:
E 
Plotando o gráfico da primeira derivada de :
Figura 04: Gráfico da primeira derivada.
Fonte: GeoGebra
Ampliando para o intervalo [31,34], próximo da raiz real da função .
Figura 05: Gráfico da deriva ampliado no intervalo [31,34]
Fonte: GeoGebra
Pelo gráfico, percebe-se que no intervalo da raiz real da função, há também raízes da derivada, o que torna o processo de convergência pelo o método lento ou ate mesmo indeterminado.
Uma boa saída é utilizar o método das secantes, na qual substitui a derivada por um quociente da diferença, retirando, assim, o problema do ponto zero na derivada.
 
Seja
 O método da secante e tomando como e .
Para k = 0
Como o valor de está bem próximo da média de e , então não tem necessidade testar o erro relativo aos dois extremos, pois os valores serão bem próximos. Testaremos em , com relação à .
Para k = 2
Calculando o erro relativo em :
Portanto, podemos tomar como raiz real o valor , com um erro inferior à 
Verificando o comportamento do algoritmo no Matlab, com os mesmos dados iniciais que os métodos passados, temos:
Figura 06: Resultado obtido utilizando o método da secante.
Fonte: Matlab
Percebe-se que o algoritmo precisou apenas de duas iterações para satisfazer os critérios pedidos, retornando um valor que tem as quatros primeiras casas decimais nulas na função.
Convertendo para graus, temos:
 33.0095139 °
Portanto, mostra-se que se obteve um valor bem aproximado com um número de iterações satisfatoriamente menor que comparado aos demais métodos.
Quadro comparativo 
	Abaixo, segue o quadro comparativo entre os métodos utilizados:
	Método 
	Bissecção
	Posição Falsa
	Secante
	Número de iterações
	
12
	
7
	
2
	
	
33.00952°
	
33.00953°
	
33.00951°Determine α para a situação em que l, h e β1 tenham os valores indicados na parte (a), mas D = 30pol.
Como apenas os valores de dos termos C e E irão mudar, o processo de convergência e até mesmo as contas necessária utilizando cada um dos métodos utilizados apresentarão comportamento similar ao item anterior, retirando, assim, a necessidade se fazer os cálculos braçais novamente. Ao invés disso, visto a eficiência dos algoritmos utilizados, serão feitos os cálculos apenas computacionalmente. 
Determinação dos coeficientes C e E.
C = (h + .5D)sin() – .5D tan()
C = (49pol + 0.5*30pol)*sin(11°) – 0.5*30pol*tan(11°)
C = 64pol*sin(11°) – 15pol*tan(11°)
C = 9.296071067 pol
Arredondando, temos:
C = 9.296071 pol
Com um erro de arredondamento de:
E = (h +.5D)cos() - .5D
E = (49pol + 0.5*30pol)cos(11°) – 0.5*30pol
E = 64pol*cos(11°) – 15pol
E = 47.82413974
Arredondando, temos:
E = 47.82414
Com um erro de arredondamento de:
Assim, equação fica na forma:
16.982pol*sin()cos() + 87.36482pol*sin²() – 9.296071pol*cos() – 47.82414pol * sin() = 0
Aproximação da raiz utilizando o método da Bissecção.
Como a equação mudou pouco em relação a anterior, esperamos, então, que a raiz esteja em um intervalo próximo à raiz anterior.
Estimando então que a raiz esteja no intervalo [32, 34].
Verificando a existência de raiz nesse intervalo:
Como , então há uma raiz no intervalo.
Seja:
O resultado obtido pelo algoritmo é:
Figura 07: Resultado obtido pelo método da Bissecção.
Fonte: Matlab
Percebe- se foram necessárias quatorze iterações para se atingir a precisão desejada.
O valor apresentado pelo programa é:
Convertendo, temos:
O que apresenta um ângulo levemente maior para evitar a falha dianteira quando se reduz o diâmetro da roda do veículo. O que era esperado geometricamente, a partir da figura 01.
Aproximação da raiz real utilizando o método da Posição Falsa.
Utilizando os mesmos dados iniciais que o método anterior, temos:
Figura 08: Resultados obtidos utilizando o método da Posição Falsa.
Fonte: Matlab
Pelo resultado obtido, temos .
O que, em graus, é .
Aproximação utilizando o método da Secante.
Sendo os mesmo dados iniciais,
Figura 09: Resultados obtidos utilizando o método da Secante.
Fonte: Matlab
O resultado apresentando pelo algoritmo é , que em graus,
 é 
Quadro comparativo 
A tabela abaixo mostra a diferenças entre os métodos utilizados:
	Método 
	Bissecção
	Posição Falsa
	Secante
	Número de iterações
	
14
	
9
	
3
	
	
33.18933°
	
33.18932°
	
33.18932°
	
	
	
	
	
	
	
	
Percebe-se, independentemente da mudança da equação, que o método da Secante se mostrou mais eficaz que comparado aos demais métodos utilizados.
 O erro máximo pedido em todos os cálculos foi de .
Estudos dos algoritmos empregados
Método da Bissecação
funcao = input(' Digite a funcao desejada:'); 
syms x
fun = inline(funcao);
a = input('Informe o intervalo inferior:');
b = input('Informe o intervalo superior:');
erro = input('Informe o erro maximo:');
ite = input('Informe o numero de iteracoes maxima: ');
mostra = 1;
k = 0;
x = a; fa = eval(funcao);
x = b; fb = eval(funcao);
if ( sign(fa) * sign(fb) > 0)
 fprintf('O intervalo fornecido nao contem uma raiz real.Por favor, forneca um outro intervalo.\n'),
 return
 end
fprintf('Calculo da raiz real usando o metodo da bisseccao.\n')
fprintf(' ite a b x fx \n')
while 1
 k = k +1;
 x = (a + b) / 2;
 fx = eval(funcao); 
 if mostra ~= 0
 fprintf( '%2i %11.5f %11.5f %14.9e %1.9e\n', k, a, b, x, fx)
 end
 if ((abs(b - a) < erro && abs(fx)< erro) || k >= ite),
 fprintf('Podemos tomar a raiz real como x = %1.9f\n',x)
break,
end
 if sign(subs(funcao,x)) * sign(subs(funcao,a)) > 0
a = x;
 
else
 b = x;
end
end
Como visto no algoritmo acima, nas linhas 1 até 7 são comando de interface com o usuário, onde são informadas todos os dados necessários para o cálculo.
Nas linhas 10 e 11 são feitas as avaliações dos valores da função no ponto a e b, verificando se há uma raiz real no intervalo fornecido. Caso haja uma raiz, o processo iterativo se inicia através do comando while que tem como condição o valor 1, isto é, enquanto houver o valor 1, o processo continuará executando. Dentro desse comando o contador k é incrementado e o valor da primeira aproximação x recebe a media aritmética dos extremos do intervalo e o seu valor é avaliado na função. Todos esses dados são impressos na tela nas linhas 19 e 20. O comando if da linha 19 apenas testa se o valor retornado ainda é 1. 
	A parte mais importante do código está na linha 23, onde é verificada se o valor de x está no intervalo onde a função muda de sinal, isto é, se a condição do método é satisfeita. Caso o produto entre o f(a) e o f(x) for maior que zero, isso significa que os dois pontos possuem imagens com sinais iguais, portanto, não há raiz nesse intervalo. Logo, o novo extremo a esquerda do intervalo conterá o valor de x, ou seja, o x será o novo a. Caso contrario, isso significa que o intervalo possuem a raiz e pode ser restringido pela direita fazendo o x ser o novo b.
	A condição de parada do comando while é se a distancia entre a aproximação atual e a anterior seja menor que o erro fornecido e o valor na função seja também menor que o erro ou, então, a função chegue no zero absoluto ou se o numero de iterações máxima fornecida pelo usuário seja alcançada. 
Método da Posição Falsa
funcao = input(' Digite a funcao desejada:');
syms x
fun = inline(funcao);
a = input('Informe o intervalo inferior:');
b = input('Informe o intervalo superior:');
erro = input('Informe o erro maximo:');
ite = input('Informe o numero de iteracoes maxima: ');
 
mostra = 1;
k = 0;
 
x = a; fa = eval(funcao);
x = b; fb = eval(funcao);
if ( sign(fa) * sign(fb) > 0)
fprintf('O intervalo fornecido nao contem uma raiz real.Por favor, forneca um outro intervalo.\n'),
 return
 end
fprintf('Calculo da raiz usando o metodo da posicao falsa.\n')
fprintf(' ite a b x fx \n')
 
k = 0;
while 1
k = k + 1;
x = (a * fb - b * fa)/(fb - fa);
fx = eval(funcao);
if mostra ~= 0
fprintf('%2i %11.5f %11.5f %14.9e %1.9e\n', k, a, b, x, fx)
end
 
if ( (abs(b - a)< erro && abs(fx)<erro)||fx== 0||k >= ite)
fprintf('\n\n')
 fprintf('Podemos tomar a raiz real como x = %1.9f\n',x),
break,
end
 
if sign(fx) * sign(fa) > 0
a = x ; fa = eval(funcao);
 
else
 b = x ; fb = eval(funcao);
 end
end
As primeiras quinze linhas do códigos são semelhantes ao código anterior. A parte essencial do código esta no dentro do comando while, especificamente na linha 28 onde é feita a condição do método, verificando de forma similar a do método da Bissecção. 
	Caso o valor da aproximação de x na função contenha o mesmo sinal do valor do ponto a aplicado na função, então quer dizer que a raiz não está entre a e x, portanto, podemos restringir o intervalo pela esquerda fazendo a receber o valor de x, isto é, o x ser o novo a.
	Caso contrário, a raiz não está entre x e b, portanto o intervalo pode ser restringido pela direita fazendo x ser o novo b.
Método da Secante
funcao = input(' Digite a funcao desejada:');
syms x
fun = inline(funcao);
a = input('Informe o intervalo inferior:');
b = input('Informe o intervalo superior:');
erro = input('Informe o erro maximo:');
ite = input('Informe o numero de iteracoes maxima: ');
 
mostra = 1;
k = 0;
 
x = a; fa = eval(funcao);
x = b; fb = eval(funcao);
if ( sign(fa) * sign(fb) > 0)
fprintf('O intervalo fornecido nao contem uma raiz real.Por favor, forneca umoutro intervalo.\n'),
return
end
 
disp('n a b x f(x)\n')
while 1
k = k+1;
x = a; fa = eval(funcao);
x = b; fb = eval(funcao);
 
z = (fb*(b -a))/(fb -fa);
x = b - z;
fx = eval(funcao);
 
if mostra ~= 0
fprintf('%2i %11.5f %11.5f %14.9e %1.9e\n', k, a, b, x, fx)
end
 
a = b;
b = x;
 
if ( (abs(x-a)<erro && abs(fx)< erro)||fx == 0 ||k >= ite),
fprintf('Podemos tomar a raiz real como x = %1.9f\n',x)
break,
end
 
end
As principais diferenças deste código para os demais já apresentados estão na forma de se obter a aproximação x nas linhas 21 e 22, opta-se pela forma ao invés de , por apresentar um menor número de operações, por conseguinte, um menor número de erros envolvidos. E na forma de restrição do intervalo que, diferentemente da Bissecção e da Posição Falsa, não há o critério de verificação de sinais da função nos pontos envolvidos nas linhas 27 e 28. Simplesmente se faz o b ser o novo a e o x ser o novo b. 
O que apesar de ser simples, o código demonstrou sua eficiência computacional em comparação aos outros dois métodos.
Referências bibliográficas 
[1] - RUGGIERO, M. A. G. e LOPES, V. L. R. “Cálculo Numérico: Aspectos Teóricos e Computacionais”, 2ª Ed., Makron Books, 1996. 
[2] – FRANCO, N.B. “Cálculo Numérico”, 2ª ED., Pearson, 2007.

Continue navegando