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 (всего исправлений: 1)

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

thunar ★★★★★
() автор топика
Ответ на: комментарий от thunar
>>> a
[[1, 2], [3, 4]]
>>> a[0][0]
1
>>> a[1][0]
3
>>> a[:][0]
[1, 2]
>>> a[0:1][0]
[1, 2]

чяднт? как вертикальный столбец получить?

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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.