短いイントロ
与えられたデータからパルサーを周回する惑星のスペクトル エネルギーを計算してプロットしています。
以前に、ディメンション [172, 2] (172 行 2 列)のリストバリエーション内のすべてのデータを並べ替えました。
まず、前提モデルのパラメータとそれに応じてスペクトル エネルギーを計算する必要があります (これらのパラメータから)。
そのために、前提モデルを定義する関数と、モデルとバリエーション データを取得するfind_fit関数を定義しました。
コード
var('a, b, t')
def spectrum(omega):
model = a*sin(omega*t) + b*cos(omega*t)
fit = find_fit(variations, model, parameters= [a, b], variables = [t], solution_dict = True)
sp_en = ((fit[a])**2 + (fit[b])**2)/2
return fit[a], fit[b], sp_en
次に、関数を呼び出して値を出力します。
c, v, energy = spectrum(20) #enter arbitray angular frequency here
print "Values for the given angular frequency : \n \n a = %f, b = %f, spectral_energy = %f " % (c, v, energy)
ここで、 sp_en の出力のみ をプロット する必要があります。
「セミソリューション」
スペクトル関数が sp_en のみを返す場合は簡単です。次のように書くだけで十分です。
var('t')
plot(spectrum(t), (t, 1, 100))
どちらが返されますか: エネルギー オメガ プロット
問題は、3 つの出力すべてを印刷したい場合、この関数をどのようにプロットすればよいかということです。