ALGORITMOS E IMPLEMENTAÇÕESMétodo de newton

Implementação de equações dentro da computação, programação e algoritmos.

Moderador: [ Moderadores TTB ]

Avatar do usuário
Autor do Tópico
cidadantas
iniciante
Mensagens: 6
Registrado em: Sáb 08 Jun, 2019 17:48
Última visita: 10-08-19
Jun 2019 08 17:52

Método de newton

Mensagem não lida por cidadantas »

USANDO O SCILAB: Como calcular a raiz a quinta de um número S, onde o S é o único parâmetro de entrada

Última edição: cidadantas (Sáb 08 Jun, 2019 17:52). Total de 1 vez.



Avatar do usuário
baltuilhe
2 - Nerd
Mensagens: 228
Registrado em: Dom 05 Abr, 2015 16:39
Última visita: 16-11-23
Jun 2019 08 19:10

Re: Método de newton

Mensagem não lida por baltuilhe »

Quer ajuda com o scilab ou 'na mão'? :)




Avatar do usuário
Autor do Tópico
cidadantas
iniciante
Mensagens: 6
Registrado em: Sáb 08 Jun, 2019 17:48
Última visita: 10-08-19
Jun 2019 08 19:12

Re: Método de newton

Mensagem não lida por cidadantas »

QUero ajudo no Scilab
Última edição: cidadantas (Sáb 08 Jun, 2019 19:13). Total de 1 vez.



Avatar do usuário
Autor do Tópico
cidadantas
iniciante
Mensagens: 6
Registrado em: Sáb 08 Jun, 2019 17:48
Última visita: 10-08-19
Jun 2019 09 04:46

Re: Método de newton

Mensagem não lida por cidadantas »

Mas poderia ser não mão também, qualquer um dos dois



Avatar do usuário
baltuilhe
2 - Nerd
Mensagens: 228
Registrado em: Dom 05 Abr, 2015 16:39
Última visita: 16-11-23
Jun 2019 09 09:26

Re: Método de newton

Mensagem não lida por baltuilhe »

Bom dia!

Para calcular a raiz quinta de um número S podemos utilizar a seguinte função:
[tex3]f(x)=x^5-S[/tex3]

E, desta função, buscar uma raiz, que será a resposta.

O método de Newton-Raphson é um método iterativo, que consiste em utilizar um valor inicial em uma função e, a cada novo valor, substituir este na mesma função, até 'convergir' para a resposta.
A função é a seguinte:
[tex3]\varphi(x_k)=x_k-\dfrac{f(x_k)}{f(x_k)}=x_{k+1}[/tex3]

Agora, precisamos derivar a função inicial:
[tex3]f'(x)=5x^4[/tex3]

Bom, como não temos a raiz quinta de S, temos que arbitrar um número inicial para a mesma, podemos iniciar com S/5 (um quinto) do valor, como estimativa inicial.
Agora, só substituir.

Vamos testar?

Para S=32, S/5=32/5=6,4

Montando a tabela:
[tex3]\begin{array}{r|r|r|r}\hline\\x&f(x)&f'(x)&\varphi(x)\\
\hline
6,4000&10.705,4182&8.388,6080&5,1238\\
5,1238&3.499,5133&3.446,1857&4,1083\\
4,1083&1.138,3365&1.424,3562&3,3091\\
3,3091&364,7797&599,5281&2,7007\\
2,7007&111,6752&265,9962&2,2809\\
2,2809&29,7350&135,3303&2,0612\\
2,0612&5,2049&90,2507&2,0035\\
2,0035&0,2810&80,5615&2,0000\\
2,0000&0,0000&80,0000&\color{green}\boxed{2,0000}\\
\hline
\end{array}[/tex3]

Espero ter ajudado!



Avatar do usuário
Autor do Tópico
cidadantas
iniciante
Mensagens: 6
Registrado em: Sáb 08 Jun, 2019 17:48
Última visita: 10-08-19
Jun 2019 11 19:31

Re: Método de newton

Mensagem não lida por cidadantas »

Bautuilhe, boa noite!

Por que vc escolheu S/5 como aproximação inicial?
Isso se aplica para qualquer número real?
Se eu escolher um número muito próximo de 0, isso não tenderia ao infinito?
Ou como eu faria para mostrar que s/5 < S^1/5
Última edição: cidadantas (Ter 11 Jun, 2019 19:32). Total de 2 vezes.



Avatar do usuário
baltuilhe
2 - Nerd
Mensagens: 228
Registrado em: Dom 05 Abr, 2015 16:39
Última visita: 16-11-23
Jun 2019 11 20:55

Re: Método de newton

Mensagem não lida por baltuilhe »

baltuilhe escreveu:
Dom 09 Jun, 2019 09:26
Bom dia!

Para calcular a raiz quinta de um número S podemos utilizar a seguinte função:
[tex3]f(x)=x^5-S[/tex3]

E, desta função, buscar uma raiz, que será a resposta.

O método de Newton-Raphson é um método iterativo, que consiste em utilizar um valor inicial em uma função e, a cada novo valor, substituir este na mesma função, até 'convergir' para a resposta.
A função é a seguinte:
[tex3]\varphi(x_k)=x_k-\dfrac{f(x_k)}{f(x_k)}=x_{k+1}[/tex3]

Agora, precisamos derivar a função inicial:
[tex3]f'(x)=5x^4[/tex3]

Bom, como não temos a raiz quinta de S, temos que arbitrar um número inicial para a mesma, podemos iniciar com S/5 (um quinto) do valor, como estimativa inicial.
Agora, só substituir.

Vamos testar?

Para S=32, S/5=32/5=6,4

Montando a tabela:
[tex3]\begin{array}{r|r|r|r}\hline\\x&f(x)&f'(x)&\varphi(x)\\
\hline
6,4000&10.705,4182&8.388,6080&5,1238\\
5,1238&3.499,5133&3.446,1857&4,1083\\
4,1083&1.138,3365&1.424,3562&3,3091\\
3,3091&364,7797&599,5281&2,7007\\
2,7007&111,6752&265,9962&2,2809\\
2,2809&29,7350&135,3303&2,0612\\
2,0612&5,2049&90,2507&2,0035\\
2,0035&0,2810&80,5615&2,0000\\
2,0000&0,0000&80,0000&\color{green}\boxed{2,0000}\\
\hline
\end{array}[/tex3]

Espero ter ajudado!
cidadantas escreveu:
Ter 11 Jun, 2019 19:31
Bautuilhe, boa noite!

Por que vc escolheu S/5 como aproximação inicial?
Isso se aplica para qualquer número real?
Se eu escolher um número muito próximo de 0, isso não tenderia ao infinito?
Ou como eu faria para mostrar que s/5 < S^1/5
Boa noite!

Pra falar bem a verdade... eu só peguei um número 'menor' do que S inicial.

Poderia ter tomado outro valor qualquer. Até o próprio 32.
Vamos simular?

Para S=32:

Montando a tabela:
[tex3]\begin{array}{r|r|r|r}\hline\\x&f(x)&f'(x)&\varphi(x)\\
\hline
32,0000&33.554.400,0000&5.242.880,0000&25,6000\\
25,6000&10.995.084,2778&2.147.483,6480&20,4800\\
20,4800&3.602.847,7019&879.609,3022&16,3840\\
16,3840&1.180.559,6207&360.287,9702&13,1073\\
13,1073&386.839,0199&147.578,4562&10,4861\\
10,4861&126.753,6131&60.454,1312&8,3894\\
8,3894&41.525,9875&24.768,1524&6,7128\\
6,7128&13.598,7120&10.152,7768&5,3734\\
5,3734&4.447,6683&4.168,3741&4,3064\\
4,3064&1.449,0572&1.719,6001&3,4637\\
3,4637&466,5415&719,6662&2,8154\\
2,8154&144,8889&314,1452&2,3542\\
2,3542&40,3131&153,5831&2,0917\\
2,0917&8,0403&95,7123&2,0077\\
2,0077&0,6208&81,2391&2,0001\\
2,0001&0,0080&80,0160&2,0000\\
2,0000&0,0000&80,0000&\color{green}\boxed{2,0000}\\
\hline
\end{array}[/tex3]

Demora um pouco mais... mas acaba convergindo :)



Avatar do usuário
Autor do Tópico
cidadantas
iniciante
Mensagens: 6
Registrado em: Sáb 08 Jun, 2019 17:48
Última visita: 10-08-19
Jun 2019 11 21:50

Re: Método de newton

Mensagem não lida por cidadantas »

como eu tô fazendo o código, eu tava tentando achar uma forma de dar o chute inicial para que ele convergisse mais rápido para qualquer S. Sei lá. Acho q estou viajando nisso... pq no algoritmo o único dado de entrada vai ser S

Última edição: cidadantas (Ter 11 Jun, 2019 21:52). Total de 1 vez.



Responder
  • Tópicos Semelhantes
    Respostas
    Exibições
    Última msg

Voltar para “ALGORITMOS E IMPLEMENTAÇÕES”