24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2490  |  回复: 17

leaves7777

新虫 (初入文坛)

[求助] 拉格朗日插值算法的龙格现象怎么破!多谢了!已有2人参与

目前编写VC++的MFC程序,实现将一个txt文档中的两列数据导入,然后对其进行拉格朗日插值,加密数据点再导出来。比如有两列数据:
3        5.3
4        9.1
5        5.4
......
拉格朗日插值后变成:
3        5.3
3.5     8.1375
4        9.1
4.5     8.1875
5        5.4
......
目前对于数据点比较少的情况,能够得到较好的结果,但是对于数据点多的情况(比如200个数据),
拉格朗日插值在两端边界点出会有很大的误差,求解决,数学系的高手们!
另外:如果要用切比雪夫插值点的话,具体应该怎么操作呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
leaves7777: 金币+3, ★★★很有帮助 2015-02-08 11:26:14
用高阶拉格朗日插值可能会出现震荡现象,但二阶应不会。尤其针对你的数据我看不出来有问题。这和数据点多(密)没关系,只是和插值阶数有关系。实在有问题,就用一阶线性插值来,总不会有问题。

如有问题,请把问题数据传上来看看,就事论事比较好。

切比雪夫是整体拟合,相当于谱方法。插值不太合适吧。
3楼2015-02-07 22:11:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
leaves7777: 金币+2, ★★★很有帮助 2015-02-08 11:26:24
用样条插值就行了!
善恶到头终有报,人间正道是沧桑.
4楼2015-02-07 22:19:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

引用回帖:
4楼: Originally posted by wurongjun at 2015-02-07 22:19:18
用样条插值就行了!

三阶样条需要两边边界点导数,仍然要从Lagrange公式求出
5楼2015-02-07 23:37:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

leaves7777

新虫 (初入文坛)

有劳各位了!
2楼2015-02-07 15:06:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leaves7777

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by pippi6 at 2015-02-07 22:11:29
用高阶拉格朗日插值可能会出现震荡现象,但二阶应不会。尤其针对你的数据我看不出来有问题。这和数据点多(密)没关系,只是和插值阶数有关系。实在有问题,就用一阶线性插值来,总不会有问题。

如有问题,请把问题 ...

多谢你的回答。上面列出的数据是3个点的插值,因此拉格朗日多项式是2阶的,这是对的。但是如果插值点越多,拉格朗日多项式次数越高,就会引起两边边界的数据点震荡。如果两次的话不知道能不能达到准确度的要求。
再次感谢
6楼2015-02-08 09:34:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leaves7777

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by pippi6 at 2015-02-07 22:11:29
用高阶拉格朗日插值可能会出现震荡现象,但二阶应不会。尤其针对你的数据我看不出来有问题。这和数据点多(密)没关系,只是和插值阶数有关系。实在有问题,就用一阶线性插值来,总不会有问题。

如有问题,请把问题 ...

下面的图就是我通过拉格朗日得到的拟合曲线,在两端处震荡相当的大。
附件的txt文档为插值原数据。
拉格朗日插值算法的龙格现象怎么破!多谢了!
11111.jpg

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : data_1.txt
  • 2015-02-08 09:43:05, 1.05 K
7楼2015-02-08 09:43:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

引用回帖:
6楼: Originally posted by leaves7777 at 2015-02-08 09:34:21
多谢你的回答。上面列出的数据是3个点的插值,因此拉格朗日多项式是2阶的,这是对的。但是如果插值点越多,拉格朗日多项式次数越高,就会引起两边边界的数据点震荡。如果两次的话不知道能不能达到准确度的要求。
...

不是这么说的。say,你有200个点但是仍然可以用2阶Lagrange插值,分段就可以了。如果考虑二阶导数连续性,那就使用3阶样条,像4楼建议的一样,边界点使用4阶Lagrange求出导数。没必要整体Lagrange插值,实际上也很少人这么做。形式精度(阶数)和真实准确度并不总是一致的。具体效果要看实施情况,分析太多没什么意义。
8楼2015-02-08 09:46:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leaves7777

新虫 (初入文坛)

引用回帖:
5楼: Originally posted by pippi6 at 2015-02-07 23:37:25
三阶样条需要两边边界点导数,仍然要从Lagrange公式求出...

多谢版主,请问如果我可以用低阶的拉格朗日方法去拟合几百个点的数据吗,应该怎么实现?
9楼2015-02-08 09:47:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wurongjun

专家顾问 (职业作家)

引用回帖:
5楼: Originally posted by pippi6 at 2015-02-07 23:37:25
三阶样条需要两边边界点导数,仍然要从Lagrange公式求出...

这个边界条件分很多种!
没有明确给定的话!
你可以选择非节点情况!或者自由边界情况!
善恶到头终有报,人间正道是沧桑.
10楼2015-02-08 09:50:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 leaves7777 的主题更新
信息提示
请填处理意见