分段線性插值

2022-09-24 00:39:14 字數 1329 閱讀 9389

首先,科普一下插值的含義:在離散資料的基礎上補插連續函式,使得這條連續曲線通過全部給定的離散資料點。

插值是離散函式逼近的重要方法,利用它可通過函式在有限個點處的取值狀況,估算出函式在其他點處的近似值。

插值的方法有很多:拉格朗日插值法,牛頓插值法,分段線性插值,樣條插值等,每種插值方法都有自己的優缺點。

今天,我們介紹的是比較簡單的分段線性插值方法,分段線性將每兩個相鄰的節點用直線連起來,如此形成的一條折線就是分段線性插值函式。計算點的插值時,只用到左右的兩個節點,計算量與節點個數n無關。

假設兩個節點為(x1,y1)和(x2,y2),則該區間上的一次線性方程為:

以上就是分段線性插值的原理,可以看出原理十分簡單。分段線性插值運算量較小,插值誤差較小,插值函式具有連續性,但是由於在已知點的斜率是不變的,所以導致插值結果不光滑,存在角點。

下面給出分段線性插值的matlab實現函式:

function y_output =piecewiselinearinterp(x,y,x_input)

%該函式實現分段線性插值

%x為已知的資料點

%y為已知的資料點

%x_input為待插值的橫座標

%y_output為插值後的到的結果

%the author:等等登登-ande

%the email:18356768364@163

.com

%the blog:qq_35166974

n =length(x);

nn =length(x_input);

for j=1

:nn

for i=1:n-1

if (x_input(j)>x(i) && x_input(j)<=x(i+1

)) y_output(j) = ((x_input(j)-x(i+1))/(x(i)-x(i+1)))*y(i)+(((x_input(j)-x(i))/(x(i+1)-x(i)))*y(i+1

)); end

endend

函式執行結果是:

線性插值和雙線性插值

線性插值 如果你只處理分離的資料 想知道分離點之間的某些值,需要用到某種型別的插值。這種情況如圖5 17座標所示。對某些分離的 整數 x值,你知道y值。當x 2,你知道y 10,x 3時y 30。但你不知道x 2.7時的y值。使用線性插值,你通過連線兩點的線段找到x 2.7對應的y值,如圖1所示。使...

mysql實現線性插值法 線性插值法

線性插值法 linear interpolation 什麼是線性插值法 線性插值法是指使用連線兩個已知量的直線來確定在這兩個已知量之間的乙個未知量的值的方法。如何進行線性插值 假設我們已知座標 x0,y0 與 x1,y1 要得到 x0,x1 區間內某一位置x在直線上的值。根據圖中所示,我們得到兩點式...

線性插值法

線性插值法是指使用連線兩個已知量的直線來確定在這兩個已知量之間的乙個未知量的值的方法。進行線性插值 假設我們已知座標 x 0,y0 與 x 1,y1 要得到 x 0,x1 區間內某一位置x在直線上的值。根據圖中所示,我們得到兩點式直線方程 假設方程兩邊的值為 那麼這個值就是插值係數 從x 0到x的距...