フラックスに基づいていくつかの星の等級を計算しようとしていますが、間違った値を取得し続けており、その理由がわかりません. 例えば:
最初の星は、V バンドで 39,984 のフラックスを持っています。その V 等級は 10.1 - 2.5log(39,984/1,220,000) = 13.8 です (10.1 と 1,220,000 は基準星からのものです)。しかし、私のプログラムはマグニチュード 18.65 を計算します。これが私のコードです:
import numpy as np
import asciidata
fv = []
fb = []
data = asciidata.open('Flux.txt')
for i in data[1]:
fv.append(float(i))
for i in data[2]:
fb.append(float(i))
mv = []
mb = []
mbv = []
for i in range (0,25):
mv.append(10.1 - 2.5 * np.log(fv[i]/1220000))
mb.append(11.0 - 2.5 * np.log(fb[i]/339368))
print i+1, mv[i], mb[i]