# 1. 繪製原始圖形曲線
from pandas import read_csv
import pandas as pd #匯入pandas
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import make_interp_spline
from scipy import interpolate
dataframe = read_csv(
'2010 - 1.csv'
, usecols=[1
], engine=
'python'
, skipfooter=0)
y = dataframe.values
length =
len(y)
# 2. 資料減少到1/3
x_new =
[i for i in
range(1
,length+1,
3)]#將資料縮為1/3
y_smooth = y[x_new]
print
("y_smooth的後5個資料是\n"
,y_smooth[-5
:])##檢視資料框的尾部資料
# 2. 使用插值法,將縮減到減少到1/3的資料擴充到原有的數量
x_new_1 = np.linspace(
1, length, length)
tck = interpolate.splrep(x_new, y_smooth,k=3)
#樣本點匯入,生成引數
y_bspline = interpolate.splev(x_new_1, tck)
#根據原有長度和樣條引數,生成插值
# 3. 資料儲存
y_bspline= pd.dataframe(y_bspline)
y_bspline=y_bspline.values
print
(y_bspline.shape)
new=np.hstack(
(y,y_bspline)
)columns=
["實際"
,"處理"
]df1 = pd.dataframe(new,columns = columns )
#df1 = pd.dataframe()
df1.to_csv(r'2.csv'
,columns=columns )
#儲存到csv中
plt.figure(figsize=(8
,6))
plt.plot(y,
'red'
,label=
'orginal data'
, marker=
'.')
plt.plot(y_bspline,
'green'
,label=
'processed data'
,marker=
'.')
plt.title(
'dada compare'
) plt.legend(
) plt.show(
)
三次樣條曲線
include include using namespace std const int m 16 double dknowx m double dknowy m double dknowdy m double dknowddy m const int n 15 double dinsertx n...
b樣條和三次樣條 樣條曲線
最近在學習軌跡規劃中的軌跡生成,涉及到樣條曲線方面的知識,總結一下。曲線的平滑性和相應的平滑性的評判準則相關,在 1 中,作者採用曲率的平方和曲率導數的平方作為評判準則 其中 是路徑點的方向角。最小化這兩個準則的軌跡分別是圓弧和三階螺旋線,並對在對稱和不對稱情況下如何生成路徑進行了分析,事實表明三階...
三次樣條插值
條件 1 輸入 x y f x 0 leq i leq n 2 要求擬合的曲線 s x 滿足 對於任意的 1 leq i leq n 1 在 x 處一階二階導數連續,s x 也連續,且 s x f x s x f x 求解過程 設 s m 對於區間 x x s x 是 x x 上的線性函式,所以設 ...