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))

返回: 能量-欧米茄图


问题是:如果我想打印所有三个输出,我该如何绘制这个函数?

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 回答