数值分析15切比雪夫插值
- 格式:ppt
- 大小:922.05 KB
- 文档页数:19
插值MATLAB实现(牛顿差商插值误差龙格现象切比雪夫插值)插值是数值分析中的一种方法,通过已知数据点的函数值来估计函数在其他点的值。
MATLAB提供了多种方法来实现插值,包括牛顿差商插值、插值误差分析、龙格现象和切比雪夫插值。
下面将详细介绍这些方法的实现原理和MATLAB代码示例。
1.牛顿差商插值:牛顿差商插值是一种基于多项式插值的方法,其中差商是一个连续性的差分商。
该方法的优势在于可以快速计算多项式的系数。
以下是MATLAB代码示例:```matlabfunction [coeff] = newton_interpolation(x, y)n = length(x);F = zeros(n, n);F(:,1)=y';for j = 2:nfor i = j:nF(i,j)=(F(i,j-1)-F(i-1,j-1))/(x(i)-x(i-j+1));endendcoeff = F(n, :);end```该代码中,输入参数x和y分别表示已知数据点的x坐标和y坐标,返回值coeff表示插值多项式的系数。
2.插值误差分析:插值误差是指插值函数与原始函数之间的差异。
一般来说,通过增加插值节点的数量或使用更高次的插值多项式可以减小插值误差。
以下是MATLAB代码示例:```matlabfunction [error] = interpolation_error(x, y, x_eval)n = length(x);p = polyfit(x, y, n-1);y_eval = polyval(p, x_eval);f_eval = sin(pi*x_eval);error = abs(f_eval - y_eval);end```该代码中,输入参数x和y分别表示已知数据点的x坐标和y坐标,x_eval表示插值节点的x坐标,error表示插值误差。
3.龙格现象:龙格现象是插值多项式在等距插值节点上错误增长的现象。
实验名称:龙格反例的数值实验实验目的与要求:1、了解切比雪夫多项式零点插值;2、运用切比雪夫多项式零点插值法避免龙格现象。
3、与等距节点构造插值多项式比较。
实验内容:龙格反例的数值实验在区间[–5,5 ]上分别取11阶切比雪夫多项式的零点22)12(cos 5π+=k x k ( k = 0,1,2,……,10) 和等距节点作插值结点,计算函数211)(xx f +=在结点处的值 y k = f (x k )。
构造插值多项式L 10(x ),∑==10010)()(k k k y x l x L 其中,∏≠=--=n k j j j k j k x x x x x l 0)()()(。
取自变量点 t k = – 5 + 0.05k ( k =0,1,…,201),分别计算切比雪夫零点、等距节点插值多项式L k (x )和被插值函数f (x )在离散点t k ( k =0,1,…,201)上的值,并绘出三条曲线比较。
实验环境与器材:9#505机房、《数值分析》实验过程(步骤)或程序代码:function y=Lagrange(x,n,xx,yy)sum=0; %初始化for k=1:n+1lk=1; %初始化for i=1:n+1if k~=ilk=lk*(x-xx(i))/(xx(k)-xx(i));endendsum=lk*yy(k)+sum;endy=sum;clcclearfor i=1:11 %下标只能从1开始x1(i)=-5+10*(i-1)/10;x2(i)=5*cos((2*i-1)*pi/22);y1(i)=1/(1+x1(i)*x1(i));y2(i)=1/(1+x2(i)*x2(i)); %y1,y2分别是在两种节点处得到的函数值endh=0.05;for k=1:202x3(k)=-5+(k-1)*h;y11(k)=Lagrange(x3(k),10,x1,y1);y22(k)=Lagrange(x3(k),10,x2,y2);y(k)=1/(1+x3(k)*x3(k));%y11,y22分别为利用切比雪夫零点和等距节点构造出的插值多项式在离散点处的值endplot(x3,y11,'r');hold onplot(x3,y22,'g');hold onplot(x3,y,'b')%被插值函数在离散点处值的曲线图hold onxlabel('-5<=x<=5');ylabel('y');legend('f(x)=1/(1+x^2)','等距节点插值多项式','切比雪夫多项式零点插值多项式'); xlim([-5,5])实验结果与分析:分析:由高次插值的病态性质,我们知道次数n太高时会出现龙格现象,即L n(x)并不收敛于f(x),由上图我们也可以看到运用等距节点构造的插值多项式的确出现了龙格现象,因此并不适用。
方法一:余弦倍角公式是由余弦的幂整系数线性组合来表示倍角的余弦.这样就产生余弦的n 倍角能否用余弦的幂次的整系数线性组合表示等问题.通过研究,发现cos n α都是关于2cos α的首项系数为1的、次数等于α的倍数的、系数符号正负相间的整系数多项式,还进一步得到cos n α的一些性质.应用此性质,可以得到一些求和公式及解决许多数学问题.进一步研究,发现此多项式可以转化为切比雪夫多项式.在初等数学中,三角函数是一个十分有用的工具,余弦cos n α是众所周知的偶函数,它的倍角公式如:2cos 22cos 1αα=- ,(1)3cos34cos 3cos ααα=-. (2)它们都是由余弦cos α的幂整系数线性组合来表倍角的余弦.这样就自然产生了余弦的n 倍角能否用余弦cos α的幂次的整系数线性组合表示问题,稍作计算可以得42cos 48cos 8cos 1ααα=-+ ,(3)53cos516cos 20cos 5cos αααα=-+ .(4)观察公式(1—4),可以发现.如果公式两端同乘以2,则公式右边都是关于2cos α的首系数为1的、次数等于公式左边α的倍数的、系数符号正负相间的整系数多项式.由此猜测2cos n α也具有这一性质,下面用数学归纳法加以证明.猜想2,02cos (1)(2cos )m n m n m m n a αα-==-∑,(;n N m N +∈∈) (5)(5)式可改写为:n/312112cos (2cos )(1)(2cos )ent nmm n m n m m n n C mααα----==+-∑,(9) (9)式称为n 倍角余弦公式.12424cos 2(cos )(cos )(cos )n n n n n n n αααααα-----=-++…,其中i α为正整数.因为余弦cos α在[]0,απ∈上单调,对应值为1降到1-,即cos α[]1,1∈-,[]0,απ∈ .因此存在反函数,若令cos x α=,则arccos x α=,[]1,1x ∈-,[]0,απ∈.因此,在余弦n 倍角公式中令arccos x α=,[]0,απ∈,[]1,1x ∈-,则倍角公式为[][][]24124cos(arccos )2cos(arccos )cos(arccos )cos(arccos )nn n n n n n x x x x αα-----=-++…124242n n n n n n x x x αα-----=-++….于是cos(arccos )n x 首项系数为12n -的多项式,各项系数是整数,符号依次变化,x 的幂依次递减2次,若递减到最后,幂次为负,则该项取零.若记cos(arccos )n x =()n T x ,则()n T x 满足,12()2()()n n n T x xT x T x --=-,()n T x 称为切比雪夫多项式.从递推关系可以得到:0()1T x =,1()T x x =,22()21T x x =-,33()43T x x x =-,424()88+1T x x x =-, 535()1620+5T x x x x =-,6426()3248+181T x x x x =--.第一类切比雪夫多项式有许多良好的性质,例如:1.(cos )cos(),,n T n R n N θθθ=∈∈.(分析:令cos x θ=,arccos x θ=)2.()(1)()n n n T x T x -=-,,x C n N ∈∈.这表明()n T x 当n 为奇(偶)数时是奇(偶)函数.3.()1,,1n T x x R x ≤∈≤.4.21(0)0m T +=,2(0)(1),m m T m N =-∈. 5.函数列{}()n T x 的生成函数为21(),,112n n n xtT x t t R t xt t≥-=∈≤-+∑. (分析:生成函数又叫母函数,在数学中,某个序列的母函数是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息.使用母函数解决问题的方法称为母函数方法.母函数的思想就是把离散数列和幂级数一一对应起来,把离散数列间的相互结合关系对应成为幂级数间的运算关系,最后由幂级数形式来确定离散数列的构造.母函数是解决组合计数问题的有效工具之一,其思想方法是把组合问题的加法法则和幂级数的乘幂的相加对应起来.)6.函数列{}()n T x 满足2阶递推关系21()2()()n n n T x xT x T x ++=-,,x C n N ∈∈.(分析:由三角恒等式cos(1)cos(1)2cos cos n n n θθθθ++-=)最小偏差切比雪夫在1857年提出这样一个问题:在最高项系数为1的n 次多项式()()()01n x x x x x ω=--…()1()n n n x x x P x --=-中,寻求在区间[]1,1-上与零的偏差最小的多项式.换句话说,就是寻求[]1,1n x C ∈-在1n H -中的最佳一致逼近多项式1()n P x *-,这里{}1111()min()n n n nn n P H x P x xP x --*--∞∞∈-=-.定理 在区间[]1,1-上所有最高项系数为1的多项式中,111()())2(n n n n n x x P x x T ω**--=-=, 与零的偏差最小,其偏差为112n -.()n U x 称为第n 个第二类切比雪夫多项式,前7个第二类切比雪夫多项式为:230123()1,()2,()41,()84U x U x x U x x U x x x ===-=-,424()16121U x x x =-+,535()32326U x x x x =-+,6426()6480241U x x x x =-+-.第二类切比雪夫多项式也有许多良好的性质,例如:1.()(1)(),,n n n U x U x x C n N -=-∈∈.即当以为奇(偶)数时是奇(偶)函数. 2.21(0)0m U +=,2(0)(1)m m U =-,(1)1n U n =+,(1)(1)(1)n n U n -=-+,m N ∈. 3.函数列{}()n U x 的生成函数为2(),,112nn n U x t t R t xt t ≥=∈≤-+∑. 4.()1,,1n U x n x R x ≤+∈≤. 5.函数列{}()n U x 满足2阶递推关系21()2()(),,n n n U x xU x U x x C n N ++=-∈∈.两类切比雪夫多项式的关系定理1设()n T x 和()n U x 分别为第一类和第二类切比雪夫多项式,0n ≥为整数,则0()()nn i n i i U x T x x -==∑.证明 由两类切比雪夫多项式的定义得21),12(n n nT xt t x x t t ∞=-=-+∑ 而2211112121xt xt t xt t xt-=⨯-+-+-, 则(((())))n nnnnnn i n n n i i n n n t tUx T x x T x t x t∞∞∞∞-=======∑∑∑∑∑.比较式在子两边n t 项的系数,即有0(())nn i i n i U x T x x -==∑.4切比雪夫多项式的应用4.1切比雪夫多项式插值切比雪夫多项式在逼近理论中有重要的应用.这是因为第一类切比雪夫多项式的根(被称为切比雪夫节点)可以用于多项式插值.相应的插值多项式能最大限度地降低龙格现象,并且提供多项式在连续函数的最佳一致逼近. 切比雪夫多项式插值法:定理:设01,,x x …,n x 为区间[],a b 上1n +个互不相同的点,[]1(),n f x C a b +∈,则对任何[],x a b ∈,存在[]01,,,x n x x x ξ∈,使得拉格朗日插值余()()()n R x f x L x =-, 满足()()()(1)1(1)!n n x n R x f x n ξω+=+.其中[]{}{}[]010101,,,,min ,,,,,max ,,,,,n n n x x x x x x x x x x x x a b =⊂⎡⎤⎣⎦,()()()()()010nn n j j x x x x x x x x x ω==---=-∏.插值多项式的余项极小化:要使拉格朗日插值多项式()n L x 尽量逼近()f x ,就要使余项()n R x 尽量小.在 ()n R x 中,()f x 是固定的,而 x ξ又是未知数,所以要减小()n R x ,只有恰当选择节点集,使得在插值区间内余项的最大值为极小值.为了应用切比雪夫多项式,首先应将插值区间[],a b ,通过简单变换归一化到区间[−1,1],做变换()12k k z b a x b a =-++⎡⎤⎣⎦ 所以插值节点应取为()121cos 222k k z b a b a n π+⎡⎤=-++⎢⎥+⎣⎦. 其中0,1,2,,1k n =-,所以下面我们只需要讨论区间[−1,1]上的函数的切比雪夫插值法:当取定第一类切比雪夫点21cos,0,1,2,,22k k x k n n π+==+后,()()()()()010nn n j j x x x x x x x x x ω==---=-∏()12n n T x -+=.令()1111max n n x M f x ++-≤≤=,则有()()11max 1max(1)!2(1)!n n nn x R x M M n n ++=≤++∏,故切比雪夫插值法可以使得余项的最大值极小化,得到较佳逼近多项式.。
一、介绍MATLAB 是一款用于高级数学和工程计算的软件,切比雪夫数值积分是一种常见的数值积分方法。
本文将介绍MATLAB中切比雪夫数值积分的原理和实现方式,并结合实例进行详细讲解。
二、切比雪夫数值积分原理切比雪夫数值积分是一种通过在特定区间上拟合切比雪夫多项式来进行数值积分的方法。
其原理是利用切比雪夫多项式的性质,将被积函数在给定区间上进行插值拟合,从而计算积分值。
切比雪夫数值积分的优点在于其在一定条件下可以达到很高的精度,尤其适用于非光滑函数的数值积分。
三、MATLAB中的切比雪夫数值积分实现在MATLAB中,可以利用内置的函数chebfun来实现切比雪夫数值积分。
chebfun是一个专门用于处理切比雪夫多项式的工具包,其中包含了丰富的函数和方法,可以方便地进行数值积分。
1. 定义被积函数需要定义被积函数,并将其转换为chebfun对象。
如果要计算函数f(x)在区间[a, b]上的积分值,可以使用以下代码将f(x)转换为chebfun对象:```matlabF = chebfun((x) f(x), [a, b]);```2. 计算积分值接下来,可以使用内置的积分函数sum来计算切比雪夫数值积分的结果。
可以使用以下代码计算chebfun对象F在区间[a, b]上的积分值:```matlabI = sum(F);```这样,就可以得到函数f(x)在区间[a, b]上的切比雪夫数值积分结果I。
四、实例演示接下来,我们通过一个具体的实例来演示MATLAB中切比雪夫数值积分的实现。
假设要计算函数f(x) = sin(x) 在区间[0, π] 上的积分值。
1. 定义被积函数定义函数f(x) 并转换为chebfun对象:```matlabF = chebfun((x) sin(x), [0, pi]);```2. 计算积分值使用sum函数计算积分值:```matlabI = sum(F);```通过上述步骤,就可以得到函数f(x)在区间[0, π]上的切比雪夫数值积分结果I。
高等数值分析拉格朗日插值多项式切比雪夫高斯龙格现象复合梯形辛普森求积公式解答:1.拉格朗日插值函数:function y=lagrange (a,b,x)y=0;if length(a)==length(b)n=length(a);else disp('ERROR!length(a)!=length(b)')return;endfor i=1:nk=1;for j=1:nif j~=ik=k.*(x-a(j))/(a(i)-a(j));endendy=y+k*b(i);end2.问题(a):function Q_am=100;n=10;x=-1:2/n:1;y=1./(1+9*x.^2);x0=-1:2/m:1;y0=lagrange(x,y,x0);y1=1./(1+9*x0.^2);plot(x0,y0,'--r');hold on;plot(x0,y1,'-b');end3.问题(b):function Q_bm=100;n=10;x=zeros(1,n+1);for i=1:n+1x(i)=cos((2*i-1)*pi/(2*n+2)); endy=1./(1+9*x.^2);x0=-1:2/m:1;y0=lagrange(x,y,x0);y1=1./(1+9*x0.^2);plot(x0,y0,'--r');hold on;plot(x0,y1,'-b');end4.问题(c):main.m(m文件)figure(1)Q_a()figure(2)Q_b()syms xy=1/(1+9*x^2);I0=int(y,-1,1);%准确值n=10;x=-1:2/n:1;y=1./(1+9*x.^2);I1=trapz(x,y);%复合梯形x0=zeros(1,n);for i=1:nx0(i)=(x(i)+x(i+1))/2;endy0=2/n*1./(1+9*x0.^2);I2=I1/3+2*sum(y0)/3;%复合辛普森x1=[-0.5384693101 0.5384693101 -0.9061798459 0.9061798459 0];y1=1./(1+9*x1.^2);A=[0.4786286705 0.4786286705 0.2369268851 0.2369268851 0.5688888889]; I3=y1*A'; %高斯5总结:(1).使用等距节点构造的高次拉格朗日插值多项式在正负1附件,插值值与真实值偏差非常大,存在较大的震荡。
1 / 21数值分析实验二:插值法1 多项式插值的震荡现象1.1 问题描述考虑一个固定的区间上用插值逼近一个函数。
显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函数。
龙格(Runge )给出一个例子是极著名并富有启发性的。
设区间[-1,1]上函数21()125f x x=+ (1)考虑区间[-1,1]的一个等距划分,分点为n i nix i ,,2,1,0,21 =+-= 则拉格朗日插值多项式为201()()125nn ii iL x l x x ==+∑(2)其中的(),0,1,2,,i l x i n =是n 次拉格朗日插值基函数。
实验要求:(1) 选择不断增大的分点数目n=2, 3 …. ,画出原函数f(x)及插值多项式函数()n L x 在[-1,1]上的图像,比较并分析实验结果。
(2) 选择其他的函数,例如定义在区间[-5,5]上的函数x x g xxx h arctan )(,1)(4=+=重复上述的实验看其结果如何。
(3) 区间[a,b]上切比雪夫点的定义为 (21)cos ,1,2,,1222(1)k b a b ak x k n n π⎛⎫+--=+=+ ⎪+⎝⎭(3)以121,,n x x x +为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果,试分析2 / 21原因。
1.2 算法设计使用Matlab 函数进行实验, 在理解了插值法的基础上,根据拉格朗日插值多项式编写Matlab 脚本,其中把拉格朗日插值部分单独编写为f_lagrange.m 函数,方便调用。
1.3 实验结果1.3.1 f(x)在[-1,1]上的拉格朗日插值函数依次取n=2、3、4、5、6、7、10、15、20,画出原函数和拉格朗日插值函数的图像,如图1所示。
Matlab 脚本文件为Experiment2_1_1fx.m 。
可以看出,当n 较小时,拉格朗日多项式插值的函数图像随着次数n 的增加而更加接近于f(x),即插值效果越来越好。