有情有义的牛肉面 · 使用清单将代码插入latex时的一些丰富文本 ...· 2 月前 · |
犯傻的小蝌蚪 · 江西大型PCB产业园|华中表面处理循环经济产 ...· 3 月前 · |
爱看球的斑马 · Spring Security: How ...· 3 月前 · |
独立的汉堡包 · 2024年全球与中国E-ink电子阅读器行业 ...· 3 月前 · |
切比雪夫插值的动机是在插值区间上,提高对如下插值误差(如:牛顿差商公式)的最大值的控制
\frac{\text{(}x-x_1\text{)}\left( x-x_2 \right)···\text{ (}x-x_n\text{) }}{n!}f^{\left(n\right)}\left(c\right)
n
!
(
x
−
x
1
)
(
x
−
x
2
)
⋅
⋅
⋅
(
x
−
x
n
)
f
(
n
)
(
c
)
从现在开始,让我们把区间固定在[-1,1]。
多项式插值误差的分子
x
n
使得(1.1)的最大值足够小?这被称为插值误差的最小最大问题。
多项式结点均匀分布时,其端点可能取值趋向极大,这是龙格现象的一个表现。而切比雪夫结点会在区间上一定程度地补偿多项式的大小。
在[-1,1]之间,当选择放置9个基点的精确位置是
\underset{-1\le x\le 1}{\max}\left| \left(x -x_1 \right)···\left( x - x_n \right) \right|
−
1
≤
x
≤
1
max
∣
(
x
−
x
1
)
⋅
⋅
⋅
(
x
−
x
n
)
∣
尽可能小,则
\text{(}x-x_1\text{)}\left( x-x_2 \right)···\text{ (}x-x_n\text{) }\ = \frac{1}{2^{n-1}} Tn(x)
(
x
−
x
1
)
(
x
−
x
2
)
⋅
⋅
⋅
(
x
−
x
n
)
=
2
n
−
1
1
T
n
(
x
)
可以得到极小值,其中Tn(x)表示n 阶切比雪夫多项式。
从定理中我们得到结论:如果区间[-1,1]中的n个插值基点选在n阶切比雪夫多项式Tn(x)根的位置,误差可以被最小化。这些根如下
2
(
n
−
1
)
。
选择切比雪夫的根作为插值的基点,在区间[-1,1]中尽可能均匀地分散了插值误差,我们将使用切比雪夫根作为基点的插值多项式叫做切比雪夫插值多项式。
定义n阶切比雪夫多项式Tn(x)= cos(n arccosx)。不考虑该函数的外观,它对于每个n都是关于x的多项式。例如,当 n = 0时,对应 0 阶多项式1,当 n=1 时我们得到 T1(x) = cos(arccosx) = x 。当n = 2时,回忆余弦求和公式cos(a+b) = cosacosb - sinasinb。令y = arccosx,因而 cosy = x 。则 T2(x)=
T_{n+1}\left(x\right)\ =\ \cos\left(n+1\right)y \ = \ \ cos\left(ny+y \right)\ =\ \cos ny\cos y-\sin ny\sin y
T
n
+
1
(
x
)
=
cos
(
n
+
1
)
y
=
c
o
s
(
n
y
+
y
)
=
cos
n
y
cos
y
−
sin
n
y
sin
y
T_{n-1}\left(x\right)\ =\ \cos\left(n-1\right)y \ = \ \ cos\left(ny-y \right)\ =\ \cos ny\cos y-\sin ny\sin -y
T
n
−
1
(
x
)
=
cos
(
n
−
1
)
y
=
c
o
s
(
n
y
−
y
)
=
cos
n
y
cos
y
−
sin
n
y
sin
−
y
由于sin(-y) = -siny,我们把前面的方程加起来得到
T_{n+1}\left(x \right) \ +T_{n-1}\left(x \right)\ = 2\cos ny\cos y\ =\ 2xT_n\left( x\right)
T
n
+
1
(
x
)
+
T
n
−
1
(
x
)
=
2
cos
n
y
cos
y
=
2
x
T
n
(
x
)
得到的关系如下:
x
i
是切比雪夫节点。
到目前,关于切比雪夫插值的讨论局限于区间[-1,1],这是由于定理1.2在这个区间内非常容易说明。现在我们将方法推广到一般的区间[a,b]。
移动基点使得它们在区间[a,b]上的相对位置和在区间[-1,1]上一致。这可以通过如下两步实现:(1)使用因子(b-a)/2拉伸点(这是两个区间长度的比值),(2)将点平移(b+a)/2,使得中心从0移动到区间[a,b]的中心。换句话讲,从原始点
x
k
=
5
c
o
s
(
2
2
(
2
k
+
1
)
Π
)
(
k
=
1
0
,
9
,
8
,
⋅
⋅
⋅
)
其点横坐标分别为 :
-4.9491,-4.5482,-3.7787,-2.7032,-1.4087,0,1.4087,2.7032,3.7787,4.5482,4.9491
取部分点对比如下:
由表格中计算的测试点与原函数值对比,明显切比雪夫节点是更优的取点方式 。
取等距点拟合的曲线如图:
取切比雪夫节点拟合的曲线如图:
#include<iostream> using namespace std; double n,x[100],y[100],l[100] ; void input() for(int i=0;i<n;i++) cin>>x[i]>>y[i]; double cau(double test) double re = 0; for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(j!=i) l[i] = l[i] * (test-x[j])/(x[i]-x[j]); re += l[i]*y[i]; return re; int main() cout<<"输入多少个点"<<endl; cin>>n; cout<<"输入插值点:"<<endl; input(); double test; cin>>test; for(int i=0;i<100;i++) l[i]=1; double re = cau(test); cout<<"result: "<<re <<endl; return 0;
等距节点:
切比雪夫节点:
总的来说,切比雪夫插值是一种特定最优的点间距选取方式,它和拉格朗日插值、牛顿差商公式相比,更能有效地避免龙格现象地出现,而且,能够更好地贴合原函数,也就是说,它的结果预测相对会更准确。
参考文献
然后,使用Eigen库计算切比雪夫节点和系数,并计算近似函数值,输出结果。可以看到,该代码实现了在[0, 1]区间内,构造一个5次切比雪夫多项式近似函数的功能。在数值计算领域中,针对某些函数,在一定区间内构造出一个连续的函数来近似表示原函数,这就是插值或近似函数问题。总的来说,使用Eigen库可以方便、高效地实现切比雪夫插值或近似函数的构造,并且可扩展性强,适用于复杂的计算问题。在C++编程中,可以使用Eigen库进行矩阵运算和解方程组,方便、高效地实现切比雪夫插值或近似函数的构造。 数值计算之 插值法(4)切比雪夫零点插值前言插值点选取第一类切比雪夫多项式拉格朗日插值多项式的余项切比雪夫零点插值后记 上篇插值法讨论了多项式插值的解,以及龙格现象。本篇将介绍一种在抽取节点时有效降低龙格现象的方法——切比雪夫零点插值。 插值点选取 插值多项式阶数较高时,在取值空间均匀取点,容易出现龙格现象。 即区间边缘的插值结果与原函数差异很大,而区间中央的插值结果相对较好。这表明,高阶多项式插值对区间中央的节点拟合好,而对两端节点拟合效果差。 自然而然会想到,在两端多采样一些节点,在中间少采样一 在区间[-1, 1]上求出f(x)的10次Lagrange插值多项式L10(x)L_{10}(x)L10(x),并且绘制图像; 在区间[-1, 1]上求出f(x)的10次一致逼近插值多项式P10(x)P_{10}(x)P10(x),并且绘制图像; 将区间[... 求解N阶切比雪夫插值多项式时其过程为: (1) 利用输入函数的静态工作点I1Q和变化范围(m , n)求出N+1个切比雪夫插值点; (2) 测量N+1个对应插值点的输出值; (3) 利用2(N+1)个数据,计算出切比雪夫插值多项式的6个系数; (4)将系数代入切比雪夫多项式,在得到输出的表达式中代入含I1的归一化公式,即可得到IB=f(I1),求I1的反函数转换自变量为t代入,即得到表达式IB=g(t) 插值是数值分析和工程中用于估计已知数据点之间的值的常用技术。它是一个强大的工具,可用于根据有限的数据量创建平滑的曲线和曲面。然而,多项式插值等传统插值方法在处理大型数据集或尝试逼近高度复杂的函数时可能会出现高错误率。Chebyshev 网格通过提供更准确和有效的数据插值方法来解决此问题。在这篇文章中,我们将解释等距网格的问题、切比雪夫网格背后的思想,并向您展示如何在 Python 中实现它们。我们还将演示如何使用 Chebyshev 网格对示例数据集进行插值并将结果与传统插值方法进行比较。 转自:http://blog..net/htttw/article/details/7251459Matlab之插值Matlab中有5种基本的插值方法:nearest:最近邻插值法(平面立体均适用)linear:线性插值法(interp1默认的插值方法)(平面立体均适用)spline:三次样条插值法(平面立体均适用)pchip:分段三次厄米多项式插值法(只适用于平面)cubic:三次多项式插值法(... 切比雪夫多项式是以递归方式定义的一系列正交多项式序列。 通常,第一类切比雪夫多项式以符号Tn表示, 第二类切比雪夫多项式用Un表示。切比雪夫多项式 Tn 或 Un 代表 n 阶多项式。 切比雪夫多项式在逼近理论中有重要的应用。这是因为第一类切比雪夫多项式的根可以用于多项式插值中。相应的插值多项式能最大限度地降低龙格现象,并且提供多项式在连续函数的最佳一致逼近。 以上都是一些切比雪夫多项 科学语言与matlab计算 实验2、3 一、实验要求二、 实验内容与步骤实验2-1 读取txt影像轨道参数实验2-2读取原始文件轨道参数实验3-1插值 存储 画图1插值2 存储3 画图实验3-2 基线长度并存储 画图1 画图2基线长度并存储三、 代码代码结构图1 term6_matlab_sy2_01.m2 term6_matlab_sy2_02.m3 term6_matlab_sy3_01.m4 term6_matlab_sy3_02.m5 term6_matlab_sy3_03.m6 savegif.m 1、对g(x)在100个切比雪夫节点之上分別使用Polynomial(Polynomial.fit)和Chebyshev(Chebyshev.fit)进行插值,在[-1,1]区间上取1000个等距点对误差进行比较。g(x)= sin(x**2) + sin(x)**2, 其中x=(x - 1) * 5。代码实现:import numpy as npfrom numpy.polynomial i...
Timothy Sauer. { Numercial Analysis}. 2014.