擬合與插值的區別:
插值演算法中,得到的多項式f(x
)f(x)
f(x)
要經過所有樣本點。但是如果樣本點太多,那
麼這個多項式次數過高,會造成龍格現象。
儘管我們可以選擇分段的方法避免這種現象,但是更多時候我們更傾向於得到
乙個確定的曲線,儘管這條曲線不能經過每乙個樣本點,但只要保證誤差足夠小即
可,這就是擬合的思想。(擬合的結果是得到乙個確定的曲線)
擬合曲線的確定:
設樣本點為(xi
,yi)
,i=1
,2,.
..,n
(x_i,y_i),i=1,2,...,n
(xi,y
i),
i=1,
2,..
.,n,找到一條曲線y=k
x+by=kx+b
y=kx+b
,確定k,b
k,bk,
b的值,使得擬合曲線與樣本點最接近。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
np.set_printoptions(suppress=
true
)# 不適用科學計數法
from scipy.optimize import leastsq
# 定義最小二乘函式
deferr
(p, x, y)
:return p[0]
* x + p[1]
- y
p0 =[1
,1]#設定引數初始值,可以隨意設定
# 新增截距項
est = sm.ols(y3,x)
# 最小二乘法
est2 = est.fit(
)
est2.summary(
)
ols regression results
dep. variable:
yr-squared:
0.863
model:
olsadj. r-squared:
0.835
method:
least squares
f-statistic:
31.46
date:
sat, 25 apr 2020
prob (f-statistic):
0.00249
time:
12:50:56
log-likelihood:
-5.9456
no. observations:
7aic:
15.89
df residuals:
5bic:
15.78
df model:
1covariance type:
nonrobust
coef
std err
tp>|t|
[0.025
0.975]
const
1.7941
0.633
2.833
0.037
0.166
3.422
x10.6135
0.109
5.609
0.002
0.332
0.895
omnibus:
nandurbin-watson:
3.087
prob(omnibus):
nanjarque-bera (jb):
0.717
skew:
0.291
prob(jb):
0.699
kurtosis:
1.544
cond. no.
14.9
使用JS實現三種基本的排序演算法以及三種演算法的比較
function bubblesort arr if arr.length 0 arr.length 1 for let outer arr.length outer 2 outer return arr 選擇排序我們也需要用到巢狀迴圈,演算法思路如下 從陣列的第乙個元素開始,將第乙個元素逐個與其他...
python變位詞的三種方法展示以及其數量級
2 排序比較法 計數比較法 def bian wei ci ls1,ls2 alist list ls2 pos1 0 result true print len ls1 iflen ls1 len ls2 while pos1 len ls1 and result pos2 0 found fal...
斐波那契數列的三種演算法以及複雜度
原作者部落格 1 遞迴 函式自己呼叫自己 2 遞迴的 缺陷 遞迴到一定程度,會發生 棧溢位 3 遞迴的 時間複雜度 遞迴總次數 每次遞迴的次數 4 遞迴的 空間複雜度 遞迴的深度 每次遞迴空間的大小 注意 每次遞迴空間的大小 是個常數,可以基本忽略不計 遞迴的 深度 樹的高度 遞迴的過程是乙個 二叉...