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