等距结点下的Newton插值多项式系数计算(向前差分)
插值多项式的牛顿法
1.为何需要牛顿法?
使用Lagrange插值法不具备继承性。当求好经过\(({x_0},{y_0})-({x_n},{y_n})\)共n+1个点的插值曲线时候,如果再增加一个点,由Lagrange插值法通式\[\sum_{k=0}^{n}\frac{\prod_{i=0,i\ne k}^{n}(x-x_i)}{\prod_{i=0,i\ne k}^{n}(x_k-x_i)}y_k\]可以知道,当再增加一个点时候,Lagrange 多项式还要重新计算以确定系数。
2.牛顿插值多项式
由线性代数的知识可以知道,任何n次多项式都可以表示成1,\((x-x_0)\),\((x-x_0)(x-x_1)\),\({\ldots}\),\((x-x_0)(x-x_1){\ldots}(x-x_{n-2})(x-x_{n-1})\) 的线性组合形式,牛顿插值多项式正是基于这一点。\(N_n\)(x)=\(a_0\)+\(a_1\)(\(x-x_0\))+\(a_2\)(\(x-x_0\))(\(x-x_1\))+\({\ldots}\)+\(a_n(x-x_0)(x-x_1)(x-x_2){\ldots}(x-x_{n-1})\),其中\(a_k\)为插值多项式的待定系数。(一下关于牛顿插值多项式系数计算是基于各x结点的等距条件)
3.牛顿向前差分公式
假设\(x=x_k,\)则此时\(y=y_k\),这样,若\(a_0,a_1,a_2\dots\)则可以求出\(a_k\)。因为\(N(x_k)=y_k\),而对于含有\(a_{k+1},a_{k+2}\dots a_{n}\)项代入\(x_k\)后值为0。那么所求\(a_k\)=\[\frac{y_k-()}{\prod_{i=0}^{k-1}x_k-x_i}\],在假设\(x_k\)为等距结点的时候,\(x_k\)可以表示为\(x_k=x_0+kh\),其中h为步长。那么所求\(a_k\)近似可表示为\(a_k=\frac{y_k-()}{k!h^k}\)。
定义 f(x)在\(x_k\)处的向前差分为\(\Delta y=y_{k+1}-y_k\),相应的我们可以定义\(\Delta y\)的差分,也就是y的二阶向前差分\(\Delta^{2} y_k=\Delta y_{k+1}-\Delta y_k\); 这样,类似我们可以定义y的m阶向前差分\(\Delta ^{m} y_k = \Delta ^{m-1} y_{k+1} -\Delta ^{m-1} y_k\)。在等距结点\(x=x_0+kh\) 的条件下我们可以利用向前差分来导出系数的计算。
4.牛顿向前差分公式系数计算
由\(N_n(x_0)=y_0\)可以得到\(a_0\)的表达式为\(a_0=y_0\),这样我们可以定义y的零阶向前差分\(\Delta ^0 y=y0\),这样利用3中推出的\(a_k\)表达式可以将这个结果化为这样的形式\(a_0=\frac{\Delta^0 y_0}{0!h^0}\)。我们再来看\(a_1\)的表达式。因为\(N_n(x_1)=y_1=a_0+a_1(x_1-x_0)\),而\(a_0\)为\(y_0\),则\(a_1=\frac{y_1-y_0}{x_1-x_0}=\frac{\Delta^1 y_0}{1!h^1}\)。同样的,我们来计算\(a_2\)的表达式。\(N_n(x_2)=a_0+a_1(x_2-x_0)+a_2(x2-x_0)(x_2-x_1)=y_2\),而又因为\(x_2-x_0=2h,a1\)可以表示成\(\frac{\Delta y_0}{h}\),因而可以将\(a_2\)表示为\(a_2=\frac{y2-y0-\frac{\Delta y_0}{h}2h}{(x_2-x_0)(x_2-x_1)}=\frac{y_2-y_0-2(y_1-y_0)}{2!h^2}=\frac{(y_2-y_1)-(y_1-y_0)}{2!h^2}=\frac{\Delta^2 y_0}{2!h^2}\),这样规律就很明显了。事实上,通过计算我们可以得到\(a_k\)的表达式为\(a_k=\frac{\Delta ^k y_0}{k!h^k}(k=0,1,\cdots {n-1},{n})\),于是我们可以将牛顿多项式完整的表达出来了---\(N_n(x)=\frac{\Delta ^0 y_0}{0!h^0}+\frac{\Delta ^1 y_0}{1!h^1}(x-x_0)+\frac{\Delta ^2 y_0}{2!h^2}(x-x_0)(x-x_1)+\cdots+\frac{\Delta ^k y_0}{k!h^k}(x-x_0)(x-x1)\cdots(x-x_{k-1})+\)\(\cdots+\frac{\Delta ^n y_0}{n!h^n}(x-x_0)(x-x_1)\cdots(x-x_{n-1})\)。这样我们就得到了牛顿插值公式的完整表达,通过计算\(y_0\)的n阶向前差分就可以得到结果了。
5.如何再化简?
我们再x等距取样条件下得到了牛顿插值多项式的表达式,同样的,可以充分利用这个条件。也就是设x=\(x_0+th\),其中h为步长。这样\[\sum_{i=0}^{k-1}(x-x_i)=th*(t-1)h*\cdots*(t-k+1)h=A_t^kh^k\],而系数\(a_k=\frac{\Delta ^k y_0}{k!h^k}\),所要整合式子可以得到\(N_n(x_0+th)=y_0+t\Delta y_0+\frac{t(t-1)\Delta ^2 y_0}{2!}+\cdots+\frac{t(t-1)\cdots(t-n+1\Delta ^ny_0)}{n!}\)=\(\sum_{k=0}^{n}\frac{A_t^k \Delta ^k y_0}{k!}\)
最后说明
这里只是利用了等距取点条件计算的牛顿插值公式表达式,实际情况下取的点不一定等距,因此,在不等距的条件下相应还要计算方法(后面我会逐渐整理的)。除此之外,还可以用向后差分,中心差分法,限于时间,往后再整理了。
等距结点下的Newton插值多项式系数计算(向前差分)的更多相关文章
- 数值分析案例:Newton插值预测2019城市(Asian)温度、Crout求解城市等温性的因素系数
数值分析案例:Newton插值预测2019城市(Asian)温度.Crout求解城市等温性的因素系数 文章目录 数值分析案例:Newton插值预测2019城市(Asian)温度.Crout求解城市等温 ...
- Newton插值的C++实现
Newton(牛顿)插值法具有递推性,这决定其性能要好于Lagrange(拉格朗日)插值法.其重点在于差商(Divided Difference)表的求解. 步骤1. 求解差商表,这里采用非递归法(看 ...
- jquery清除某一结点下的子节点
jquery清除某一结点下的子节点:这个情况多用于数据的加载中,如果当执行某一操作之后,想重新加载页面,但是又不想整个页面都重新加载,这个时候就可以使用该方法, case: $("#ta ...
- 实现Linux下dc的功能,计算后缀表达式的值
提交测试截图和码云练习项目链接,实现Linux下dc的功能,计算后缀表达式的值 -将运算符写在两个操作数之后的表达式称为"后缀表达式",如上面的中缀表达式可转换为后缀表达式1 2 ...
- Fluent批处理之--windows下多个任务的计算 【转载】
转载自http://jingcao830828.blog.163.com/blog/static/10320833620103633624506/ 1.同维多任务的连续计算 对于工程应用来说,计算精度 ...
- [math][mathematica] archlinux 下 mathematica 的安装 (科学计算软件 mathematica/matlab/sagemath)
ONLINE: http://www.wolframalpha.com/ GPL: segamath: http://www.sagemath.org/ famous and not free: ma ...
- c语言下的变量类型及计算
源码 补码 反码 机器数:一个数在计算机中的二进制表示形式, 叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 真值:第一位是符号位,将带符号位的 ...
- 多项式函数插值:全域多项式插值(一)单项式基插值、拉格朗日插值、牛顿插值 [MATLAB]
全域多项式插值指的是在整个插值区域内形成一个多项式函数作为插值函数.关于多项式插值的基本知识,见“计算基本理论”. 在单项式基插值和牛顿插值形成的表达式中,求该表达式在某一点处的值使用的Horner嵌 ...
- 插值方法 - Newton向前向后等距插值
通常我们在求插值节点的开头部分插值点附近函数值时,使用Newton前插公式:求插值节点的末尾部分插值点附近函数值时,使用Newton后插公式. 代码: 1 # -*- coding: utf-8 -* ...
随机推荐
- Python celery和Redis入门安装使用(排难帖)
1.redis安装 下载地址 https://github.com/MicrosoftArchive/redis/releases,选择Redis-x64-3.2.100.msi5.8 MB下载就好了 ...
- kotlin系列文章 --- 2.基本语法
函数 函数定义使用fun关键字,参数格式为:参数:类型,需要声明返回类型 fun sum(a:Int, b:Int): Int{ return a+b } 表达式作为函数体,返回值类型自动推断 fun ...
- ADB命令无法导出文件到物理机上处理办法
因为想查看一下脚本生成的sqlite文件.就想导出文件,,结果导出adb pull命令一直报错.使用su也是错误的..最后发现adb pull 不能再adb的命令状态下执行.需要退出adb命令.然后直 ...
- flask 源码解析:上下文(一)
文章出处 https://www.cnblogs.com/jackchengcc/archive/2018/11/29/10025949.html 一:什么是上下文 每一段程序都有很多外部变量.只有 ...
- Node.js入门教程 第五篇 (Express框架)
Express框架 Express是适用于Node.js web的框架,提供了大量实用功能,例如路由功能及http功能. Express 框架核心特性: 可以设置中间件来响应 HTTP 请求. 定义了 ...
- Hive 官方手册翻译 -- Hive DML(数据操纵语言)
由 Confluence Administrator创建, 最终由 Lars Francke修改于 八月 15, 2018 原文链接 https://cwiki.apache.org/confluen ...
- 如何在Linux服务器上部署Mysql
一.安装mysql 1.通过文件上传工具,将mysql安装包上传到linux服务器上 2.卸载mariadb包,由于系统中存在mariadb包会导致mysql安装时报错mariadb-libs被mys ...
- 内网渗透bypassuac和smb溢出
对内网渗透需要渗透的目标主机处于跨网段和uac限制的情况做一个渗透记录 环境大致如下 拥有shell权限的win7(有uac限制,处于双网段) 和同win7同一网段下暂时无权限的靶机xp 先对有权限的 ...
- opencv::自定义线性滤波
卷积概念 常见算子 自定义卷积模糊 卷积概念 1.卷积是图像处理中一个操作,是kernel在图像的每个像素上的操作. 2.Kernel本质上一个固定大小的矩阵数组,其中心点称为锚点(anchor po ...
- go-数组-切片-字典
声明一个数组变量的同时为该变量赋值. ], , } 另一种便捷方法, 类型字面量中省略代表其长度的数字 , , } 对于数组来说,索引值既不能小于0也不能大于或等于数组值的长度. 索引值的最小有效值从 ...