Python - 如何使用计算系数

时间:2015-06-24 14:50:15

标签: python

请原谅我,但对于Python(以及所有计算机语言),我是一个完全新手。

在很多帮助下,我编写了一个我想要构建的简单程序。经过几个步骤,我不确定是否与我的问题相关,我的脚本创建了一个图,然后应用二阶多项式拟合,产生一个抛物线形状。运行脚本后,Python会从polyfit中打印出三个系数。

这是我的问题 - 如何使用这些系数而无需手动输入?我需要在我的脚本上构建并添加三个将使用这些系数的方程式(称为A,B和C)。

例如,第一个等式是:Sigma11 = A / (l*S12)^2

我希望能够将第一个系数分配给变量A,然后在上面的等式中使用它,但无需输入。

感谢您提供的任何帮助。

以下是相关代码:

kk,ss = QS.ScanX(Kmin, Kmax, Npoint, Sigma0)
print  str(ss)
plt.plot(kk,np.sqrt(ss))

kk,ss = QS.ScanY(Kmin, Kmax, Npoint, Sigma0)
#print  str(ss)
print  str(ss)
plt.plot(kk,np.sqrt(ss))


coef = np.polyfit(kk,ss,2)

print coef
poly = np.poly1d(coef)
plt.plot(kk, poly(kk),'r')
plt.plot(np.sqrt(ss), poly(ss),'k')

plt.xlabel('K $(1/m^2)$')
plt.ylabel('Beamsize (m)')

plt.show()

1 个答案:

答案 0 :(得分:0)

我能够在朋友的帮助下解决这个问题。它似乎也与你们中的一些人所建议的相同。非常感谢你的帮助。

我会发布我的代码,以防将来可以帮助其他人:

plt.plot(k, SigmaX2, '.', color = 'black')
plt.plot(k, SigmaY2, '.', color = 'black')
plt.xlabel('Quadrupole Field Strength $(1/m^2)$')
plt.ylabel('Beamsize $(m^2)$')
t = plt.title('Beam Size vs. Quadrupole Field Strength', \
fontsize=18, color='blue')


CoefX = np.polyfit(k, SigmaX2, 2)
CoefY = np.polyfit(k, SigmaY2, 2)
polyX = np.poly1d(CoefX)
polyY = np.poly1d(CoefY)
print "Polyfit Coefficients (x, y):"
print CoefX
print CoefY


xs = np.arange(Xmin, Xmax, 0.01)
ys1 = polyX(xs)
ys2 = polyY(xs)

plt.plot(xs, ys1, '-', color = 'blue')
plt.plot(xs, ys2, '-', color = 'red')
plt.ylim(0, np.max(ys1))
plt.ylim(0, np.max(ys2))

plt.show()



# These are the coefficients from the poly fit, which I need to use 
# later for calculations.

Ax = float(CoefX[0])
Bx = float(CoefX[1])
Cx = float(CoefX[2])

Ay = float(CoefY[0])
By = float(CoefY[1])
Cy = float(CoefY[2])