感悟网 导航

如何利用matlab解决插值拟合中的龙格现象

作者&投稿:犁光 (若有异议请与网页底部的电邮联系)
如何利用matlab解决插值拟合中的龙格现象~

解决龙格现象




1


避免龙格现象的方法

为避免出现龙格现象,我们对拉格朗日插值基函数的插值节点做一个调整。采用切比雪夫零点插值。这样就可以避免出现龙格现象。




2


编制切比雪夫零点的拉格朗日插值函数

本次编程,只需在上面的程序做局部修改,将等距节点替换为切比雪夫零点作为插值节点。其他基本不变。






3



运行修改后程序

在运行修改后的程序之前记得要先保存哦!

运行方法和上面讲的一样,本次就选用快捷方法,即直接按绿色箭头。


4



运行结果:没出现龙格现象

运行后的图像,在高次插值中,插值区间的边界区域,插值函数没有很大的偏离原函数,从后面运行的结果可以看出没有在出现龙格现象。在本次插值中,使用切比雪夫零点替换了原先的等距节点,避免了龙格现象的出现。

样条插值应该能很好的解决问题才对
为什么不行呢
你把数据和代码发上来看看

龙格现象

1
启动matlab编程窗口
启动matlab,新建一个m程序文件。
具体操作:File → New → Script (如第一幅图)
第二幅图为编写程序代码的m文件窗口

2
编制插值函数的程序
编写插值程序代码,插值次数分别为2、4、6、8、10、12,原函数为f(x)=1/(1+25*x^2)。采用的是拉格朗日插值法,插值区间为[-1,1],插值节点为等距节点。

3
运行程序
选择变成窗口的菜单:Debug → Run Untitled3 运行程序。
运行程序也可以使用快捷按钮(绿色箭头按钮),如图二。

4
插值结果
按照上一步运行程序,即可得到原函数与插值函数的图像,如图。

5
龙格现象
从第四步的插值结果可以看出,在拉格朗日基函数的高次插值中,在插值区间的边界部分插值函数会出现很大波动,明显偏离原函数,所以拉格朗日插值次数不宜过高。
我们把高次插值边界出现这种波动的现象叫做龙格现象,龙格现象说明插值不准确,在实际中要尽量避免

解决龙格现象

1
避免龙格现象的方法
为避免出现龙格现象,我们对拉格朗日插值基函数的插值节点做一个调整。采用切比雪夫零点插值。这样就可以避免出现龙格现象。
2
编制切比雪夫零点的拉格朗日插值函数
本次编程,只需在上面的程序做局部修改,将等距节点替换为切比雪夫零点作为插值节点。其他基本不变。

3
运行修改后程序
在运行修改后的程序之前记得要先保存哦!
运行方法和上面讲的一样,本次就选用快捷方法,即直接按绿色箭头。

4
运行结果:没出现龙格现象
运行后的图像,在高次插值中,插值区间的边界区域,插值函数没有很大的偏离原函数,从后面运行的结果可以看出没有在出现龙格现象。在本次插值中,使用切比雪夫零点替换了原先的等距节点,避免了龙格现象的出现。

《如何利用matlab解决插值拟合中的龙格现象》
答:选择变成窗口的菜单:Debug → Run Untitled3 运行程序。运行程序也可以使用快捷按钮(绿色箭头按钮),如图二。4 插值结果 按照上一步运行程序,即可得到原函数与插值函数的图像,如图。5 龙格现象 从第四步的插值结果可以看出,在拉格朗日基函数的高次插值中,在插值区间的边界部分插值函数会出现很大波动...

《matlab曲线拟合和曲线插值问题》
答:先输入x=[1 1.5 ...];y=[-1.4 2.7 ...];p=polyfit(x,y,2);%二次多项式 p=polyfit(x,y,3);%三次多项式 ...p=polyfit(x,y,10);%十次多项式 其中p是一个行向量,p(1)储存最高次幂的多项式系数,知道最后一个储存常数项 例如 p=polyfit(x,y,2);就返回长度为3的p,代表多...

《如何利用matlab解决插值拟合中的龙格现象》
答:1 避免龙格现象的方法 为避免出现龙格现象,我们对拉格朗日插值基函数的插值节点做一个调整。采用切比雪夫零点插值。这样就可以避免出现龙格现象。2 编制切比雪夫零点的拉格朗日插值函数 本次编程,只需在上面的程序做局部修改,将等距节点替换为切比雪夫零点作为插值节点。其他基本不变。3 运行修改后程序 在...

《matlab样条拟合插值后获得曲线方程》
答:这个分段函数的定义域为2~3,如果你要算2.5的插值,只要把他代入这个函数,就得到了这个多项式即可,当然用matlab只要输入命令ppval(p,2.5)就可以了

《在Matlab中如何数据拟合函数?》
答:在Matlab中进行数据拟合,可以使用 fit 函数。该函数可以用来生成拟合模型,对数据进行拟合,并返回拟合模型对象。下面是一个简单的数据拟合的例子:假设我们有一组数据,x 和 y 分别表示自变量和因变量:x = [1 2 3 4 5];y = [3 5 7 9 11];现在我们想拟合一个一次函数,即 y = a*x + ...

《matlab 怎样实现拉格朗日插值拟合??》
答:if m~=n,error('向量x与y的长度必须一致');ends=0;for i=1:nz=ones(1,length(xi));for j=1:nif j~=iz=z .*(xi-x(j))/(x(i)-x(j));endends=s+z*y(i);endyy=s;上面是拉格朗日插值法,其中xi为要计算的数值比如 x=[0 3 5 9 31];y=[2 7 10 12 15];xi=[1 4 ...

《matlab 三次样条插值法拟合三次多项式》
答:1、m次多项式插值法:利用Matlab里的命令:a = spline(x,y,xx)其中,x,y为给定点的矩阵,矩阵 a 为矩阵xx所有点对应的拟合值矩 阵。2、m次拟合法:a = polyfit(x,y,m)其中,x,y为给定点的矩阵,前者为自变量矩阵,后者为因变量矩阵。m为多项式的次数, a为拟合出来的m次多项式的...

《matlab r2012b插值拟合问题》
答:x = (1:7);y = [12,9,9,10,18,24,28];xi = 0:0.25:8;% [b,bint,r,rint,stats]= regress(y,x);n=3;p=polyfit(x,y,n);z=polyval(p,xi); %多项式拟合zi=interp1(x,y,xi,'spline'); %三次样条插值subplot(2,2,1);plot(y,'x');title('初始值');subplot(2,2...

《matlab高手进! 插值与拟合》
答:x=[0 1 2 3 4 5 6 7 8 9];y=[-2.86,-2.09,-2.26,-1.09,0.75,1.80,1.56,0.40,1.63,2.15];xi=linspace(0,9,20);yi=interp1(x,y,xi,'linear');yii=interp1(x,y,xi,'spline');plot(x,y,'o',xi,yi,'-');hold on;plot(xi,yii,'r');hold on;yt=...

《如何用matlab数据拟合函数》
答:1、首先启动matlab,选择编辑器,再新建一个命令文件。2、然后在编辑器窗口中输入图示的代码。3、然后我们点击界面上方菜单栏里的保存图标进行保存。4、需要注意的是,保存文件的位置要与当前搜索路径的位置保持一致。这可以通过右键编辑窗口的文件,在弹出的下拉框中选择。5、最后再命令行窗口处输入dxsnh...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网