python 最小二乘 leastsq 函式實現

2022-06-28 22:42:19 字數 2069 閱讀 5508

**修改自

# 修改自

### 最小二乘法 python leastsq###

import

numpy

asnp

from

scipy

.optimize

import

leastsq

###取樣點(xi,yi)###

xi=np

.array

([8.19

,2.72

,6.39

,8.71

,4.7

,2.66

,3.78

])

yi=np

.array

([7.01

,2.78

,6.47

,6.71

,4.1

,4.23

,4.05

])

# p是個陣列,表示所有引數!!!

### 定義誤差函式,擬合y=kx+b,p[0]表示k,p[1]表示b

def

error(p

,x,y

):

return(p

[0]*x

+p[1

])-y

#x、y都是列表,故返回值也是個列表

###主函式從此開始###

# 可能是使用梯度下降法而非矩陣運算,因此需要給定初始引數p0

p0=[2

,2]

para

=leastsq

(error,p0

,args

=(xi,yi

))#把error函式中除了p以外的引數打包到args中

k

=para[0

][0]

b

=para[0

][1]

print

("k=",k

,'\n'

,"b=",b

)

###繪圖,看擬合效果###

import

matplotlib

.pyplot

asplt

plt

.scatter(xi

,yi,color

="red"

,label

="sample point"

,linewidth=3

)#畫樣本點

x=np

.linspace(0

,10,100

)

y=k

*x+b

plt

.plot(x

,y,color

="orange"

,label

="fitting line"

,linewidth=2

)#畫擬合直線

plt

.legend

()

plt

.show

()

from wiznote

原 python最小二乘

import numpy as np from scipy.optimize import leastsq 取樣點 xi,yi xi np.array 8.19,2.72,6.39,8.71,4.7,2.66,3.78 yi np.array 7.01,2.78,6.47,6.71,4.1,4.23...

最小二乘 加權最小二乘 matlab實現

最小二乘 最小二乘法 又稱最小平方法 是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小 最小二乘法還可用於曲線擬合,其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。加權最小...

最小二乘擬合 6 7 最小二乘擬合問題

資料擬合問題的一般形式 任給一組離散資料 注 這裡的擬合函式不一定為多項式函式 記殘量的平方和為 求使得殘量平方和最小得一組係數就是線性最小二乘問題,為最小二乘問題得基函式,求得的擬合函式為資料的最小二乘擬合。求解 利用偏導數為零得到極值點的原理可以得到最小二乘問題滿足的方程組,求解方程組中未知係數...