很难用多项式近似的连续函数的示例


16

出于教学目的,我需要单个变量的连续函数,该函数对于多项式近似是“困难的”,即一个幂级数需要非常高的幂才能很好地“拟合”该函数。我打算向我的学生展示幂级数可以达到的“极限”。

我曾想过炮制一些“嘈杂”的东西,但是我没有想自己动手做,而是想知道人们是否使用一种标准的“难函数”来测试逼近/插值算法,这与那些具有众多功能的优化测试函数有些相似天真算法容易卡住的局部最小值。

道歉,如果这个问题的格式不正确;请怜悯非数学家。

Answers:


14

为什么不简单地显示绝对值函数?

例如,使用Legendre多项式展开式近似,但是非常糟糕

多项式对绝对值函数的顺序逼近

泰勒展开式在这里当然是完全没用的,总是只给出线性函数,或者总是减小或总是增大(取决于展开的点是负还是正)。


您可以内插| x | 使用Chebyshev插值法,请参见nbviewer.jupyter.org/github/cpraveen/na/blob/master/…,收敛速度非常快。例如,您可以将代码中的N = 2 * i更改为N = 15 + i,然后进行更大程度的测试。它不是扩展方法,但仍基于多项式。
cfdlab

@PraveenChandrashekar Chebyshev的工作“更好”,因为它将更多的权重放在间隔的外部,该部分的功能很平滑。这样就避免了过度的振荡,但是说它更好地逼近函数却是可疑的–特别是它确实捕获了处的急转弯,甚至比均匀离散点或L 2最小化还差。如果您的目标是避免使用高频分量,则最好使用积分变换来适当衰减这些分量。X=0大号2
大约

像切比雪夫插值法中那样具有非均匀点是非常好的。大约20度时,它比您在帖子中显示的Legendre准确得多。测量误差,使其更加定量。您还可以对| x |进行Chebyshev级数逼近 比Legendre扩展更准确。
cfdlab

@PraveenChandrashekar的一点是,多项式原则上无法接近的功能等正确地。有不同的方法,每种方法都或多或少地导致了某种程度的失败,但是在“只有几个术语给出了可能会误认为原始功能的含义”的意义上,它们都不奏效。如果必须使用多项式,则需要考虑哪种错误更成问题,Legendre和Chebyshev都有用例,但没有灵丹妙药。最终,采用样条曲线的方法通常更为有效。X|X|
左右约

我们知道没有完美的方法。问题是多项式难以近似哪些函数。因此,必须看到涉及多项式的所有可能方法,才能得出结论,它们均无能为力。Legendre不是逼近| x |的最佳方法。因此,给人一种相当错误的印象,即多项式对于| x |来说太糟糕了。使用Chebyshev时,您具有收敛性和比Legendre更好的逼近度,它们的振荡不会像Legendre那样严重,尽管在x = 0附近缓慢收敛,此时函数不够平滑。
cfdlab

10

这是一个病理案例,但您始终可以诉诸Weierstrass怪兽函数。它说明了一个较宽泛的观点,即不平滑的函数(例如具有扭结的函数)难以近似,因为内插误差估计要求对内插函数进行多次微分。换句话说,如果您不太喜欢Weierstrass函数,则始终可以选择|X|


谢谢,这正是我“我想到了'嘈杂的东西'”的意思。IMO的很好的例子。
Laryx Decidua

6

不仅要近似的函数使近似变得困难,而且近似应该是“良好拟合”的间隔也使近似变得困难。您应该定义“良好拟合”的量度,即您希望容许的最大(绝对或相对)误差是多少?

经验值X[010]X[02π]在此处输入图片说明在此处输入图片说明


我在课程中展示了这些示例,以说明泰勒展开式不是逼近函数的好方法。
cfdlab

6

多项式在函数逼近方面出奇地有效[1]。如果您至少具有Lipschitz连续性,则Chebyshev逼近将收敛。当然,收敛可能很慢,这就是我们为处理不平滑功能而付出的代价。

如今,计算机的速度远远超过撰写许多数值分析书籍的时代,并且聪明的算法进一步提高了速度,因此必须使用更多的术语可能不会像以前那样糟糕。

从理论的角度来看,诸如Weierstrass怪兽函数之类的病理示例很有趣,但它们并不代表大多数实际应用程序上下文。

|X|X=0

教授多项式逼近的困难很重要,但告诉学生我们可以建立能够解决这些问题的误差估计和自适应算法也很重要。

[1] https://people.maths.ox.ac.uk/trefethen/mythspaper.pdf

[2] http://www.chebfun.org


+1链接了有关IMO主题的很好的调查Lloyd Trefethen的“神话论文”,谢谢。
Laryx Decidua

2

FX=1个X2+1个

1个X2+1个=1个-X2+X4-X6+X8-X10+X12-

-1个<X<1个X=0X=2


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.