A. python中用polyfit拟合出的函数怎么能直接调用
首先分两种情况:
1.交互窗口处执行:这个时候由于python的强制缩进,因此想要结束函数的定义只需要按两下enter即可。
2.在.py文件中编写,结束函数只需要不再缩进即可
调用函数方法相同,把函数名及参数写上就可以了,如果有返回值可以
r=functionA(var1)
附:测试代码(python3运行通过)
# -*- coding:utf-8 -*-
#author:zfxcx
def pt():
print("hello")
pt()
B. 用python实现多项式拟合怎么加入正则化
应该是不可以的
import numpy as np
from scipy.optimize import leastsq
import pylab as pl
x = np.arange(1, 17, 1)
y = np.array([4.00, 6.40, 8.00, 8.80, 9.22, 9.50, 9.70, 9.86, 10.00, 10.20, 10.32, 10.42, 10.50, 10.55, 10.58, 10.60])
#第一个拟合,自由度为3
z1 = np.polyfit(x, y, 3)
# 生成多项式对象
p1 = np.poly1d(z1)
print(z1)
print(p1)
# 第二个拟合,自由度为6
z2 = np.polyfit(x, y, 6)
# 生成多项式对象
p2 = np.poly1d(z2)print(z2)print(p2) # 绘制曲线 # 原曲线pl.plot(x, y, 'b^-', label='Origin Line')pl.plot(x, p1(x), 'gv--', label='Poly Fitting Line(deg=3)')pl.plot(x, p2(x), 'r*', label='Poly Fitting Line(deg=6)')pl.axis([0, 18, 0, 18])pl.legend()# Save figurepl.savefig('scipy02.png', dpi=96)
C. 怎么用Python将图像边界用最小二乘法拟合成曲线
本文实例讲述了Python基于最小二乘法实现曲线拟合。分享给大家供大家参考,具体如下:
这里不手动实现最小二乘,调用scipy库中实现好的相关优化函数。
考虑如下的含有4个参数的函数式:
希望本文所述对大家Python程序设计有所帮助。
D. Python怎么实现非线性的拟合
import matplotlib.pyplot as ptimport numpy as npfrom scipy.optimize import leastsqfrom pylab import *time = []counts = []for i in open('/some/folder/to/file.txt', 'r'):
segs = i.split()
time.append(float(segs[0]))
counts.append(segs[1])time_array = arange(len(time), dtype=float)counts_array = arange(len(counts))time_array[0:] = time
counts_array[0:] = counts
def model(time_array0, coeffs0):
a = coeffs0[0] + coeffs0[1] * np.exp( - ((time_array0-coeffs0[2])/coeffs0[3])**2 )
b = coeffs0[4] + coeffs0[5] * np.exp( - ((time_array0-coeffs0[6])/coeffs0[7])**2 )
c = a+b return c
E. Python 怎么用曲线拟合数据
Python中利用guiqwt进行曲线数据拟合。
示例程序:
F. python怎样做高斯拟合
需要载入numpy和scipy库,若需要做可视化还需要matplotlib(附加dateutil,pytz,pyparsing,cycler,setuptools库)。不画图就只要前两个。
如果没有这些库的话去 http://www.lfd.uci.e/~gohlke/pythonlibs/ 下载对应版本,之后解压到 C:Python27Libsite-packages。
importnumpyasnp
importpylabasplt
#importmatplotlib.pyplotasplt
fromscipy.optimizeimportcurve_fit
fromscipyimportasarrayasar,exp
x=ar(range(10))
y=ar([0,1,2,3,4,5,4,3,2,1])
defgaussian(x,*param):
returnparam[0]*np.exp(-np.power(x-param[2],2.)/(2*np.power(param[4],2.)))+param[1]*np.exp(-np.power(x-param[3],2.)/(2*np.power(param[5],2.)))
popt,pcov=curve_fit(gaussian,x,y,p0=[3,4,3,6,1,1])
printpopt
printpcov
plt.plot(x,y,'b+:',label='data')
plt.plot(x,gaussian(x,*popt),'ro:',label='fit')
plt.legend()
plt.show()
G. python有没有哪个库能实现三维曲面的拟合该如何实现
matlab的话
方法一
用[xx,yy] = meshgrid(x_min:step:x_max,y_min:step:y_max)生成x和y的坐标
用zz = griddata(x,y,z,xx,yy,'v4')插值生成相应的z坐标
方法二
用tri = delaunay(x,y)让点自行连接成一个个三角形
trisurf(tri,x,y,z)生成曲面
再用shading interp 插值拟合
如果你的曲面在xy平面的投影不是矩形的话,记得用inpolygon吧不在区域内的点删除掉
H. 如何用python拟合对数函数
scipy的optimize工具箱中有拟合函数可以使用 或者用sm的OSL进行拟合 具体搜一下教程
I. 拟合直方图与Python问题,怎么解决
用代码解决:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
import scipy.stats as st
sim = st.gamma(1,loc=0,scale=0.8) # Simulated
obs = st.gamma(2,loc=0,scale=0.7) # Observed
x = np.linspace(0,4,1000)
simpdf = sim.pdf(x)
obspdf = obs.pdf(x)
plt.plot(x,simpdf,label='Simulated')
plt.plot(x,obspdf,'r--',label='Observed')
plt.title('PDF of Observed and Simulated Precipitation')
plt.legend(loc='best')
plt.show()
plt.figure(1)
simcdf = sim.cdf(x)
obscdf = obs.cdf(x)
plt.plot(x,simcdf,label='Simulated')
plt.plot(x,obscdf,'r--',label='Observed')
plt.title('CDF of Observed and Simulated Precipitation')
plt.legend(loc='best')
plt.show()
# Inverse CDF
invcdf = interp1d(obscdf,x)
transfer_func = invcdf(simcdf)
plt.figure(2)
plt.plot(transfer_func,x,'g-')
plt.show()
J. python怎么用线性回归拟合
from sklearn import linear_model#线性回归clf = linear_model.LinearRegression()#训练clf.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])#表达式参数clf.coef_#测试improt numpy as npx = np.array([1,1])y = x.dot(clf.coef_)