了解概念
插值多項式
插值節點
範德蒙特(Vandermonde)行列式
截斷誤差、插值餘項
特點
函數實現
function y=lagrange(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j));
設n個節點數據以數組x0,y0輸入(注意Matlat的數組下标從1開始),m個插值點以數組x 輸入,輸出數組y為m個插值。
則可用
y = lagrange(x0,y0,x)
調用。
2. 牛頓(Newton)插值了解概念
差商
差分
等距節點插值公式(Newton向前插值公式)
特點
每增加一個節點,插值多項式隻增加一項,因而便于遞推運算。而且 Newton 插值的計算量小于Lagrange 插值。
函數實現
了解概念
插值多項式的振蕩
特點
将每兩個相鄰的節點用直線連起來,如此形成的一條折線就是分段線性插值函數。它是為了解決高次插值多項式的缺陷:随着插值次數n增加,雖然誤差減小,但插值函數光滑性變壞,有時會出現很大的振蕩。
實際上用函數表作插值計算時,分段線性插值就足夠了,如數學、物理中用的特殊函數表,數理統計中用的概率分布表等。
y=interp1(x0,y0,x,'method')
method 指定插值的方法,默認為線性插值。其值可為:
函數實現
一維插值函數interp1:
了解概念
特點
如果對插值函數,不僅要求它在節點處與函數同值,而且要求它與函數有相同的一
階、二階甚至更高階的導數值,這就是Hermite 插值問題。
這裡主要讨論在節點處插值函數與函數的值及一階導數值均相等的Hermite 插值。
函數實現
設n個節點的數據以數組x0(已知點的橫坐标), y0(函數值), y1(導數值)輸入(注意Matlat 的數組下标從1 開始),m 個插值點以數組x 輸入,輸出數組y 為m個插值。
function y=hermite(x0,y0,y1,x)
了解概念
樣條函數
關于分劃Δ的k次樣條函數 k次樣條曲線 樣條節點 内節點 邊界點 k次樣條函數空間
二次樣條函數 三次樣條函數
特點
有些問題對插值函數的光滑性有較高要求,要求曲線具有較高的光滑程度,不僅要連續,而且要有連續的曲率,這就導緻了樣條插值的産生。
函數實現
y=interp1(x0,y0,x,'spline'); y=spline(x0,y0,x); pp=csape(x0,y0,conds),y=ppval(pp,x)。
了解概念
磨光函數
等距B樣條函數
一維等距B樣條函數插值 二維等距B樣條函數插值
特點
實際中的許多問題,往往是既要求近似函數(曲線或曲面)有足夠的光滑性,又要求與實際函數有相同的凹凸性,一般插值函數和樣條函數都不具有這種性質。如果對于一個特殊函數進行磨光處理生成磨光函數(多項式),則用磨光函數構造出樣條函數作為插值函數,既有足夠的光滑性,而且也具有較好的保凹凸性,因此磨光函數在一維插值(曲線)和二維插值(曲面)問題中有着廣泛的應用。
函數實現
了解概念
插值節點為網格節點
插值節點為散亂節點
特點
函數實現
插值節點為網格節點
二次樣條插值:
z=interp2(x0,y0,z0,x,y,'method')
其中 x0,y0分别為m維和n維向量,表示節點,z0為n × m維矩陣表示節點值,x,y為一維數組表示插值點x與y應是方向不同的向量,即一個是行向量,另一個是列向量,z為矩陣,它的行數為y的維數,列數為x的維數,表示得到的插值,'method'的用法同上面一維插值。
三次樣條插值:
pp=csape({x0,y0},z0,conds,valconds),z=fnval(pp,{x,y})
其中 x0,y0 分别為m 維和n維向量,z0 為m × n 維矩陣,z 為矩陣,它的行數為x的維數,列數為y 的維數,表示得到的插值,使用方法同一維插值。
插值節點為散亂節點
已知n個節點:(x , y , z )(i 1,2, ,n) i i i = L ,求點(x, y)處的插值z:
ZI = GRIDDATA(X,Y,Z,XI,YI)
其中X、Y、Z 均為n 維向量,指明所給數據點的橫坐标、縱坐标和豎坐标。向量XI、YI是給定的網格點的橫坐标和縱坐标,返回值ZI為網格(XI,YI)處的函數值。XI與YI應是方向不同的向量,即一個是行向量,另一個是列向量。
最小二乘法的Matlab 實現解方程組方法
A = R \Y
x=[19 25 31 38 44]';
a=polyfit(x0,y0,m)
多項式拟合方法
y=polyval(a,x)
計算。
其中輸入參數x0,y0 為要拟合的數據,m 為拟合多項式的次數,輸出參數a 為拟合多項式y=amxm … a1x a0 系數a=[ am, …, a1, a0]。
多項式在x 處的值y可用
在Matlab 優化工具箱中,用于求解最小二乘優化問題的函數有:lsqlin、lsqcurvefit、lsqnonlin、lsqnonneg
lsqlin 函數
x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)
X = LSQNONNEG(C,d,X0,OPTIONS)
lsqcurvefit 函數
X=LSQCURVEFIT(FUN,X0,XDATA,YDATA,LB,UB,OPTIONS)
X=LSQNONLIN(FUN,X0,LB,UB,OPTIONS)
lsqnonlin 函數
lsqnonneg 函數
End.
作者:小潘東
來源:簡書
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!