Имам проблем с повторението на всеки елемент от масив с помощта на функцията brentq
. q
в дефинираната функция по-долу е файлов масив FITS и ние използваме всеки елемент в този масив като входове, за да преминем през brentq
функцията, за да намерим T
.
По същество проблемът ми се състои в това, че не знам особено къде или как да внедря подходящия for
цикъл, за да повторя функцията върху всеки елемент от q
.
Някакви предложения как да се справя с този проблем?
def f(T,q,coeff1,coeff2,coeff3):
return q*const3 - ((exp(const2/T)-1)/(exp(const/T)-1))
a = brentq(f, 10, 435.1, args=(q,4351.041,4262.570,0.206))
print a
newhdu = fits.PrimaryHDU(a)
newhdulist = fits.HDUList([newhdu])
newhdulist.writeto('Temp21DCOT.fits')
Допълнително обяснение: Основата на това, което се опитвам да направя, е да използвам brentq
за намиране на температурни стойности, използвайки стойностите на интензитета на нашия първоначален масив (нашият FITS файл).
Уравнението е получено от съотношението на две дължини на вълната от уравнението на Планк, така че q = B_1/B_2
, ако искаме да сме верни на физиката, където всеки елемент в q
е стойност на интензитета. brentq
ще реши това аналитично неразрешимо уравнение за T
(температура) за всеки елемент в q
и ще създаде нов температурен масив със същия размер като q
. С други думи, опитвам се да намеря температурата на всеки пиксел във FITS файл, използвайки уравнението на Планк.
Забележка: Публикувах отново това, за да изясня проблема по по-ефективен начин.
f
. Използвате лиscipy.optimize.brentq
? - person wwii   schedule 12.07.2015brentq
args
- изглежда, чеf.q
във вашия пример е 1. питате ли как да повторите масив и да замените този вargs(1, 4351.041 ...
на примера със стойности от масив? - person wwii   schedule 12.07.2015arg(q,...)
, останалите са константи. - person Wolfgang   schedule 13.07.2015