0

短いイントロ

与えられたデータからパルサーを周回する惑星のスペクトル エネルギーを計算してプロットしています。

以前に、ディメンション [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 つの出力すべてを印刷したい場合、この関数をどのようにプロットすればよいかということです。

4

2 に答える 2

0

energy変数のみでプロット関数を呼び出すだけです

omega=10
c, v, energy = spectrum(omega)   #enter arbitray angular frequency here
print "Values for the given angular frequency : \n \n a = %f, b = %f, spectral_energy = %f " % (c, v, energy)

plot(energy, (omega, 1, 100))

于 2016-02-18T16:33:02.200 に答える
0

スペクトルからの戻り値にインデックスを使用するだけです。

plot(spectrum(t)[2], (t, 1, 100))
于 2016-02-18T16:33:36.563 に答える