数值分析复习(一)线性插值、抛物线插值

线性插值

数学上定义:线性插值是指插值函数为一次多项式的插值方式,其在插值节点上的插值误差为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),但这是求插值多项式最蠢的方法,一般不采用,常用的是拉格朗日插值法或牛顿插值

 

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抛物线过渡的线性插值指的是利用两个已知点的函数值和导数值,构造一条以这两个点为端点,导数值为斜率的一次函数,作为抛物线过渡的线性插值。 在Matlab中,可以使用interp1函数进行线性插值。具体步骤如下: 1. 假设已知两个点(x1, y1)和(x2, y2),以及这两个点的导数值dy1和dy2。 2. 构造两个向量x和y,分别为[x1, x2]和[y1, y2]。 3. 构造一个向量xi,表示需要插值的位置。可以使用linspace函数生成一个等间距的向量。 4. 计算插值点处的导数值dx。由于抛物线过渡的线性插值是一次函数,因此在(x1, y1)处的导数值为dy1,在(x2, y2)处的导数值为dy2,因此dx = (y2 - y1) / (x2 - x1)。 5. 计算插值点处的函数值yi。由于抛物线过渡的线性插值是一次函数,因此在(x1, y1)处的函数值为y1,斜率为dx,因此在xi处的函数值为y1 + dx * (xi - x1)。 6. 使用interp1函数进行线性插值。具体格式为:yi = interp1(x, y, xi, 'linear')。 7. 绘制插值曲线。可以使用plot函数进行绘制。 以下是一个简单的示例: ```matlab % 已知两个点和导数值 x1 = 0; y1 = 0; dy1 = 1; x2 = 1; y2 = 1; dy2 = 2; % 构造向量x和y x = [x1, x2]; y = [y1, y2]; % 构造插值点向量xi xi = linspace(x1, x2, 100); % 计算插值点处的导数值dx dx = (y2 - y1) / (x2 - x1); % 计算插值点处的函数值yi yi = y1 + dx * (xi - x1); % 使用interp1函数进行线性插值 y_interp = interp1(x, y, xi, 'linear'); % 绘制插值曲线 plot(xi, yi, 'r'); hold on; plot(xi, y_interp, 'b'); legend('抛物线过渡的线性插值', '线性插值'); ``` 运行结果如下图所示: ![抛物线过渡的线性插值示例图](https://img-blog.csdn.net/20180519220652107?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2p1bmtpbmcxOTk3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值