我想扩展CurveFit
的curve_fit
函数,实现对指定的几阶用超定方程求系数。
于是我导入curve_fit
函数,并重新导出。
module DoubleRFs
using FFTW, Interpolations, LinearAlgebra
using CurveFit: curve_fit, ExpFit, LinearFit
using Polynomials:Poly
export curve_fit
function curve_fit(xvec::Vector{Float64}, yvec::Vector{Float64}, ordervec::Vector{Int64})
ndata = length(xvec)
norders = length(ordervec)
X = zeros(ndata, norders)
for col in 1:norders, row in 1:ndata
X[row, col] = xvec[row]^ordervec[col]
end
factors=inv(transpose(X) * X) * transpose(X) * yvec
allfactors = zeros(ordervec[end]+1)
for idx in 1:norders
order = ordervec[idx]
allfactors[order+1]=factors[idx]
end
Poly(allfactors)
end
Base.invokelatest(curve_fit) # 这个不知道用的对不对?反正结果一样的错
end
然后我进入pkg
模式add Polynomial
结果失败了。
用
Pkg.precompile()
尝试,报错:
ERROR: LoadError: LoadError: error in method definition: function CurveFit.curve_fit must be explicitly imported to be extended
我看外面这种报错用CurveFit: curve_fit
精确导入就行了。但是我这里原本就是这么做的。