你以为牛顿插值多项式式是数据的好模型吗?请解释之。

众所周知现实生活中科学技术上媔的问题大多数都能够通过建立对应的数学模型把实际问题转化成一个数学问题但是往往很多的实际问题即便建立了相对应的数学模型仍然无法有效的通过常规手法求得其解,或者求解的方法十分的复杂为了简化计算有效的求其解或者是近似解从而解决实际问题从而催苼出了数值分析这一门课程。数值分析按我自己的理解就是通过有效的科学的手段简便的求解数学模型的方式方法因此数值分析也叫科學计算。同时随着计算机的发展解放了人类的劳动力把许多数学工作者从繁复的计算中解脱了出来计算机本来一开始就是为数学而生的,我们人类不是万能的有其固有的局限性随着人类社会科学技术的发展越来越多的科学技术问题仅仅靠人力来计算无疑是痴人说梦异想忝开的,有了计算机我们期待能够把许多的数学模型都设置成一套算法放在计算机上面跑把复杂的机械化的事情都交给计算机去做,而數值分析恰恰就是面向计算机的一门实用性很强的一门学科用计算机求解科学技术问题通常经历以下步骤:

  • 根据实际问题建立数学模型

  • 甴数学模型给出数值计算方法

  • 根据计算方法编制算法程序在计算机上得出结果
    第一步建立数学模型通常是应用数学的范畴,第二三步就是數值分析与科学计算的范畴


    数值分析与科学计算树.png

  • 模型误差:要建立数学模型就需要对现实世界进行抽象既然是
    ? 抽象那么误差就会必嘫的产生误差
  • 观测误差:所谓观测误差顾名思义就是观测不准造成的误差,这主要是由于人类生理上的局限性造成的
  • 阶段误差或者方法误差:这主要是人类智力上局限性造成的误差在解决数学问题的过程中大多数我们不能够通过已有的方法得到精确解只能得到近似解,比洳可微函数用泰勒多项式展开就必然会有余项即截断误差
  • 舍入误差:这是由于计算机的字长有限把一个超过字长的数输入计算机就会溢出從而得到不精确的数值
    既然由于各种各样的局限性造成的误差的是不可避免的,我们要想克服我们人类自身的局限性就必须学会如何去控制误差如果把误差控制合理的范围内,使得其对实际问题的影响微乎其微得到一个与精确解近似的近似解,这又何尝不是身为万物の灵的人类征服自然超越自我的一种体现

相对误差: 相对性是自然界中普遍存在的真理任何事情都是相对的,误差也不例外误差的大尛需要参考真实值的大小,因此就称为相对误差但是在实际问题中真实值的大小我们通常是不知道的因此就用来代替相对误差。

相对误差限: 相对误差绝对值的上界就叫做相对误差限

  • 设计算法尽量保证误差不在计算过程中增长太快以及要避免出现病态问题
  • 要尽量使得计算公式避免或者减少有效数字的损失

迭代法是按照同一公式重复计算逐次逼近真实值的算法,是数值计算中普遍使用的方法比如说开方運算,他不是四则运算计算机只能处理四则运算因此在计算机上面要想开方就得将开方运算化解为四则运算,这就是迭代法

将迭代公式兩别取极限可得

由上式迭代公式的推导可知道要想构造迭代公式需要满足迭代公式收敛而且收敛与真值,显然迭代公式是十分适合计算机進行运算的重复的事情机械化的事情是计算机最擅长做的事情,我们把迭代公式输入计算机就相当于给了计算机一个运算规则,计算机根据这个规则就懂得如何求值

牛顿迭代法是由求根公式构造出来的,现有一个函数

求重根的Newton迭代法

在高等代数中我们学过界限行方程组如果其系数行列式不为零那么方程组有唯一解则可以用Cramer法则求出唯一解但是Cramer法则计算量太大因此以现有的计算机的运算速度是吃不消的,因此必须研究其它数值解法

Gauss消去法解线性方程组:

高等代数中学过如果一个矩阵非奇异,则其上三角举证有唯一解如果把一个线性方程组嘚系数矩阵用Gauss消元法化成一个上三角举证无疑会减少大量的计算量使得计算机的负荷没那么大(注意:高斯消去法的前提条件是消去法所形成的主元素均不为零,当n阶矩阵的所有顺序主子式都不为零时候条件满足)

主要运用在三对角矩阵中运用Gauss消去法将对角线元素下的元素小消去

列主元Gauss消去法:

主要是为了防止舍入误差给值带来的负面影响当Gauss消元进行到第K步的时候如果第K行的元素相对于其他行元素来说过于尛的化当第K行乘上一个数加到其他行消元的时候会放大误差,因此在消元的时候往往通过调换主元来控制误差

Gauss消去法的过程实际上是对方程组的增广矩阵实行行变换也就是左乘以n-1个矩阵(如果是n阶矩阵的话)左乘的n-1个矩阵的乘积是一个下三角矩阵,因此矩阵A如果可以运用Gauss消元法的话就可以把A化为一个上三角矩阵以及一个下三角矩阵的乘积形式即

一个线性方程组的增广矩阵

根据矩阵的乘法法则比较两边第一行和苐一列的元素有

对称矩阵的直接分解法:

对于对称矩阵而言由上面的计算公式可以推的

? 在许多的科学问题中经常要研究变量与函数之間的关系,如果的函数表达式很复杂或者只能够得到有效的几个点这都给研究问题带来困难,因此我们希望用一个简单的函数去近似的代替鼡以满足实际问题的需要但是由于近似度量标准的不同也就构成了插值与逼近。插值主要是用几个已知条件去构造一个较为简单的多项式函数来代替已知函数而逼近是用一个函数去逼近已知的函数。

设函数在区间上由个互异的节点如果存在一个不超过 次的多项式,则:

一般而言我们通过个条件各已通过解线性方程组来确定次多项式的系数从而确定多项式但是通过线性方程组解方程求系数过于麻烦因此我们唏望有通过插值节点来构造牛顿插值多项式式的公式

显然这样的形式满足上面的条件因此就是的n阶牛顿插值多项式式而且牛顿插值多项式式式唯一的

Newton牛顿插值多项式式与差分,差商

牛顿牛顿插值多项式式的提出是在拉格朗日多项式的基础上的上面提到的拉格朗日牛顿插徝多项式式由于在构造牛顿插值多项式式的时候插值节点式确定的,因此如果我们希望在多加几个插值节点构造更高次的牛顿插值多项式式那么我们就需要把拉格朗日的插值系数推倒从来很不灵活没有插值公式的重用性众所周知我们在计算几种输入代码的时候我们也希望提高代码的重用性用以减轻编程人员的负担,而牛顿牛顿插值多项式式的提出恰好弥补了拉格朗日牛顿插值多项式式的不足使得插值公式更加的灵活,在之前节点数插值公式的基础上可以只要经过适当的修正就可以得到新的牛顿插值多项式式

Newton牛顿插值多项式式的思想

假設有已经构造出的个节点的次的牛顿插值多项式式我们希望通过推导出增加了一个节点的牛顿插值多项式式设显然根据牛顿插值多项式式嘚定义有个零点,因此有形式

如果常数可以确定出来那么我们就可以通过来构造推导

事实上我们通过推导得到的

然而直接通过公式来推导嘚值式困难的但是数学家们通过从最简单的推导开始

对于一个插值节点的牛顿插值多项式式
对于两个插值节点的牛顿插值多项式式为线性插值
数学家只通过推到了一阶差商和二阶差商,更高阶的推到出来不现实因此数学家们把所具有的形式称之为差商并且定义出来差商嘚形式,而且通过数学归纳法的验证阶差商就是
这就是差商的由来,数学家们先发现从简单的开始然后猜想出可能具有哪些形式然后把這种形式称作差商然后用数学归纳法证明差商就是推到差值公式的系数,这就是差商产生的整个过程大家不要小看这个过程,很多的數学公式的由来都是与差商推到相类似的思维方式还有所谓的数学归纳法其实有点类似于大家都知道的多米诺骨牌效应只要证明第一个荿立,并且只要前面的满足导致后面的满足这个就是成立的。就像多米洛骨牌只要推到第一个其他的也会跟着倒下去老实说笔者刚看書的时候也对这个差商是怎么来的百思不得其解,知道我多找了几本书参考了之后才搞明白这个差商是怎么来的差商的推到思维过程真嘚是很有意思嘞。
差商可以通过构造差商表来进行计算是分的方便放到计算机中只要输入算法,构造牛顿插值多项式式是一件极其简单嘚事情

差分及其等距节点的Newton牛顿插值多项式式:

对于等距节点而言我们可以极大的减少计算差商的计算量可以将差商形式化解为差分的形式。
因为的值是固定不变的因此我们可以定义设法化解差商
类似地称称之为在处以为步长的阶向前差分,简称
然后我们应用数学归纳法可以证明差分与差商的关系如下:
因此将差分与带入牛顿插值多项式式可以得到:

前面介绍的插值公式都只是考虑到牛顿插值多项式式茬插值节点处取给定的函数值但是往往在实际问题中只要求函数值满足还不够还要要求在这些点上的导数值也相等这即是插值这里不做过哆的讨论感兴趣的可以去翻看相关书籍

高次插值的缺点及其分段插值 在进行高次插值的时候有可能会发生龙格函数函数的状况,即高次插值的牛顿插值多项式式有可能并不收敛于已知函数为了应对这种清苦保证插值函数一致收敛于已知函数我们可以把已知函数分成个小區间然后在每个小区间上进行插值或者插值,但是如果分成的插值小区间过多的时候在每个小区间上面我们其实不要选择过多的插值节点僦可以因为区间小插值函数比较精准,所以一般我们每个小区间上面选取一个到四个插值节点就够了但是往往我们还要满足插值节点嘚导数情况这样我们只要知道区间端点的两个函数值及其导数值我们就可以构建每个小区间上的三次牛顿插值多项式式这就是三次样条插徝。

三次样条插值: 设在区间上给定个插值节点


在每一个小区间上是三次多项式
上有连续的二阶导数则称为3次样条插值函数
从定义可知要使得在每个小区间上都是三次多项式则每个小区间上需要满足四个条件才能够构建三次多项式总共需要4n个条件,有已经知条件有个插值節点满足的条件有个条件再加上联结条件
这里有个条件,一共就有了个条件
其中的一项总共就有个条件就可以确定唯一的三次样条插值
臸于三次样条的求法这里不做过多描叙感兴趣的自己去看书

之前的多项式插值都是要求在插值节点满足被插值函数的一些条件,在插值節点处误差为零这是一种近似的度量标准,下面介绍另外的两种近似度量标准要求在整个区间上插值函数与被插值函数的误差尽可能嘚小,但不要求相等

最佳一致逼近多项式 设若存在 使得对任意的 (为所有次数不超过的多项式的集合)


有: , 则称 为的最佳一致逼近多项式。

吔就是说最佳一致逼近多项式是所有多项式中函数值与被插值函数的差的最大值最小的牛顿插值多项式式 最佳一致逼近多项式的构建主要昰利用最佳一致逼近多项式存在交错偏差点的性质


为了求最佳一致逼近多项式以及求最佳近似一致逼近多项式可以引进多项式,有最佳一致逼近多项式的定义可知,要求最佳一致逼近多项式也就是求的最小零偏差问题而正好多项式有在区间上所有首项为一的次多项式中对零的偏差最小,因此可以借助多项式求最佳一致逼近多项式而且多项式有很多的性质,比在区间有个不同的零点还有一个交错偏差点組,如果以多项式的零点做牛顿插值多项式式则可以使得牛顿插值多项式式的余项取得最小这就是最佳近似一致逼近多项式。如果求不昰在区间上构建一致逼近多项式那么可以通过变换把它变为上的被插值函数然后做一致逼近。
具体内容请参考相关书籍

最佳平方逼近多項式 最佳一致逼近多项式考虑的是在区间上值的误差的最大值最小而最佳平方逼近多项式是考虑在整体上误差最小,有些被插值函数仅僅只是在很小的一个区间上波动很大这样的被插值函数显然用最佳一致逼近多项式去逼近并不合适,因此需要用另外的度量标准去度量菦似程度

函数求导数与求微分的问题已经在数学分析中得到解决了,但是如果是面对离散的数据时候求导与求积公式都不能使用而且計算机是不能够处理连续的问题的,因此如果要想把积分法则变成计算机程序就必须把积分变成离散的问题转变为四则运算而后才可以给計算机输入一套算法
实际上一个函数在某个区间上面的积分本身就可以看做是函数在这个区间上无穷多项的和我们不妨就设想积分有这樣的形式。设给定的一组节点已知函数在这组节点上的值为则可以做牛顿插值多项式式,是插值基函数于是得到一个求积公式:
得到,为求积系数如果求积节点是等距的那么其插值型求积公式为求积公式求积系数的公式可以推导出来具体请参考相关书籍

在常微分方程中我们学習过常系数线性方程组,变系数微分方程组与非线性方程组的求解公式,但是在实际科学研究中往往有很多的问题非常的复杂我们无法运用常规的方法求其公式解或者是即便求出来了也及其的不方便计算,因此我们就只能想办法求其数值解

Euler方法求解方法是求解初值问題的最简单的数值方法


为了求数值解我们需要把区间离散化为步长为 的个小区间
讨论关于一阶微分方程的初值问题
将方程组一式两边积分迻项可得:
然后运用左矩形公式可得:
则上式成为公式实际上欧拉公式就是把函数在第个小区间上的导数都用来代替然后运用直线公式求其在节点的函数值,显然这种情况当区间选取足够小的时候才会精确

构造更高精度的求解公式梯形公式 将式左边运用梯形公式可得,不难想潒如果在一个小区间上我们多选取几个点求其斜率值的平均值那么求小区间内求积节点的数值解的准确度会更高梯形公式就想当与用了兩个点的平均斜率做函数在小区间上的斜率值,但是在这里我们的是一个未知值因此我们需要将公式与梯形公式合在一起用先用公式求嘚的一个粗糙值,然后将其带入梯形公式


求数值解就是把连续的问题离散化,然后利用递推公式求值
}

板子:给出平面上n+1个点求一条穿过这n+1个点的n次多项式,或这个多项式在另一个点处的值

显然可以高斯消元求出每一项系数,然后输出/直接爆算

其实拉格朗日插值有兩种:朴素的,和重心拉个朗日插值一般情况下,朴素的和高斯消元在求解第1问时复杂度没有区别但是后者无论第几问都可以用 O(n2)的复雜度爆艹高斯消元

以下全都介绍求多项式的方法。

比如说已知下面这几个点,我想找到一根穿过它们的曲线:

首先显然可以用一个n次多項式经过不保证第n项系数是否为0。

然后高斯消元告诉我们这应该是一个二次曲线。

0

然后显然可以解方程。

0 0 0

然而如果不解方程呢?

拉格朗日发现我们可以用三根二次函数相加得到我们要的函数。

x=x1?处值为1在

x=x2?处值为1,其余两处值为0

x=x3?处值为1,其余两处值为0

y1?f1?(x)+y2?f2?(x)+y3?f3?(x)的性质。首先它是一个二次函数。然后它过这三个点。高斯消元告诉我们这个函数就是唯一的二次函数 which(经过这三个点)。

n+1个点每个点形如 0 0 (x0?,y0?),(x1?,y1?),(x2?,y2?),...,假设任意两个x都不相同那么最后得到的多项式肯定是:

0 0

显然,这个式子计算连乘部分是n^2的(直接②项打开)总复杂度

而且,如果在原点集的基础上加一个点它需要比较大的复杂度取更新。

正常的做法应该是发现每一个连乘的分孓乘上一个二项式能变成一个统一的多项式,所以处理的时候直接用不需要的那个二项式去除那个多项式就行(下面的常数计算)

为了方便增加一个点的改进(正常做法)

0

0

0

0

0

对于这个公式,我们可以每次插入一个点插一个点On,又因为除的项只有两项可以手动讨论,因此朂后统计n^2显然求出答案是

前面说过,如果只是求值那么朴素的拉格朗日插值也能做到 O(n2)。就是直接把要求的x带入上面一堆式子中的x即可

}

我要回帖

更多关于 插值多项式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信