【发布时间】:2018-10-08 22:16:03
【问题描述】:
当我运行我的代码时,我收到错误“** 或 pow() 不支持的操作数类型:'numpy.ufunc' 和 'float'”
代码是:
import numpy as np
import matplotlib.pyplot as plt
from numpy import sqrt,exp,log
from scipy import linalg
from scipy.optimize import curve_fit
data1 = np.loadtxt('decay1.txt', float,skiprows=1)
t = data1[:,0]
n = data1[:,1]
data2 = np.loadtxt('decay2.txt', float,skiprows=1)
T = data2[:,0]
N = data2[:,1]
def Radio(n,t,tao,b):
return (n*(exp**(-(t/tao)))) + b
guesses = (1,1,1)
guesses2 = (1,1,1)
(p0,p1,p2),cc = curve_fit(Radio,t,n,guesses)
(p02,p12,p22),cc2 = curve_fit(Radio,T,N,guesses2)
yfit = Radio(t,p0,p1,p2)
y2fit = Radio(T,p02,p12,p22)
我必须将函数拟合到放射性衰变数据,所以请告诉我,我是否也弄乱了代码以拟合函数。感谢您的帮助!
【问题讨论】:
-
关于你的第二个问题,我没有使用
scipy.optimize,但从文档中它看起来对我来说是正确的,除了我认为你在函数之间切换了输入顺序(@ 987654323@) 和曲线拟合 (t,n) -
我收回了,看起来配方有问题。将使用描述编辑我的答案
标签: python function numpy typeerror curve-fitting