精华内容
下载资源
问答
  • 线性插值 数学上定义:线性插值是指插值函数为一次多项式的插值方式,其在插值节点上的插值误差为0; 在图片上,我们利用线性插值的算法,可以减少图片的锯齿,模糊图片; 线性插值的计算规则 假设我们已知坐标 (x0,...

    线性插值

    数学上定义:线性插值是指插值函数为一次多项式的插值方式,其在插值节点上的插值误差为0;
    在图片上,我们利用线性插值的算法,可以减少图片的锯齿,模糊图片;

    线性插值的计算规则

    假设我们已知坐标 (x0, y0) 与 (x1, y1),要得到 [x0, x1] 区间内某一位置 x 在直线上的值。根据图中所示,我们得到:

    由于 x 值已知,所以可以从公式得到 y 的值:

    抛物线插值(可推广至高次插值)

    设在区间[a,b]上给定n+1个点 a\leq x_0 < x_1 < \cdots <x_n \leq b 上的函数值y_i=f(x_i),求次数不超过n的多项式,使得P(x_i)=y_i,i=0,1,\cdots求次数不超过n的多项式,使得

    P(x_i)=y_i,i=0,1,\cdots,n,由此可得到关于系数a_0,a_1,\cdots,a_n的n+1元线性方程组

    \left\{ \begin{array}{l} a_0+a_1x_0+\cdots+a_nx_0^n=y_0 \\ a_0+a_1x_1+\cdots+a_nx_1^n=y_1\\ \vdots\\ a_0+a_1x_n+\cdots+a_nx_n^n=y_n\\ \end{array} \right.

    此方程组的系数矩阵为范德蒙德矩阵,表示为

    A=\begin{bmatrix} 1 & x_0 &\cdots&x_0^n \\ 1 & x_1 &\cdots& x_1^n \\ \vdots & \vdots & &\vdots\\ 1 & x_n & \cdots & x_n^n \end{bmatrix}

    由于x_i(i=0,1,\cdots,n)互异,故

    detA=\prod _{\substack{i,j=0 \\i>j}}^n(x_i-x_j) \neq 0

    因此,线性方程组的解存在且唯一,故插值多项式P(x)存在唯一

    注:显然直接求解方程组可以得到插值多项式P(x),但这是求插值多项式最蠢的方法,一般不采用,常用的是拉格朗日插值法或牛顿插值

     

    展开全文
  • 线性插值就是通过两个采样点(x0,y0)(x_0,y_0)(x0​,y0​)(x1,y1)(x_1,y_1)(x1​,y1​),作一直线p1(x)p_1(x)p1​(x)来近似代替f(x)f(x)f(x)。根据插值条件(定义1),有 p1(x0)=y0,p1(x1)=y1 p_1(x_0)=y_0, \quad ...

    Lagrange(拉格朗日)插值法

    Lagrange插值法是一种多项式插值方法。

    1. 线性插值(两点插值或一次插值)

    线性插值就是通过两个采样点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0) ( x 1 , y 1 ) (x_1,y_1) (x1,y1),作一直线 p 1 ( x ) p_1(x) p1(x)来近似代替 f ( x ) f(x) f(x)。根据插值条件(定义1),有
    p 1 ( x 0 ) = y 0 , p 1 ( x 1 ) = y 1 p_1(x_0)=y_0, \quad p_1(x_1)=y_1 p1(x0)=y0,p1(x1)=y1
    因此,可以写出直线 p 1 ( x ) p_1(x) p1(x)的以下两种表达式:

    (1)点斜式: p 1 ( x ) = y 0 + y 1 − y 0 x 1 − x 0 ( x − x 0 ) p_1(x)=y_0+\frac{y_1-y_0}{x_1-x_0}(x-x_0) p1(x)=y0+x1x0y1y0(xx0)

    (2)对称式: p 1 ( x ) = x − x 1 x 0 − x 1 y 0 + x − x 0 x 1 − x 0 y 1 p_1(x)=\frac{x-x_1}{x_0-x_1}y_0+\frac{x-x_0}{x_1-x_0}y_1 p1(x)=x0x1xx1y0+x1x0xx0y1

    在点斜式中, y 1 − y 0 x 1 − x 0 \frac{y_1-y_0}{x_1-x_0} x1x0y1y0即为差商,即当 x 1 → x 0 x_1\to x_0 x1x0时,它就是 y 0 ′ y_0' y0。将其代入点斜式方程中,可得到 p 1 ( x ) p_1(x) p1(x)的极限形式:
    p 1 ( x ) = y 0 + y 0 ′ ( x − x 0 ) p_1(x)=y_0+y_0'(x-x_0) p1(x)=y0+y0(xx0)
    这就是一阶Taylor(泰勒)多项式。在这里, p 1 ( x ) p_1(x) p1(x)由两项组成:一项是x的零次多项式,另一项为x的一次多项式。 p 1 ( x ) p_1(x) p1(x)的这种组成形式就是后面将要介绍的Newton(牛顿)插值公式的形式。

    在对称式中,若令
    x − x 1 x 0 − x 1 = l 0 ( x ) , x − x 0 x 1 − x 0 = l 1 ( x ) (1) \frac{x-x_1}{x_0-x_1}=l_0(x), \quad \frac{x-x_0}{x_1-x_0}=l_1(x) \tag{1} x0x1xx1=l0(x),x1x0xx0=l1(x)(1)
    则有
    p 1 ( x ) = l 0 ( x ) ⋅ y 0 + l 1 ( x ) ⋅ y 1 (2) p_1(x)=l_0(x)·y_0+l_1(x)·y_1 \tag{2} p1(x)=l0(x)y0+l1(x)y1(2)
    (1)和(2)式就是线性插值公式。其中, l 0 ( x ) l_0(x) l0(x) l 1 ( x ) l_1(x) l1(x)是关于x的线性多项式,称之为插值基函数。它们在节点 x 0 x_0 x0 x 1 x_1 x1处分别满足:
    l 0 ( x 0 ) = 1 , l 0 ( x 1 ) = 0 l 1 ( x 0 ) = 0 , l 1 ( x 1 ) = 1 l_0(x_0)=1, \quad l_0(x_1)=0 \\ l_1(x_0)=0, \quad l_1(x_1)=1 l0(x0)=1,l0(x1)=0l1(x0)=0,l1(x1)=1
    于是,可得出重要结论:满足插值条件 p 1 ( x 0 ) = y 0 , p 1 ( x 1 ) = y 1 p_1(x_0)=y_0,p_1(x_1)=y_1 p1(x0)=y0,p1(x1)=y1的一次插值多项式 p 1 ( x ) p_1(x) p1(x),可用两个插值基函数 l 0 ( x ) l_0(x) l0(x) l 1 ( x ) l_1(x) l1(x)进行线性组合构造。即
    p 1 ( x ) = l 0 ( x ) ⋅ y 0 + l 1 ( x ) ⋅ y 1 p_1(x)=l_0(x)·y_0+l_1(x)·y_1 p1(x)=l0(x)y0+l1(x)y1

    2. 抛物插值(三点插值或二次插值)

    抛物插值就是通过3个采样点 ( x 0 , y 0 ) , ( x 1 , y 1 ) (x_0,y_0),(x_1,y_1) (x0,y0),(x1,y1) ( x 2 , y 2 ) (x_2,y_2) (x2,y2)构造一个二次多项式 p 2 ( x ) p_2(x) p2(x)来近似代替 f ( x ) f(x) f(x)。根据插值条件(定义1),有:
    p 2 ( x ) = y , ( i = 0 , 1 , 2 ) p_2(x)=y, \quad(i=0,1,2) p2(x)=y,(i=0,1,2)
    因此,根据插值条件,用待定系数法可以确定出二次多项式 p 2 ( x ) = a 0 + a 1 x + a 2 x 2 p_2(x)=a_0+a_1x+a_2x^2 p2(x)=a0+a1x+a2x2的各个系数。这里为避免解方程组,使用基函数线性组合的构造方法来求二次多项式 p 2 ( x ) p_2(x) p2(x)。由线性插值的结论推广可知。该二次多项式 p 2 ( x ) p_2(x) p2(x)可用3个插值基函数 l 0 ( x ) , l 1 ( x ) l_0(x),l_1(x) l0(x),l1(x) l 2 ( x ) l_2(x) l2(x)进行线性组合构造。即:
    p 2 ( x ) = l 0 ( x ) ⋅ y 0 + l 1 ( x ) ⋅ y 1 + l 2 ( x ) ⋅ y 2 (3) p_2(x)=l_0(x)·y_0+l_1(x)·y_1+l_2(x)·y_2 \tag{3} p2(x)=l0(x)y0+l1(x)y1+l2(x)y2(3)
    3个插值基函数在插值节点 x 0 , x 1 x_0,x_1 x0,x1 x 2 x_2 x2处应该分别满足:
    l 0 ( x 0 ) = 1 l 0 ( x 1 ) = 0 l 0 ( x 2 ) = 0 l 1 ( x 0 ) = 0 l 1 ( x 1 ) = 1 l 1 ( x 2 ) = 0 l 2 ( x 0 ) = 0 l 2 ( x 1 ) = 0 l 2 ( x 2 ) = 1 l_0(x_0)=1 \quad l_0(x_1)=0 \quad l_0(x_2)=0 \\ l_1(x_0)=0 \quad l_1(x_1)=1 \quad l_1(x_2)=0 \\ l_2(x_0)=0 \quad l_2(x_1)=0 \quad l_2(x_2)=1 l0(x0)=1l0(x1)=0l0(x2)=0l1(x0)=0l1(x1)=1l1(x2)=0l2(x0)=0l2(x1)=0l2(x2)=1
    即只要确定出3个插值基函数即可。

    根据 l 0 ( x 1 ) = l 0 ( x 2 ) = 0 l_0(x_1)=l_0(x_2)=0 l0(x1)=l0(x2)=0,可假设 l 0 ( x ) = C ( x − x 1 ) ( x − x 2 ) l_0(x)=C(x-x_1)(x-x_2) l0(x)=C(xx1)(xx2);将 l 0 ( x 0 ) = 1 l_0(x_0)=1 l0(x0)=1代入,得:
    C ( x 0 − x 1 ) ( x 0 − x 2 ) = 1 C(x_0-x_1)(x_0-x_2)=1 C(x0x1)(x0x2)=1

    C = 1 ( x 0 − x 1 ) ( x 0 − x 2 ) C=\frac{1}{(x_0-x_1)(x_0-x_2)} C=(x0x1)(x0x2)1
    所以
    l 0 ( x ) = ( x − x 1 ) ( x − x 2 ) ( x 0 − x 1 ) ( x 0 − x 2 ) (4) l_0(x)=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)} \tag{4} l0(x)=(x0x1)(x0x2)(xx1)(xx2)(4)
    同理
    l 1 ( x ) = ( x − x 0 ) ( x − x 1 ) ( x 2 − x 0 ) ( x 2 − x 1 ) (5) l_1(x)=\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)} \tag{5} l1(x)=(x2x0)(x2x1)(xx0)(xx1)(5)

    l 2 ( x ) = ( x − x 0 ) ( x − x 1 ) ( x 2 − x 0 ) ( x 2 − x 1 ) (6) l_2(x)=\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)} \tag{6} l2(x)=(x2x0)(x2x1)(xx0)(xx1)(6)

    这样,由(3)、(4)、(5)和(6)式就构成了抛物插值公式。即:
    p 2 ( x ) = ( x − x 1 ) ( x − x 2 ) ( x 0 − x 1 ) ( x 0 − x 2 ) ⋅ y 0 + ( x − x 0 ) ( x − x 1 ) ( x 1 − x 0 ) ( x 1 − x 2 ) ⋅ y 1 + ( x − x 0 ) ( x − x 1 ) ( x 2 − x 0 ) ( x 2 − x 1 ) ⋅ y 2 p_2(x)=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}·y_0 + \frac{(x-x_0)(x-x_1)}{(x_1-x_0)(x_1-x_2)}·y_1+\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}·y_2 p2(x)=(x0x1)(x0x2)(xx1)(xx2)y0+(x1x0)(x1x2)(xx0)(xx1)y1+(x2x0)(x2x1)(xx0)(xx1)y2
    所以,抛物插值公式由3个二次插值基函数线性组合而成。

    3. Lagrange插值

    Lagrange插值法就是通过多个采样点 ( x i , y i ) ( i = 0 , 1 , 2 , ⋯   , n ) (x_i,y_i)(i=0,1,2,\cdots,n) (xi,yi)(i=0,1,2,,n)构造一个高次多项式 p ( x ) p(x) p(x)来近似代替 f ( x ) f(x) f(x)。关于插值节点数和多项式次数之间的关系,有如下定理:

    定理1:在 n + 1 n+1 n+1个互异的插值节点 x 0 , x 1 , x 2 , ⋯   , x n x_0,x_1,x_2,\cdots,x_n x0,x1,x2,,xn上,满足插值条件定义1式并且次数不高于n的代数多项式 p n ( x ) = a n x n + a n − 1 x n − 1 + ⋯ + a 1 x + a 0 p_n(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0 pn(x)=anxn+an1xn1++a1x+a0存在且惟一。

    证明:根据插值条件,有:
    { p n ( x 0 ) = a 0 + a 1 x 0 + a 2 x 0 2 + ⋯ + a n x 0 n = y 0 p n ( x 1 ) = a 0 + a 1 x 1 + a 2 x 1 2 + ⋯ + a n x 1 n = y 1 ⋮ p n ( x n ) = a 0 + a 1 x n + a 2 x n 2 + ⋯ + a n x n n = y n \begin{cases} p_n(x_0)=a_0+a_1x_0+a_2x_0^2+\cdots+a_nx_0^n=y_0 \\ p_n(x_1)=a_0+a_1x_1+a_2x_1^2+\cdots+a_nx_1^n=y_1 \\ \vdots \\ p_n(x_n)=a_0+a_1x_n+a_2x_n^2+\cdots+a_nx_n^n=y_n \end{cases} pn(x0)=a0+a1x0+a2x02++anx0n=y0pn(x1)=a0+a1x1+a2x12++anx1n=y1pn(xn)=a0+a1xn+a2xn2++anxnn=yn
    该式是一个关于未知数 a 0 , a 1 , a 2 , ⋯   , a n a_0,a_1,a_2,\cdots,a_n a0,a1,a2,,an的线性方程组,其系数矩阵的行列式是Vandermonde(范德蒙)行列式:
    V = ∣ 1 x 0 x 0 2 ⋯ x 0 n 1 x 1 x 1 2 ⋯ x 1 n ⋮ ⋮ ⋮ ⋮ ⋮ 1 x n x n 2 ⋯ x n n ∣ = ∏ n ≥ i > j ≥ 1 ( x i − x j ) V = \begin{vmatrix} 1 & x_0 & x_0^2 & \cdots & x_0^n \\ 1 & x_1 & x_1^2 & \cdots & x_1^n \\ \vdots &\vdots &\vdots &\vdots &\vdots\\ 1 & x_n & x_n^2 & \cdots & x_n^n \end{vmatrix} = \prod_{n\geq i>j\geq1}(x_i-x_j) V=111x0x1xnx02x12xn2x0nx1nxnn=ni>j1(xixj)
    因为 x i ≠ x j ( i ≠ j ) x_i\neq x_j(i\neq j) xi=xj(i=j),所以 V ≠ 0 V\neq 0 V=0。根据Gramer法则,该线性方程组有惟一解 a 0 , a 1 , a 2 , ⋯   , a n a_0,a_1,a_2,\cdots,a_n a0,a1,a2,,an,从而 p n ( x ) p_n(x) pn(x)存在且惟一。

    根据定理1,由n+1个采样点可以惟一第构造出一个次数不高于n的插值多项式 p n ( x ) p_n(x) pn(x)。在构造该插值多项式时,同样采用基函数线性组合的构造方法。可认为该插值多项式 p n ( x ) p_n(x) pn(x)由n+1个插值基函数线性组合而成,其组合系数就是对应插值节点上的函数值 y i ( i = 0 , 1 , 2 , ⋯   , n ) y_i(i=0,1,2,\cdots,n) yi(i=0,1,2,,n),即:
    p n ( x ) = l 0 ( x ) y 0 + l 1 ( x ) y 1 + ⋯ + l k ( x ) y k + ⋯ + l n ( x ) y n p_n(x)=l_0(x)y_0+l_1(x)y_1+\cdots+l_k(x)y_k+\cdots+l_n(x)y_n pn(x)=l0(x)y0+l1(x)y1++lk(x)yk++ln(x)yn

    p n ( x ) = ∑ i = 0 n l i ( x ) y i (7) p_n(x)=\sum_{i=0}^nl_i(x)y_i \tag{7} pn(x)=i=0nli(x)yi(7)
    在插值节点 x i x_i xi上,该多项式满足插值条件:
    p n ( x i ) = y i , ( i = 0 , 1 , 2 , ⋯   , k , ⋯   , n ) p_n(x_i)=y_i, \quad (i=0,1,2,\cdots,k,\cdots,n) pn(xi)=yi,(i=0,1,2,,k,,n)
    因此,为了使插值条件成立,这n+1个插值基函数 l i ( x ) ( i = 0 , 1 , 2 , ⋯   , k , ⋯   , n ) l_i(x)(i=0,1,2,\cdots,k,\cdots,n) li(x)(i=0,1,2,,k,,n)在n+1个插值节点上必须分别满足:
    l i ( x k ) = { 0 , k ≠ i 1 , k = i l_i(x_k)=\begin{cases} 0, & k\neq i \\ 1, & k=i \end{cases} li(xk)={0,1,k=ik=i
    因此,插值基函数 l i ( x ) l_i(x) li(x)有一个非零点 x i x_i xi和n个零点 x 0 , x 1 , ⋯   , x i − 1 , x i + 1 , x n x_0,x_1,\cdots,x_{i-1},x_{i+1},x_n x0,x1,,xi1,xi+1,xn,即可设
    l i ( x ) = ( x − x 0 ) ( x − x i ) ⋯ ( x − x i − 1 ) ⋅ C ⋅ ( x − x i + 1 ) ⋯ ( x − x n ) = C ∏ k = 0 , k ≠ i n ( x − x k ) l_i(x)=(x-x_0)(x-x_i)\cdots(x-x_{i-1})·C·(x-x_{i+1})\cdots (x-x_n)=C\prod_{k=0, k\neq i}^n(x-x_k) li(x)=(xx0)(xxi)(xxi1)C(xxi+1)(xxn)=Ck=0,k=in(xxk)
    再由 l i ( x i ) = 1 l_i(x_i)=1 li(xi)=1,即可确定它的常系数为 C = 1 ∏ k = 0 , k ≠ i ( x i − x k ) C=\frac{1}{\prod_{k=0,k\neq i}(x_i-x_k)} C=k=0,k=i(xixk)1,最后得到插值基函数为:
    l i ( x ) = ∏ k = 0 , k ≠ i n ( x − x k ) ∏ k = 0 , k ≠ i n ( x i − x k ) = ∏ k = 0 , k ≠ i n x − x k x i − x k ( i = 0 , 1 , 2 , ⋯   , n ) l_i(x)=\frac{\prod_{k=0,k\neq i}^n(x-x_k)}{\prod_{k=0,k\neq i}^n(x_i-x_k)}=\prod_{k=0,k\neq i}^n\frac{x-x_k}{x_i-x_k} \quad(i=0,1,2,\cdots,n) li(x)=k=0,k=in(xixk)k=0,k=in(xxk)=k=0,k=inxixkxxk(i=0,1,2,,n)
    这样就可得到n+1个插值基函数 l i ( x ) ( i = 0 , 1 , 2 , ⋯   , n ) l_i(x)(i=0,1,2,\cdots,n) li(x)(i=0,1,2,,n),代入(7)式,就得到Lagrange插值公式:
    p n ( x ) = ∑ i = 0 n l i ( x ) ⋅ y i = ∑ i = 0 n ( ∏ k = 0 , k ≠ i n x − x k x i − x k ) ⋅ y i (8) p_n(x)=\sum_{i=0}^nl_i(x)·y_i=\sum_{i=0}^n(\prod_{k=0,k\neq i}^n\frac{x-x_k}{x_i-x_k})·y_i \tag{8} pn(x)=i=0nli(x)yi=i=0n(k=0,k=inxixkxxk)yi(8)
    Lagrange插值公式具有以下特点:

    (1)对称性: p n ( x ) p_n(x) pn(x)与插值节点的排列顺序无关,只与 ( x i , y i ) ( i = 0 , 1 , 2 , ⋯   , n ) (x_i,y_i)(i=0,1,2,\cdots,n) (xi,yi)(i=0,1,2,,n)有关。

    (2)n=1为线性插值公式,n=2为抛物插值公式。

    (3)当插值节点数变化时,基函数需要重新计算。

    展开全文
  • 线性插值抛物差值

    2019-11-08 15:51:16
  • 用多项式作为插值函数来逼近某一函数f(x)f(x)f(x)是最简单易行的一种插值方法,但是插值多项式的次数是随着插值节点的数目而增加的,且次数高的插值多项式往往插值效果并不理想,会出现所谓的Runge现象,即在插值...

    分段插值法

    用多项式作为插值函数来逼近某一函数 f ( x ) f(x) f(x)是最简单易行的一种插值方法,但是插值多项式的次数是随着插值节点的数目而增加的,且次数高的插值多项式往往插值效果并不理想,会出现所谓的Runge现象,即在插值函数 p n ( x ) p_n(x) pn(x)的两端会发生激烈地震荡(不稳定)。为此,在实际应用中常采用分段插值方法。

    所谓分段插值法就是将被插值函数逐段多项式化,构造一个分段多项式作为插值函数。

    分段插值:首先,将插值区间划分为若干小段,在每一小段上使用低阶插值;然后,将各小段上的插值多项式拼接在一起作为整个区间上的插值函数。如果使用的低阶插值为线性插值(两点插值),则将拼接成一条折线,用它来逼近函数 f ( x ) f(x) f(x)

    应用低阶插值的关键在于恰当地选择插值节点。由插值余项公式(9)可知,所选节点 x i x_i xi离插值点x越近则误差越小。

    1. 分段线性插值

    将插值区间 [ a , b ] [a,b] [a,b]分成
    a = x 0 , x 1 , x 2 , ⋯   , x n = b a=x_0,x_1,x_2,\cdots,x_n=b a=x0,x1,x2,,xn=b
    n个小段,在每一个小段 [ x i − 1 , x i ] ( i = 1 , 2 , ⋯   , n ) [x_{i-1},x_i](i=1,2,\cdots,n) [xi1,xi](i=1,2,,n)上,其分段线性插值的公式为:
    s ( x ) = y i + y i − y i − 1 x i − x i − 1 ( x − x i ) s(x)=y_i+\frac{y_i-y_{i-1}}{x_i-x_{i-1}}(x-x_i) s(x)=yi+xixi1yiyi1(xxi)
    根据
    i = { 1 x ≤ x 0 k x k − 1 < x ≤ x k 时 , ( 1 ≤ k ≤ n ) n x > x n i = \begin{cases} 1 \quad x\leq x_0 \\ k \quad x_{k-1}<x\leq x_k时,(1\leq k\leq n) \\ n \quad x>x_n \end{cases} i=1xx0kxk1<xxk(1kn)nx>xn
    选择插值节点,即当插值节点为 x 0 , x 1 , x 2 , ⋯   , x k − 1 , x k , ⋯   , x n x_0,x_1,x_2,\cdots,x_{k-1},x_k,\cdots,x_n x0,x1,x2,,xk1,xk,,xn时,依次从左至右取出各节点。如果插值点x不超过节点 x 1 x_1 x1(即在 [ x 0 , x 1 ] [x_0,x_1] [x0,x1]之间),则取节点 x 0 x_0 x0 x 1 x_1 x1进行线性插值,否则,再检查x是否超过 x 2 , ⋯ x_2,\cdots x2,,依次逐步检查。一旦发现x不超过某个节点 x n x_n xn,则取它与前面一个节点 x n − 1 x_{n-1} xn1进行线性插值。如果x已超过 x n − 1 x_{n-1} xn1,则不论是否超过 x n x_n xn,插值节点均取 x n x_n xn x n − 1 x_{n-1} xn1(也就是一律当成是在 [ x n − 1 , x n ] [x_{n-1},x_n] [xn1,xn])范围内取插值点。

    在小段 [ x n − 1 , x n ] [x_{n-1},x_n] [xn1,xn]上,分段线性插值的误差是:
    ∣ R ( x ) ∣ = ∣ f ( x ) − s ( x ) ∣ ≤ ∣ f ( 2 ) ( ξ ) ∣ 8 ( x n − x n − 1 ) 2 , ξ ∈ [ x n − 1 , x n ] |R(x)|=|f(x)-s(x)|\leq \frac{|f^{(2)}(\xi)|}{8}(x_n-x_{n-1})^2, \quad \xi \in [x_{n-1},x_n] R(x)=f(x)s(x)8f(2)(ξ)(xnxn1)2,ξ[xn1,xn]
    可见,当 f ( 2 ) f^{(2)} f(2)有界时,小段 [ x n − 1 , x n ] [x_{n-1},x_n] [xn1,xn]越小,分段线性插值的误差就越小。用分段线性插值方法提高插值精度是有效的。

    1. 分段抛物插值

    为了提高插值精度,可以在每一小段取3个节点 x i − 1 , x i x_{i-1},x_i xi1,xi x i + 1 x_{i+1} xi+1进行二次插值,从而构成分段抛物插值。其插值公式如下:
    y = ( x − x i ) ( x − x i + 1 ) ( x i − 1 − x i ) ( x i − 1 − x i + 1 ) ⋅ y x − 1 + ( x − x i − 1 ) ( x − x i + 1 ) ( x i − x i − 1 ) ( x i − x i + 1 ) ⋅ y i + ( x − x i − 1 ) ( x − x i ) ( x i + 1 − x i − 1 ) ( x i + 1 − x i ) ⋅ y i y=\frac{(x-x_i)(x-x_{i+1})}{(x_{i-1}-x_i)(x_{i-1}-x_{i+1})}·y_{x-1}+\frac{(x-x_{i-1})(x-x_{i+1})}{(x_i-x_{i-1})(x_i-x_{i+1})}·y_i+\frac{(x-x_{i-1})(x-x_{i})}{(x_{i+1}-x_{i-1})(x_{i+1}-x_i)}·y_i y=(xi1xi)(xi1xi+1)(xxi)(xxi+1)yx1+(xixi1)(xixi+1)(xxi1)(xxi+1)yi+(xi+1xi1)(xi+1xi)(xxi1)(xxi)yi
    根据
    i = { 1 x < x 1 k − 1 x k − 1 < x < x k 且 ∣ x − x k − 1 ∣ ≤ ∣ x − x k ∣ , k = 2 , 3 , ⋯   , n − 1 k x k − 1 < x < x k 且 ∣ x − x k − 1 ∣ > ∣ x − x k ∣ , k = 2 , 3 , ⋯   , n − 1 n − 1 x > x n − 1 i=\begin{cases} 1 \quad x<x_1 \\ k-1 \quad x_{k-1}<x<x_k 且 |x-x_{k-1}|\leq |x-x_k|, k=2,3,\cdots,n-1 \\ k \quad x_{k-1}<x<x_k 且|x-x_{k-1}|>|x-x_k|,k=2,3,\cdots,n-1 \\ n-1 \quad x>x_{n-1} \end{cases} i=1x<x1k1xk1<x<xkxxk1xxk,k=2,3,,n1kxk1<x<xkxxk1>xxk,k=2,3,,n1n1x>xn1
    选择插值节点。即靠近 x 0 x_0 x0 i = 1 i=1 i=1,计算节点为 x 0 , x 1 , x 2 x_0,x_1,x_2 x0,x1x2;靠近 x k − 1 x_{k-1} xk1 i = k − 1 i=k-1 i=k1,计算节点为 x k − 2 , x k − 1 , x k x_{k-2},x_{k-1},x_k xk2,xk1,xk;靠近 x k x_k xk i = k i=k i=k,计算节点为 x k − 1 , x k , x k + 1 x_{k-1},x_k,x_{k+1} xk1,xk,xk+1;靠近 x n x_n xn i = n − 1 i=n-1 i=n1,计算节点为 x n − 2 , x n − 1 , x n x_{n-2},x{n-1},x_n xn2,xn1,xn

    1. 分段插值方法特点

    (1)分段插值方法算法简单,收敛性可以得到保证,只要节点间距充分小,就能达到任何精度的要求。

    (2)如需修改某个数据,则插值函数仅在相关的某个局部范围内受影响。

    (3)分段抛物插值所拼接成的插值函数曲线不一定光滑。

    展开全文
  • 编程实现单变元抛物线插值和双变元抛物线插值
  • 线性插值 双线性插值

    2018-04-05 15:12:59
    线性插值先讲一下线性插值:已知数据 (x0, y0) 与 (x1, y1),要计算 [x0, x1] 区间内某一位置 x 在直线上的y值(反过来也是一样,略):上面比较好理解吧,仔细看就是用xx0,x1的距离作为一个权重,用于y0y1的...
  • 机器人学之运动学笔记【6】—— 用抛物线过渡的线性插值轨迹规划方法 上一篇博客所学内容是使用三次多项式作轨迹规划,规划出来的曲线都是曲线,在实际的应用当中,会遇到直线轨迹的情况,所以需要掌握能够实现直线...
  • 此函数使用非线性插值(拉格朗日)根据一组观察到的 xy 点估计给定 x 的 y。 坐标将根据该对的 x 值进行排序。 用户提供的用于计算 y 的 x 值将使用提供的 x 值左侧的两个点右侧的两个点进行估计。 虽然此功能将...
  • 抛物线插值算法代码

    2013-02-21 14:46:06
    抛物线插值算法C++代码 数值分析课程资源
  • 线性插值_c语言实现

    2021-08-14 16:32:17
    线性插值相比其他插值方式,如抛物线插值,具有简单、方便的特点。 线性插值可以用来近似代替原函数,也可以用来计算得到查表过程中表中没有的数值。它是实现精确快速查找表的一种非常好的方法。 设y=f(x) 在x0 x1...
  • 三点抛物线插值 C

    2013-05-01 21:05:40
    基于三点的抛物线插值函数。与Matlab中spline()在三个数据点时的结果一致。注意,大于三点的样条插值函数需要求解线性方程组,运算复杂,实时性较低。可参考Lapack及数值计算书籍
  • 分段线性插值——数值计算方法 分段线性插值——数值计算方法 分段线性插值——数值计算方法 分段线性插值——数值计算方法
  • 抛物线插值

    千次阅读 2019-03-14 09:52:25
    抛物线插值法(parabolic interpolation method)亦称二次插值法,是一种多项式插值法,逐次以拟合的二次曲线的极小点,逼近原寻求函数极小点的一种方法。具体做法是:设f(t)在t1&lt;t2&lt;t3处的函数值依次为...
  • 线性插值相比其他插值方式,如抛物线插值,具有简单、方便的特点。如下图所示,表示的事变量XY之间的关系,他们符合线性关系。而且已知,为两个已知的X,Y的对应的数据。则可以计算出当X取值x时,Y对应的值y,可以...
  • 线性插值 np.interp()

    千次阅读 2020-05-26 05:40:35
    线性插值相比其他插值方式,如抛物线插值,具有简单、方便的特点。线性插值的几何意义即为概述图中利用过A点B点的直线来近似表示原函数。 线性插值法是认为现象的变化发展是线性的、均匀的,所以可利用两点式的...
  • 推导抛物线插值的拉格朗日插值公式 发现历程 ​ 在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·路易斯·拉格朗日命名的一种多项式插值方法。许多实际问题中都用函数来表示某种内在联系或规律,而不少...
  • vc下实现的分段线性插值、二次多项式插值、三次多项式插值、三次样条插值,并配有MATLAB测试程序
  • 线性插值算法

    2019-10-31 12:57:19
    从A变到B void lerp(float A,float B) { float length=B-A; float value; //变化的结果值 //t=change-A/length; //t的取值0-1,change【A-B】 for(int change=A,change<... t=change-A/...
  • 一元三点插值算法是一种精度更高的插值算法,使用这种方法插值出来的曲线不像线性插值算法那样在分段点的地方出现折点,显得更为平滑。但它是使用二次函数来进行曲线的拟合,曲线中还是会有不平滑的情况。 关于插值...
  • 从Godot引擎中的lerp(…)函数到线性插值 1。 What’s LERP? lerp < linear interpolation < 线性插值 < LERP索引页 < 黑客词典 2。lerp(…)函数做了什么? 先让我们给出godot中lerp的函数签名,方便...
  • 求二个数的最大公约数最小公倍数实现以下接口C语言实现线性插值lerp算法完整源码(定义,实现,main函数测试) 实现以下接口 float lerp(float k0, float k1, float t);//线性插值 C语言实现线性插值lerp算法完整...
  • 图像插值算法之双线性插值

    千次阅读 2017-11-21 16:23:24
    假设原图图片的宽度为yw,高度为xh 变换图的宽度为jw,高度为ih 于是对于变换图中任意一个像素点(j’, i...通常情况下,y’x’不为整数。 例如,原图尺寸: yw = 1000 xh = 800 123 变换图尺寸: jw = 700 ih =
  • 线性方程求解:弦截法和抛物线法 牛顿迭代法虽然具有收敛速度快的优点,但每迭代一次都要计算函数导数, 而有些函数的导数计算十分麻烦。 弦截法和抛物线法便是为了避免上述不便而提出的方法. 一、弦截法: 牛顿...
  • 线性插值和抛物线插值 #两点拉格朗日线性插值,一次插值多项式 x_list = [1, 3] y_list = [1, 2] #所要求的插值x的值 x = 1.5 l_0 = (x - x_list[1]) / (x_list[0] - x_list[1]) l_1 = (x - x_list[0]) / (x_list...
  • 最优化算法中的精确一维搜索方法之一,可以运行的
  • 2.线性插值简介 3.模拟游戏中运用到的定向运动的线性插值介绍 4.效果展示 5.部分代码展示 一、定向运动简介 (1)根据百度百科的官方解释:定向运动就是利用地图指北针依次到达地图上所示的各个地点,以最短时间...
  • 三维空间刚体运动4-3:四元数线性插值方法:Squad Squad的引出 B e ˊ z i e r c u r v e B\acute{e}zier \space curveB e ˊ zier curve 2.1 曲线的引出 2.2 公式形式及动画演示 样条 3.1 基本概念 3.2 样条曲线 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,362
精华内容 544
关键字:

线性插值和抛物线插值