建模算法整理
:文章主要介紹了 差值算法。
參考學習資料
:清風數學建模
其他資源
:2016到2020美賽o獎論文=== 姜啓源 司守奎電子書===論文模板 ====算法代碼
如果需要可私信或者評論
文章目錄
1 插值算法的作用
建模中,我們需要根據已知的函數點進行數據、模型的處理和分析,而有的時候現有的數據是極少的,不足以支撐分析的進行,這時就需要使用一些數學的方法,“模擬產生”一些新的但又比較靠譜的值來滿足需求,這就是插值的作用。
2 插值和擬合區別
插值算法中,所得的多項式f(x)要經過所有的樣本點。但是如果樣本點太多,那麼這個多項式次數過多,會造成龍格現象。
儘管我們可以選擇分段的方法避免這種現象,但是更多時候我們更傾向於得到一個確定的曲線,儘管這個曲線不能過每一個樣本店,但只要保證足夠小即可,這就是擬合的思想。
3 插值和擬合的選取
當數據量不夠,需要補充,且認定已有數據可信時,通常利用函數插值方法。
數據量多,不要求曲線經過每個點,同時要求多項式不要過於複雜我們選擇擬合。
4 分段三次埃爾米特插值
4.1 代碼實例
% 分段三次埃爾米特插值
x = -pi:pi; y = sin(x);
new_x = -pi:0.1:pi;
p = pchip(x,y,new_x);
plot(x, y, 'o', new_x, p, 'r-')
4.2 結果顯示
4.3 plot用法
% plot函數用法:
% plot(x1,y1,x2,y2)
% 線方式: - 實線 :點線 -. 虛點線 - - 波折線
% 點方式: . 圓點 +加號 * 星號 x x形 o 小圓
% 顏色: y黃; r紅; g綠; b藍; w白; k黑; m紫; c青
5 分段三次埃爾米特插值和三次樣條插值的區別
5.1 代碼實例
% 三次樣條插值和分段三次埃爾米特插值的對比
x = -pi:pi;
y = sin(x);
new_x = -pi:0.1:pi;
p1 = pchip(x,y,new_x); %分段三次埃爾米特
p2 = spline(x,y,new_x); %三次樣條插值
figure(2);
plot(x,y,'o',new_x,p1,'r-',new_x,p2,'b-')
legend('樣本點','三次埃爾米特插值','三次樣條插值','Location','SouthEast')
% legend爲標籤 'Location','SouthEast'是爲了設定顯示位置
5.2 結果展示
5.3 原因解釋
三次樣條插值也是分段三次多項式插值,只需要被插值函數在插值節點處的函數值,不需要知道被插值函數在插值節點處的導數值,數據要求低,光滑性好,可以達到二階導數連續。
三次分段Hermite插值是分段三次多項式插值,需要同時知道被插值函數在插值節點處的函數值和導數值,數據要求高,可以達到導數連續,光滑性不如樣條插值的好.
6 n維數據差值(linear cubic spline)
6.1 代碼實例
%格式 p = interpn(x1,x2,...,xn, y, new_x1,new_x2,...,new_xn, method)
% method是要插值的方法
%‘linear’:線性插值(默認算法);
%‘cubic’:三次插值;
%‘spline’:三次樣條插值法;(最爲精準) ‘nearest’:最鄰近插值算法。
% n維數據的插值
x = -pi:pi; y = sin(x);
new_x = -pi:0.1:pi;
p = interpn (x, y, new_x, 'spline');
% 等價於 p = spline(x, y, new_x);
plot(x, y, 'o', new_x, p, 'r-')
6.2 結果顯示
總結
文章純屬建模學習整理。
1、2016到2020美賽o獎論文
2、姜啓源 司守奎電子書
3、論文模板
4、算法代碼
如有需要上述資源可私信評論
最後希望給文章點個贊
,整理不易!!!
最後希望給文章點個贊
,整理不易!!!
最後希望給文章點個贊
,整理不易!!!