# -*- coding: utf-8 -*-
"""created on mon oct 26 10:10:18 2020
@author: verne
"""import numpy as np
import matplotlib.pyplot as plt
g =32.2
b =0.000322
sf =5e-
6k =
3.106e-8
sita = np.arange(0,
180,2)
x_1 = np.array(
[g * np.cos(sita1*np.pi/
180)
for sita1 in sita]
)#未加雜訊的x
y_1 = np.array(
[b + sf*x + k*x**
2for x in x_1]
)#未加雜訊的y
sita_pre = np.arange(0,
180,2)
+np.random.normal(0,
10**(-
6))#sita加雜訊
x = np.array(
[g * np.cos(sita1*np.pi/
180)
for sita1 in sita_pre]
)#加了雜訊的x
y = np.array(
[b + sf*x + k*x**
2for x in x]
)# 生成係數矩陣a
defgen_matrix
(x, y)
: n =
len(x)
m =3 a =
b =# 計算每乙個方程的係數
for i in
range
(m):
a =# 計算當前方程中的每乙個係數
for j in
range
(m):
sum(x **
(i+j)))
sum(x**i * y)
)return a ,b
a, b = gen_matrix(x, y)
print
(a,b)
a = np.linalg.solve(a, b)
print
(a)# 生成擬合曲線的繪製點
_x = x_1
_y = np.array(
[a[0
]+ a[1]
*x + a[2]
*x**
2for x in _x]
)plt.plot(x_1, y_1,
'ro'
, _x, _y,
'b', linewidth=2)
plt.title(
"y = {} + {}x + {}$x$2"
.format
(a[0
], a[1]
, a[2]
)) plt.show(
)
最小二乘 加權最小二乘 matlab實現
最小二乘 最小二乘法 又稱最小平方法 是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小 最小二乘法還可用於曲線擬合,其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。加權最小...
最小二乘擬合 6 7 最小二乘擬合問題
資料擬合問題的一般形式 任給一組離散資料 注 這裡的擬合函式不一定為多項式函式 記殘量的平方和為 求使得殘量平方和最小得一組係數就是線性最小二乘問題,為最小二乘問題得基函式,求得的擬合函式為資料的最小二乘擬合。求解 利用偏導數為零得到極值點的原理可以得到最小二乘問題滿足的方程組,求解方程組中未知係數...
說說最小二乘
最小二乘是用於根據取樣結果計算 最佳引數 的常用方法。本文簡要描述最小二乘的原理和計算方法。假設我們有乙個系統,我們知道這個系統的響應函式f是某組自變數的線性方程。不失一般性,我們以三個自變數的系統為例,對於自變數x,y,z,系統輸出f滿足f f x,y,z ax by cz d,而a,b,c,d的...