Página 4 de 4

MensagemEnviado: Sábado Jan 05, 2008 12:37 am
por hexphreak
jap Escreveu:
Código: Seleccionar Todos
Big hand of applause for hexphreak that figured out a very stable IPF! :)
>>> >>>


:hands:

:confident:

Código: Seleccionar Todos
angles = [10*n for n in range(1,10)]

Aí está uma coisa que eu gostava de ter em C, dá bastante jeito nos testes numéricos. Não que seja difícil escrever um gerador, mas tem outro aspecto :wink:

MensagemEnviado: Sábado Jan 05, 2008 12:52 am
por jap
Pois é, ainda havemos de te converter (ao Python!) :lol:

Já agora e não querendo ser chato deixo aqui um outro desafio: encontrar uma função iteradora para o problema que não funcione, mesmo quando se parte de muito, mesmo muito próximo da raiz, ou seja, que em vez de convergir, diverge mesmo quando a solução está mesmo em cima do nariz!

Se alguém quiser divertir-se com isto, ficará aqui a melhor ilustração do nome do método (Isto Pode ser que Funcione).

Reparem que quando se substitui a equação

f(x)= 0

por uma outra equivalente da forma

x = g(x)

a escolha de g não é única e há algumas funções g (a que se chama função iteradoras, por razões óbvias) que funcionam maravilhosamente, outras assim assim, e outras que não funcionam de todo. :shock:

Por isso uma escolha judiciosa da função iteradora é importante: claro que se conhecem as condições matemáticas a que g(x) deve obedecer para ser uma boa iteradora, mas os físicos podem nem prestar muita atenção a isso se tiverem algum conhecimento de onda pára a solução e alguma intuição...como o Henrique.:D

MensagemEnviado: Sábado Jan 05, 2008 1:38 am
por hexphreak
Esta rebenta com a variável ao chegar à 38ª iteração (comecei com 0.8 ) :lol:

\sin \theta = e^{2/\sin \theta} - \frac{1 + \sin \theta}{1 - \sin \theta} - \sin \theta

MensagemEnviado: Sábado Jan 05, 2008 1:57 am
por jap
hexphreak Escreveu:Esta rebenta com a variável ao chegar à 38ª iteração (comecei com 0.8 ) :lol:

\sin \theta = e^{2/\sin \theta} - \frac{1 + \sin \theta}{1 - \sin \theta} - \sin \theta


Acho que queres dizer,

\sin \theta = e^{2/\sin \theta} - \frac{1 + \sin \theta}{1 - \sin \theta} + \sin \theta

Não será? :roll:

É que a tua função g(x) nem sequer dá xquando x é o valor correcto!

MensagemEnviado: Sábado Jan 05, 2008 1:59 am
por hexphreak
Claro, troquei o sinal :oops:

MensagemEnviado: Sábado Jan 05, 2008 2:01 am
por jap
Pois a função

g(x) = e^{2/x} - \frac{1 + x}{1 - x} + x

é um péssimo iterador; reparem o que acontece quando se parte mesmo "de cima" da raiz - diverge! :? O algoritmo nem consegue estabilizar juntinho à raiz!

Código: Seleccionar Todos
Trial angles= [56.465835127399998]
0.8335565596 0.833556554256
0.833556559653 0.833557109614
0.833556554256 0.833499961705
0.833557109614 0.839379510239
0.833499961705 0.221918293323
0.839379510239 8202.23194604
0.221918293323 8204.23243377
8202.23194604 8206.23292138
8204.23243377 8208.23340888
8206.23292138 8210.23389625
8208.23340888 8212.23438351
8210.23389625 8214.23487065
(...)

MensagemEnviado: Sábado Jan 05, 2008 2:18 am
por jap
Ah, e não se esqueçam que ainda falta demonstrar como se chega à expressão analítica...da equação transcendente. :P

MensagemEnviado: Sábado Jan 05, 2008 2:31 am
por jap
E como uma imagem vale mais do que 1000 palavras aqui está a explicação da condição para uma boa função iteradora:

|g^\prime(x)| < 1

na região de busca da raiz.

Nas figuras estão representadas as função y =g(x) e y = x. Queremos achar o ponto de intersepção g(x) = x das duas curvas, partindo de um dado ponto.

Vejam o que acontece nos quatro casos: :D

Imagem

Não é giro? 8)

MensagemEnviado: Sábado Jan 05, 2008 2:34 am
por hexphreak
Isso está naquele livro que eu referi há algum tempo, Elementary Numerical Analysis, até os gráficos são parecidos :D E utiliza Fortran, que continua a ser bastante bom em termos numéricos (embora não goste particularmente dele como linguagem).

Sempre gostei dessas imagens, havia uma relação qualquer com atractores estranhos, até aparece no Deus Joga Aos Dados? do Ian Stewart... Tenho de procurar :)

MensagemEnviado: Sábado Jan 05, 2008 2:35 am
por jap
hexphreak Escreveu:Isso está naquele livro que eu referi há algum tempo, Elementary Numerical Analysis, até os gráficos são parecidos :D E utiliza Fortran, que continua a ser bastante bom em termos numéricos (embora não goste particularmente dele como linguagem).

Sempre gostei dessas imagens, havia uma relação qualquer com atractores estranhos, até aparece no Deus Joga Aos Dados? do Ian Stewart... Tenho de procurar :)


Isto tem tudo a ver com atractores estranhos! :yes

MensagemEnviado: Sexta Mar 07, 2008 11:04 pm
por hexphreak
jap Escreveu:Ah, e não se esqueçam que ainda falta demonstrar como se chega à expressão analítica...da equação transcendente. :P

Dois meses depois... :lol:

Chegar à expressão analítica não é tão difícil como parece. Pelo menos não agora :P Temos que o comprimento total da trajectória é:

L = 2 \int^{v \sin \theta / g}_0 \sqrt{ \big( \frac{dx}{dt} \big)^2 + \big( \frac{dy}{dt} \big)^2 } dt

(Porquê?) Ora este não é um integral particularmente fácil, tive de fazer duas substituições de variável* e ainda ir a uma tabela, mas o resultado é:

L = \frac{v^2}{g} \big( \sin \theta + \cos^2 \theta \ln \big( \frac{\sin \theta + 1}{\cos \theta} \big) \big)

E agora, se derivarmos e igualarmos a zero, acabamos com a simples:

1 = \sin \theta \ln \big( \frac{1 + \sin \theta}{\cos \theta} \big)

:D


* Utilizei u = \tan \theta - \frac{gt}{v \cos \theta} e z = \tan \phi

MensagemEnviado: Sexta Mar 07, 2008 11:08 pm
por jap
Parabéns, Henrique!

:hands:

O integral não é realmente dos mais fáceis! :lol:

Re: O mais longo

MensagemEnviado: Quinta Abr 16, 2009 1:24 pm
por ampat
Hoje tentei resolver este problema e cheguei à seguinte expressão final para obter \theta:

0=2 + sen\theta \ln(\frac{1-sen\theta}{1+sen\theta})

Que, podem confirmar, dá exactamente o mesmo resultado. :)