Ben çalıştırdığınızda şu anda, ancak, bir birleştiğinde ODE sistemini hesaplamak için scipy en odeint
kullanarak bir piton acemi değilim, piton kabuk hepOdeint nasıl başarılı yapılır?
>>>
Excess work done on this call (perhaps wrong Dfun type).
Run with full_output = 1 to get quantitative information.
>>>
Yani, benim zaman adımı ve son bir kez değiştirmek zorunda olduğunu söyle Entegre edilebilir hale getirmek için. Bunu yapmak için farklı bir kombinasyon denemeliyim ki bu oldukça acı verici. Herkes bana ode sistemini başarıyla entegre etmek için zaman adımını ve son süreyi otomatik olarak değiştirmesi için odeint
'dan nasıl sorabilirim? Burada
ve odeint çağrısında kod parçasıdır:
wrapped_bloch3 fonksiyonu işlem dy/dt olandef main(t, init_pop_a, init_pop_b, *args, **kwargs):
"""
solve the obe for a given set of parameters
"""
# construct initial condition
# initially, rho_ee = 0
rho_init = zeros((16,16))*1j ########
rho_init[1,1] = init_pop_a
rho_init[2,2] = init_pop_b
rho_init[0,0] = 1 - (init_pop_a + init_pop_b)########
rho_init_ravel, params = to_1d(rho_init)
# perform the integration
result = odeint(wrapped_bloch3, rho_init_ravel, t, args=args)
# BUG: need to pass kwargs
# rewrap the result
return from_1d(result, params, prepend=(len(t),))
things = [2*pi, 20*pi, 0,0, 0,0, 0.1,100]
Omega_a, Omega_b, Delta_a, Delta_b, \
init_pop_a, init_pop_b, tstep, tfinal = things
args = (Delta_a, Delta_b, Omega_a, Omega_b)
t = arange(0, tfinal + tstep, tstep)
data = main(t, init_pop_a, init_pop_b, *args)
plt.plot(t,abs(data[:,4,4]))
.
Eğer odeint için kodunuzu, özellikle aramanın daha verebilir misiniz? –
Yardım almak için sağladığınızdan çok daha fazla ayrıntı eklemeniz gerekecek: Hangi tür ODE'lerle çalışıyorsunuz? Sertleşiyorlar mı? Odeint'e Jacobian işlevi sağlıyor musunuz? Makul olduğundan emin misin? – talonmies
tekrarladığınız için teşekkürler ve sorumu güncelledim :) – user1233157