tft每日頭條

 > 圖文

 > matlab 數據拟合解釋

matlab 數據拟合解釋

圖文 更新时间:2024-07-23 18:25:41

matlab 數據拟合解釋(數學建模matlab之插值與拟合)1

1. 拉格朗日多項式插值
  1. 了解概念

    插值多項式

    插值節點

    範德蒙特(Vandermonde)行列式

    截斷誤差、插值餘項

  2. 特點

  3. 函數實現

    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)插值
  1. 了解概念

    差商

    差分

    等距節點插值公式(Newton向前插值公式)

  2. 特點

    每增加一個節點,插值多項式隻增加一項,因而便于遞推運算。而且 Newton 插值的計算量小于Lagrange 插值。

  3. 函數實現

3. 分段線性插值
  1. 了解概念

    插值多項式的振蕩

  2. 特點

    将每兩個相鄰的節點用直線連起來,如此形成的一條折線就是分段線性插值函數。它是為了解決高次插值多項式的缺陷:随着插值次數n增加,雖然誤差減小,但插值函數光滑性變壞,有時會出現很大的振蕩。

    實際上用函數表作插值計算時,分段線性插值就足夠了,如數學、物理中用的特殊函數表,數理統計中用的概率分布表等。

y=interp1(x0,y0,x,'method')

  1. method 指定插值的方法,默認為線性插值。其值可為:

  2. 函數實現

    一維插值函數interp1:

4. 埃爾米特(Hermite)插值
  1. 了解概念

  2. 特點

    如果對插值函數,不僅要求它在節點處與函數同值,而且要求它與函數有相同的一

    階、二階甚至更高階的導數值,這就是Hermite 插值問題。

    這裡主要讨論在節點處插值函數與函數的值及一階導數值均相等的Hermite 插值。

  3. 函數實現

    設n個節點的數據以數組x0(已知點的橫坐标), y0(函數值), y1(導數值)輸入(注意Matlat 的數組下标從1 開始),m 個插值點以數組x 輸入,輸出數組y 為m個插值。

    function y=hermite(x0,y0,y1,x)

5. 樣條插值
  1. 了解概念

    樣條函數

    關于分劃Δ的k次樣條函數 k次樣條曲線 樣條節點 内節點 邊界點 k次樣條函數空間

    二次樣條函數 三次樣條函數

  2. 特點

    有些問題對插值函數的光滑性有較高要求,要求曲線具有較高的光滑程度,不僅要連續,而且要有連續的曲率,這就導緻了樣條插值的産生。

  3. 函數實現

    y=interp1(x0,y0,x,'spline'); y=spline(x0,y0,x); pp=csape(x0,y0,conds),y=ppval(pp,x)。

6. B樣條函數插值方法
  1. 了解概念

    磨光函數

    等距B樣條函數

    一維等距B樣條函數插值 二維等距B樣條函數插值

  2. 特點

    實際中的許多問題,往往是既要求近似函數(曲線或曲面)有足夠的光滑性,又要求與實際函數有相同的凹凸性,一般插值函數和樣條函數都不具有這種性質。如果對于一個特殊函數進行磨光處理生成磨光函數(多項式),則用磨光函數構造出樣條函數作為插值函數,既有足夠的光滑性,而且也具有較好的保凹凸性,因此磨光函數在一維插值(曲線)和二維插值(曲面)問題中有着廣泛的應用。

  3. 函數實現

7. 二維插值
  1. 了解概念

    插值節點為網格節點

    插值節點為散亂節點

  2. 特點

  3. 函數實現

插值節點為網格節點

二次樣條插值:

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 實現
  1. 解方程組方法

    A = R \Y

    x=[19 25 31 38 44]';

a=polyfit(x0,y0,m)

  1. 多項式拟合方法

y=polyval(a,x)

  1. 計算。

    其中輸入參數x0,y0 為要拟合的數據,m 為拟合多項式的次數,輸出參數a 為拟合多項式y=amxm … a1x a0 系數a=[ am, …, a1, a0]。

    多項式在x 處的值y可用

最小二乘優化

在Matlab 優化工具箱中,用于求解最小二乘優化問題的函數有:lsqlin、lsqcurvefit、lsqnonlin、lsqnonneg

  1. lsqlin 函數

x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)

X = LSQNONNEG(C,d,X0,OPTIONS)

  1. lsqcurvefit 函數

X=LSQCURVEFIT(FUN,X0,XDATA,YDATA,LB,UB,OPTIONS)

X=LSQNONLIN(FUN,X0,LB,UB,OPTIONS)

  1. lsqnonlin 函數

  2. lsqnonneg 函數

End.

作者:小潘東

來源:簡書

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved