Upload
everaldo-ferreira
View
22
Download
2
Embed Size (px)
DESCRIPTION
ttttttttttttttttttt
Citation preview
13/08/2015 Gmail - Programação
https://mail.google.com/mail/u/0/?ui=2&ik=633077d73d&view=pt&q=pedro.segundo%40gmail.com&qs=true&search=query&t… 1/8
Everaldo Ferreira <[email protected]>
Programação24 mensagens
Everaldo Ferreira <[email protected]> 7 de julho de 2014 04:22Para: Pedro Chaves de Souza Segundo <[email protected]>
Professor estou meio perdido (todo),instalei o compilador e os adicionais, rodei o exemplo GSL (modificado para imprimir arquivo), imprimi umgráfico em .PNG, como indicado no site do mathgl,Qual o próximo passo?
Em anexo um resumo do que fiz até agora.
Programação.pdf105K
Pedro Segundo <[email protected]> 7 de julho de 2014 13:09Para: Everaldo Ferreira <[email protected]>
Olá,Primeiramente vamos fazero cálculo da evolução de uma partícula sobre a ação de um potencial V((x). Aforça é o gradiente.Escolha qualquer potencial, como exemplo teste, que deve ser armazenado para a monografia. Eu indicariao oscilador harmônico, com todos os parâmetros e resultados conhecidos.Para rápida visualização, use o pacote mgl. Porém, para melhor desenho armazene em .dat para visualizarcom o QtiPlot.Qualquer dúvida pode perguntar.Pedro
[Texto das mensagens anteriores oculto]
Everaldo Ferreira <[email protected]> 13 de julho de 2014 22:15Para: Pedro Segundo <[email protected]>
Existe algum material que eu possa consultar como guia?vou ter dificuldades para fazer o programa.[Texto das mensagens anteriores oculto]
Pedro Segundo <[email protected]> 13 de julho de 2014 23:03Para: Everaldo Ferreira <[email protected]>
Consegue fazer evoluir uma partícula em um potencial?
[Texto das mensagens anteriores oculto]
Everaldo Ferreira <[email protected]> 14 de julho de 2014 07:11Para: Pedro Segundo <[email protected]>
Não.Tenho procurado à alguns dias, mas não encontrei nada que me ajudasse.[Texto das mensagens anteriores oculto]
Pedro Segundo <[email protected]> 14 de julho de 2014 10:12Para: Everaldo Ferreira <[email protected]>
13/08/2015 Gmail - Programação
https://mail.google.com/mail/u/0/?ui=2&ik=633077d73d&view=pt&q=pedro.segundo%40gmail.com&qs=true&search=query&t… 2/8
Você tem tudo a mão: como calcular, o quê calcular...Pegue o modelo que você enviou e adapte para um potencial x². Você vai utilizar a força, isto é, o gradientedesse potencial. Em uma dimensão kx. Assim, a aceleração a= kx/m.Calcule o jacobiano e ponha isso tudo no programa.
O resultado deve ser um oscilador. Escolha alguns k e m, compare com o teórico.
[Texto das mensagens anteriores oculto]
Everaldo Ferreira <[email protected]> 23 de julho de 2014 23:58Para: Pedro Segundo <[email protected]>
Como está descrito na apostila GSL, o programa resolve uma equação denominada de "equação deoscilação de segunda ordem não linear de Van der Pol". Essa equação é quebrada para um "sistema deprimeira ordem".
(d²x/dt²) mu*(1x²)(dx/dt) + x=0 <> u"(t) + mu*u′(t)(u(t)² − 1) + u(t)=0
u'=v
v'= − u + mu*v(1 − u²)
Então para um oscilador harmônico simples eu vou ter isso?
(d²x/dt²)+(k/m)x=0 <> u"(t)+(k/m)u(t)=0
u'=v
v'= (k/m)u[Texto das mensagens anteriores oculto]
Pedro Segundo <[email protected]> 24 de julho de 2014 09:46Para: Everaldo Ferreira <[email protected]>
É isso.
Em 23 de julho de 2014 23:58, Everaldo Ferreira<[email protected]> escreveu:[Texto das mensagens anteriores oculto]
Everaldo Ferreira <[email protected]> 24 de julho de 2014 15:05Para: Pedro Segundo <[email protected]>
Eu não estou conseguindo entender como exatamente é feito esse jacobiano no programa...
double mu = *(double *)params; gsl_matrix_view dfdy_mat = gsl_matrix_view_array (dfdy, 2, 2); gsl_matrix * m = &dfdy_mat.matrix; gsl_matrix_set (m, 0, 0, 0.0); gsl_matrix_set (m, 0, 1, 1.0); gsl_matrix_set (m, 1, 0, 2.0*mu*y[0]*y[1] 1.0); gsl_matrix_set (m, 1, 1, mu*(y[0]*y[0] 1.0)); dfdt[0] = 0.0; dfdt[1] = 0.0; return GSL_SUCCESS; [Texto das mensagens anteriores oculto]
13/08/2015 Gmail - Programação
https://mail.google.com/mail/u/0/?ui=2&ik=633077d73d&view=pt&q=pedro.segundo%40gmail.com&qs=true&search=query&t… 3/8
Pedro Segundo <[email protected]> 24 de julho de 2014 21:46Para: Everaldo Ferreira <[email protected]>
F1 = u'F2 = v'jacobiano é uma matriz assim:| dF1/du dF1/dv || dF2/du dF2/dv |
No programa, ele define assim: 0,0 para dF1/du0,1 para dF1/dv ...
No seu caso ficaria: 0 1k/m0
Entendeu?
Em 24 de julho de 2014 15:05, Everaldo Ferreira<[email protected]> escreveu:[Texto das mensagens anteriores oculto]
Everaldo Ferreira <[email protected]> 28 de julho de 2014 14:23Para: Pedro Segundo <[email protected]>
Entendi
então, o que fiz?Peguei o exemplo do GSL pag. 325,326 (EDO), modifiquei para um oscilador harmônico simples,
u'=v <> f[0] = y[1];
v'= (mu)*u <> f[1] = mu*y[0];
Substitui os valores do jacobiano no programa,
0 1mu 0
Não modifiquei mais nada, Obs.: Não mexi no "mu" que no caso do OHS ficou como a constante elástica divido pela massa, k/m;
Rodei esse programa, e ele compilou sem erros, salvei um .dat no arquivo (anexo), utilizei o QtiPlot paragráfico (dispersão) e ele saiu com essa "cara" .png (anexo).
[Texto das mensagens anteriores oculto]
2 anexos
13/08/2015 Gmail - Programação
https://mail.google.com/mail/u/0/?ui=2&ik=633077d73d&view=pt&q=pedro.segundo%40gmail.com&qs=true&search=query&t… 4/8
Gráfico1.png632K
teste.dat4K
Pedro Segundo <[email protected]> 28 de julho de 2014 14:39Para: Everaldo Ferreira <[email protected]>
Bem, eu acho que se você diminuir o passo, em pelo menos 10x você veráoutra coisa.
Em 28 de julho de 2014 14:23, Everaldo Ferreira<[email protected]> escreveu:[Texto das mensagens anteriores oculto]
Everaldo Ferreira <[email protected]> 28 de julho de 2014 16:40Para: Pedro Segundo <[email protected]>
Onde posso fazer isso?
ou
No programa, ou no QtiPlot?[Texto das mensagens anteriores oculto]
Pedro Segundo <[email protected]> 28 de julho de 2014 19:52Para: Everaldo Ferreira <[email protected]>
no programa, no mainDiminua o delta t.
Em 28 de julho de 2014 16:40, Everaldo Ferreira<[email protected]> escreveu:[Texto das mensagens anteriores oculto]
Everaldo Ferreira <[email protected]> 28 de julho de 2014 23:24Para: Pedro Segundo <[email protected]>
Ok,
Acho que eu consegui[Texto das mensagens anteriores oculto]
6 anexos
13/08/2015 Gmail - Programação
https://mail.google.com/mail/u/0/?ui=2&ik=633077d73d&view=pt&q=pedro.segundo%40gmail.com&qs=true&search=query&t… 5/8
OHS_5Passos.png662K
OHS_10Passos.png662K
OHS_20Passos.png662K
OHS_50Passos.png662K
OHS_80Passos.png662K
13/08/2015 Gmail - Programação
https://mail.google.com/mail/u/0/?ui=2&ik=633077d73d&view=pt&q=pedro.segundo%40gmail.com&qs=true&search=query&t… 6/8
OHS_100Passos.png662K
Pedro Segundo <[email protected]> 28 de julho de 2014 23:41Para: Everaldo Ferreira <[email protected]>
O sistema tava oscilando numa frequência e você estava pegando ospontos quase na mesma frequência.Agora, pense em um sistema amortecido.E compare sempre com os resultados analíticos (teórico).
Em 28 de julho de 2014 23:24, Everaldo Ferreira<[email protected]> escreveu:[Texto das mensagens anteriores oculto]
Pedro Segundo <[email protected]> 28 de julho de 2014 23:43Para: Everaldo Ferreira <[email protected]>
Na verdade, o nome dos seus arquivos não é 10, 100 passos. E sim vocêtá colocando o tempo 10s , 100s (se for essa a unidade de tempo)[Texto das mensagens anteriores oculto]
Everaldo Ferreira <[email protected]> 30 de julho de 2014 21:15Para: Pedro Segundo <[email protected]>
Entendi
Agora para um oscilador harmônico amortecido;
(d²x/dt²)+(b/m)(dx/dt)+(k/m)x=0 <> u"(t)+(b/m)u'(t)+(k/m)u(t)=0
u'=v
v'= (k/m)u (b/m)v
Jacobiano;
01(k/m)(b/m)
Duvidas...A contante k/m já está definida como mu, mas a constante b/m?Qual a melhor forma de comparar esses resultados obtidos com resultados teóricos?[Texto das mensagens anteriores oculto]
Pedro Segundo <[email protected]> 30 de julho de 2014 23:28Para: Everaldo Ferreira <[email protected]>
Para facilitar crie variáveis globais no começo, antes das funções: k, m, b...
13/08/2015 Gmail - Programação
https://mail.google.com/mail/u/0/?ui=2&ik=633077d73d&view=pt&q=pedro.segundo%40gmail.com&qs=true&search=query&t… 7/8
Aí você pode escolher parâmetros da ordem da unidade e compare com os teóricos.Faça gráfico posição teórico analítico X simulado para posição e emoutro para a velocidade.
Em 30 de julho de 2014 21:15, Everaldo Ferreira[Texto das mensagens anteriores oculto]
Everaldo Ferreira <[email protected]> 4 de agosto de 2014 23:47Para: Pedro Segundo <[email protected]>
Para o oscilador harmônico amortecido eu vou ter 3 constantes diferentes b, k, m... seria interessantechamar o m de ma, já que eu tenho um m no jacobiano no programa?
Na linha 10 ele trata a constante mu = *(double *)params;como faço no caso das minhas constantes? pelo o que eu entendi vou ter que definir as constantes nojacobiano também, linha 19, e na linha 36 vou atribuir valores para as contantes.
Tentei definir apenas as constantes ma e k, para usar no OHS, mas não obtive êxito;
Em anexo o main.ccp do OHS se precisar analisar algo.[Texto das mensagens anteriores oculto]
main.cpp2K
Pedro Segundo <[email protected]> 5 de agosto de 2014 00:09Para: Everaldo Ferreira <[email protected]>
Vamos por partes?Primeiro, separe as partes com comentários // Calculando o Jacobiano....
Segundo, eu não sei se aí ficou organizado, mas aqui apareceu tudo naprimeira coluna. O que for um "for" ou "if" coloque tabulado. <TAB>
Terceiro, o params eu não entendo muito bem:É usado o mu=10. Para mim, usaria mu[]=10,2;e lá dentromassa=*(double *)params[0];viscosidade=...[1];
é para tentar.
Em 4 de agosto de 2014 23:47, Everaldo Ferreira<[email protected]> escreveu:[Texto das mensagens anteriores oculto]
Pedro Segundo <[email protected]> 5 de agosto de 2014 01:03Para: Everaldo Ferreira <[email protected]>
O seu programa escrito um pouco mais organizado, falta você colocar oscomentários.E consegui fazer, depois de pesquisar pelo google, como colocar os parâmetros.Veja que agora está explicito a massa, k, b...Quero que compare, antes de colocar amortecimento, com os resultados teóricos:coloque algumas massas, k... e veja o resultado, comparando com o analítico.[Texto das mensagens anteriores oculto]
main.cpp2K
13/08/2015 Gmail - Programação
https://mail.google.com/mail/u/0/?ui=2&ik=633077d73d&view=pt&q=pedro.segundo%40gmail.com&qs=true&search=query&t… 8/8
Everaldo Ferreira <[email protected]> 17 de agosto de 2014 22:19Para: Pedro Segundo <[email protected]>
Então,Para OHS: (d²x/dt²)+(k/m)x=0,Eu tenho como solução x(t)=Acos(wt+fi), caso w=sqrt(k/m);Sendo esta a posição em função do tempo t.
Velocidade é dada por dx/dt, assim v(t)=Awsen(wt+fi)...
Dúvidas,Para fazer o gráfico do modelo analítico preciso de valores para A (amplitude de oscilação), para constantede fase fi "entendo que a contante de fase fi é zero quando a amplitude é máxima", Sei qual o valor dew=k/m, é o mesmo do programa, já que tenho que fazer a comparação entre os dois modelos.
Devo usar x(t)=Acos((2pi/T)*t)? onde T=2pi(sqrt(k/m))?
Enfim não estou conseguindo fazer os gráfico da posição e da velocidade para poder fazer a comparaçãocom o resultado numérico...[Texto das mensagens anteriores oculto]
Pedro Segundo <[email protected]> 18 de agosto de 2014 12:11Para: Everaldo Ferreira <[email protected]>
Oi Everaldo,
Em princípio, você pode colocar o qtiplot para encontrar para você.Mas antes, se olhar os livros de Física 2, há como encontrar A e fi.Eles dependem da posição e velocidade iniciais. Calcule A e fi tendoas condições iniciais x0 e v0.x(t=0)=Acos(w.0+fi)=x0v(t=0)=Asen(w.0+fi)=v0
Até mais.Pedro
Em 17 de agosto de 2014 22:19, Everaldo Ferreira<[email protected]> escreveu:[Texto das mensagens anteriores oculto]