插值方法: 拉格朗日插值--逐步插值的自适应算法

1.问题描述

所谓插值,就是设法利用已给数据表求出给定点x的函数值y.表中的数据点

称为插值节点,所要插值的点x称插值点。

插值计算的目的在于,通过尽可能简便的方法,利用所给数据表加工出插值点x上具有足够精度的插值结果y.

在这种意义,插值过程是个数据加工的过程。

2.理论与方法

Largrange 插值,回顾我们之前的多项式插值

多项式的系数与所给的数据点并没有直接的联系,所以我们考虑增加一个多项式的基函数会不会更好,例如,这里

这样一个表达式是很容易进行操作的,对于不同点或插值的公式。

这样一个多项式基函数就是通过Largrange插值构造的,对于n阶多项式满足

给出数据点在xi处的值yi,有唯一的插值多项式
此外,p的最高阶为n,满足插值条件,因为

Divided differences and Newton’s form

We have seen thestandard monomial basis , This has led to a relativelyinferior procedure for constructing p= but an easy procedure for evaluating   at a given argument x , On the other hand,with the Lagrangepolynomial basis

The construction stage is easy, but the evaluation of  is relatively involved conceptually. TheNewton polynomial basis can be viewed as a useful compromise: we set
                                           
The discussion that follows illustrates the merits of thischoice

3.算法设计

1.Lagrange插值

根据给定的数据表(xi,yi),i=0,1,...,n及插值点x,根据公式求得插值结果y

为了计算的简化,可以先计算全部x与的差值和,再进行带入
2. 逐步插值的自适应算法

在实际计算时可以这样设计计算流程。依与插值点x的距离,事先由近及远顺序排列插值节点x0,x1,...,xn然后逐行生成逐步插值表,每增添一行引进一个新的节点,这一过程直到相邻的两个对角线元素的偏差|Yi,i+1 - Yi-1,i|满足精度要求为止。这就是逐步插值的自适应法。

计算程序:

依与插值点x的距离,事先由近及远地顺序排列插值节点x0,x1,...,xn

逐行生成插值表 对 i=0,1,...,n 计算

检查计算误差 对给定精度e,当|Yi,i+1 - Yi-1,i|< e计算终止,并输出Yi,i+1作为插值结果。

自然停机 当i=n时输出Yn-1,n作为插值结果。

4.案例分析


Example1:

The population in millions of the United States from 1920 to2000 can be tabulated as following

Date

1920

1930

1940

1950

1960

1970

1980

1990

2000

Population

106.46

123.08

132.12

152.27

180.67

205.05

227.23

249.46

281.42

using first-, second-through senventh-order interpolating polynomials to predict the population in2000 based on the most recent data.

拉格朗日多项式:

从最终结果可以看出,使用拉格朗日插值法的误差较大,在5阶时预测的结果最接近实际情况,但仍存在偏差。

5.代码


void _3()
{double p[8];double x[8] = { 1920,1930,1940,1950,1960,1970,1980,1990 };double y[8] = { 106.46,123.08,132.12,152.27,180.67,205.05,227.23,249.46 };double w[8][8], q[8];for (int i = 1; i < 8; i++){for (int j = 0; j <= i; j++){w[i][j] = 1;for (int k = 0; k <= i; k++){if (j != k) w[i][j] *= (x[j] - x[k]);}w[i][j] = 1 / w[i][j];//        cout << w[i][j] << endl;}// cout << endl;}//cout << endl;double xx = 2000;for (int i = 1; i < 8; i++){q[i] = 1;for (int j = 0; j <= i; j++){q[i] *= (xx - x[j]);}//     cout << q[i] << endl;}//cout << endl;for (int i = 1; i < 8; i++){double temp = 0;for (int j = 0; j <= i; j++){temp += (w[i][j] * y[j]) / (xx - x[j]);}p[i] = q[i] * temp;cout << setw(2) << i << "阶插值结果: " << p[i] << endl;}
}

End

插值方法: 拉格朗日插值--逐步插值的自适应算法相关推荐

  1. 函数插值的python实现——拉格朗日、牛顿插值

    函数插值的python实现--拉格朗日.牛顿插值 1. 拉格朗日(Larange)插值 实现代码 2. 牛顿(Larange)插值 2.1 牛顿插值多项式的基本形式 2.2 牛顿均差插值多项式 (1) ...

  2. 6、计算机图形学——着色频率、插值与插值的矫正

    一.着色频率 通过光照模型可知,最终的光照结果和光照点的法线向量关系很大.所以,根据不同的法线向量,就有不同的着色方法.在图形学中,法线分为:面法线.顶点法线和像素法线.光照和这三种法线相互作用,就有 ...

  3. 域对抗自适应算法的设计、不足与改进(Domain Adversarial Learning)

    ©作者 | 江俊广 单位 | 清华大学 研究方向 | 迁移学习 本文主要介绍域自适应(Domain Adaptation)中的对抗域自适应方法(Domain Adversarial Learning) ...

  4. 陕西中际现代:基于自适应算法的PLC滴灌控制系统

    基于自适应算法的PLC滴灌控制系统 陕西中际现代包装科技有限公司滴灌部 1.介绍 水资源正在成为一种珍贵的资源.城镇的市民使用成千上万立方的水来浇灌花园和绿地.他们依赖于使用固定灌溉计划的控制器.而这 ...

  5. 基于自适应算法和增量式PID算法的模拟直升飞机控制系统

    基于自适应算法和增量式PID算法的模拟直升飞机控制系统 文章目录 基于自适应算法和增量式PID算法的模拟直升飞机控制系统 控制系统硬件 单片机系统 传感器系统介绍 直升机模拟系统介绍 系统模块介绍 A ...

  6. webrtc中的带宽自适应算法

    webrtc中的带宽自适应算法分为两种: 1, 发端带宽控制, 原理是由rtcp中的丢包统计来动态的增加或减少带宽,在减少带宽时使用TFRC算法来增加平滑度. 2, 收端带宽估算, 原理是并由收到rt ...

  7. CVF2020邻域自适应/语义分割:FDA: Fourier Domain Adaptation for Semantic SegmentationFDA:用于语义分割的傅立叶域自适应算法

    邻域自适应/语义分割:FDA: Fourier Domain Adaptation for Semantic Segmentation FDA:用于语义分割的傅立叶域自适应算法 0.摘要 1.概述 1 ...

  8. C#,图像二值化(05)——全局阈值的联高自适应算法(Legal Self-Adaptive Thresholding)及其源代码

    阈值的选择当然希望智能.简单一些.应该能应付一般的图片. What is Binarization? Binarization is the process of transforming data ...

  9. 立方卷积插值 matlab,matlab旋转实现(最近邻值,双线性,三次卷积插值实现插值)

    数字图像处理,使用matlab实现旋转(最近邻值,双线性,三次卷积插值实现插值) 对图像进行旋转,使用最近邻插值法,双线性插值,三次卷积插值三种方法进行插值. 源码: clc;clear all;cl ...

  10. 关于Gmsh使用Full_Blosson三角形合并为全四边形以及波前法、Delaunay和自适应算法测试

    本文只要做了一些测试,并不涉及代码编写,基于前面的文章的一些代码下,重新编译了Gmsh with opencascade,这次勾选了BLOSSON选项,目的是为了使三角形能全部合并为四边形,同时对gm ...

最新文章

  1. 熬了一个通宵,终于把 7 千万个 Key 删完了
  2. python 获取当天和前几天时间数据(亲测)
  3. git撤销commit 并保存之前的修改
  4. android app逆向分析,如何开始对Android应用的逆向分析?
  5. JQ之路——layer第三方弹窗
  6. 第八章:在Spark集群上掌握比较重要的图操作之Property Operators(1)
  7. 中国象棋将帅问题java_编程之美读书笔记1.2——中国象棋将帅问题
  8. scla-基础-函数-元组(0)
  9. 操作系统知识--线程
  10. python培训班靠谱吗-什么样的python培训机构靠谱?
  11. Windows下对文件做MD5校验
  12. 【方向盘】Spring Boot 2.5.0正式发布,环境变量可指定前缀的功能很赞
  13. 个税服务器系统繁忙,2021个人所得税系统异常进不去怎么办?系统繁忙请稍后再试怎么回事...
  14. Unity Shader数学基础 -- Shader入门精要学习(3)
  15. 基于sql2014+VS2015的报刊管理系统报告
  16. 测开之路三十三:Flask实现扎金花游戏
  17. php 2038,php实现兼容2038年后Unix时间戳转换函数
  18. 学3d建模和计算机编程,超好用的3D建模软件全科普,想要学好建模的你千万别错过!...
  19. 人工智能-高等数学之导数篇
  20. 1214. 波动数列

热门文章

  1. Utils 前端随机生成id,中文姓名
  2. 微信怎么和计算机发送文件格式,微信电脑版文档怎么弄 文档发送教程
  3. 惠普打印机扫描软件安装
  4. 在web of science / 知网 上生成题录
  5. sql server的增删改查语句
  6. IO、NIO和AIO的区别
  7. java 斗地主出牌算法_Golang算法实战之斗地主一
  8. APP微信小程序测试一览表(常规用例)
  9. 双击计算机显示远程调用失败,win10提示远程调用过程失败且未执行的修复办法...
  10. centos7的mysql登录