LINUX.ORG.RU

[py]немогу разобраться


0

1
from pylab import *
from scipy import *
from numpy import *
from scipy.io import read_array
from scipy import integrate
def Jotn(f,a):
	I=integrate.quad(lambda t: exp(-f*(1+a*sin(t))),0.,2*pi) / (2*pi*exp(-f))
	return(float(I[0]))
print (Jotn(10,0.1))
f,a = meshgrid(arange(1, 10, 0.1),arange(0, 0.2, 0.1))
Z=Jotn(f,a)
figure()
cmap = cm.get_cmap('jet', 100)    # 100 discrete colors
im = plt.imshow(Z, interpolation='nearest', origin='lower',cmap=cm.gray, extent=(1,10,0,1))
show()

выдаёт

./maxwell.py
1.26606587775
те, функцию считает, а дальше:
Traceback (most recent call last):
  File "./maxwell.py", line 48, in <module>
    Z=Jotn(f,a)
  File "./maxwell.py", line 44, in Jotn
    I=integrate.quad(lambda t: exp(-f*(1+a*sin(t))),0.,2*pi) / (2*pi*exp(-f))
  File "/usr/lib/python2.6/dist-packages/scipy/integrate/quadpack.py", line 185, in quad
    retval = _quad(func,a,b,args,full_output,epsabs,epsrel,limit,points)
  File "/usr/lib/python2.6/dist-packages/scipy/integrate/quadpack.py", line 249, in _quad
    return _quadpack._qagse(func,a,b,args,full_output,epsabs,epsrel,limit)
quadpack.error: Supplied function does not return a valid float.
в чём плюха?

★★★★★

так, понятно, интеграл не умеет браться от для массива точек, надо писать ф-цию, что бы она посчитала его для каждой точки

thunar ★★★★★ ()
Ответ на: комментарий от vga

P.S. Если че - я jsник, а не питонер, но эту фичу (comprehensions) мы у питона честно украли. Может у питона есть какие-то еще проще варианты, не знаю.

vga ★★ ()
Ответ на: комментарий от tailgunner

import numpy as n

a = n.array([[1,2], [3,4], [5,6]], int)

print a[:,0]

[1 3 5]

a[:, 0] = [10,11,12]

print a[:,0]

[10 11 12]

tailgunner ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.