插值多项式的龙格现象的介绍与模拟
创始人
2024-05-30 20:04:07
0

  在文章拉格朗日插值多项式的原理介绍及其应用中,笔者介绍了如何使用拉格朗日插值多项式来拟合任意数据点集。
  事实上,插值多项式会更倾向于某些形状。德国数学家卡尔·龙格Carl Runge发现,插值多项式在差值区间的端点附近会发生扭动,且波动较大。这就是数值分析中著名的龙格现象(Runge Phenomenon)。
  本文以函数f(x)=11+12x2f(x)=\frac{1}{1+12x^{2}}f(x)=1+12x21​和区间[-1,1]为例,在该区间上平均取n个点(包括端点),在函数图像上得到n个样本点,对这些样本点使用拉格朗日插值多项式,并绘制该插值多项式的图像,观察其在端点附近的表现。
  Python实现程序如下:

# -*- coding: utf-8 -*-
# @Time : 2023/3/8 18:55
# @Author : Jclian91
# @File : runge_phenomenon.py
# @Place : Xuhui, Shanghai
import matplotlib.pyplot as plt# sample function
# 函数f(x)=1/(1+12*x**2)
def sample_func(x):return 1 / (1 + 12 * x ** 2)# get sample points from sample function with interval [-1, 1]
def get_sample_points(n):# n: number of sample pointsstep = 2 / (n-1)x_values = [-1 + i * step for i in range(n)]y_values = [sample_func(x) for x in x_values]return x_values, y_values# get basic lagrange polynomial unit
def get_lagrange_polynomial_unit(x_values, k, x):# x_values: values of x in list x_values# k: kth lagrange polynomial unit# x: variable in kth lagrange polynomial unitpoly_unit = 1for i in range(len(x_values)):if i != k:poly_unit *= (x-x_values[i])/(x_values[k]-x_values[i])return poly_unit# get lagrange polynomial
def get_lagrange_polynomial(x_values, y_values, x):poly = 0for i, y in enumerate(y_values):poly += y * get_lagrange_polynomial_unit(x_values, i, x)return poly# plot curves with matplotlib
def plot_function(n):# plot lagrange polynomial with n sample points from sample functionsample_x_values, sample_y_values = get_sample_points(n)sample_points_number = 500x_list = [-1 + i * 2 / (sample_points_number-1) for i in range(sample_points_number)]original_y_list = [sample_func(x) for x in x_list]y_list = [get_lagrange_polynomial(sample_x_values, sample_y_values, x)for x in x_list]plt.plot(x_list, original_y_list, label='f(x)=1/(1+12*x**2)')plt.plot(x_list, y_list, label='lagrange polynomial')plt.title(f'Runge phenomenon with {n} basic points in function f(x)=1/(1+12*x**2)')plt.legend()# plt.show()plt.savefig(f"{n}_basic_points.png")if __name__ == '__main__':n_points = 5plot_function(n_points)

当n=5时,拉格朗日插值多项式的图像如下:

当n=15,拉格朗日插值多项式的图像如下:

当n=25时,拉格朗日插值多项式的图像如下:

当n=35时,拉格朗日插值多项式的图像如下:

当n=45时,拉格朗日插值多项式的图像如下:

通过上述程序的模拟结果,我们可以发现该插值多项式在区间端点附近会发生扭动,当n越大,扭动的幅度就越大,这是用计算机程序对龙格现象的一个模拟。

相关内容

热门资讯

运动会加油稿致800米运动员 运动会加油稿致800米运动员  在发展不断提速的社会中,接触并使用加油稿的人越来越多,适当使用加油稿...
小学优秀教师代表开学典礼发言... 导语:我们满怀着喜悦的心情、带着美好的憧憬,结束了假期迎来了新的一学期。在这新的一年里,每一个人都有...
小学音乐《草原就是我的家》说... 小学音乐《草原就是我的家》说课稿范文3篇  作为一名无私奉献的老师,就有可能用到说课稿,借助说课稿可...
高中美术《头像作画》优秀说课... 高中美术《头像作画》优秀说课稿  各位评委、各位老师:  大家好!  今天我说课的课题是头像作画步骤...
《荷叶圆圆》说课稿 《荷叶圆圆》说课稿(精选10篇)  作为一位不辞辛劳的人民教师,就有可能用到说课稿,说课稿有助于顺利...
商的近似值数学说课稿 商的近似值数学说课稿  作为一名辛苦耕耘的教育工作者,时常会需要准备好说课稿,说课稿有助于教学取得成...
家长座谈会班主任发言稿 家长座谈会班主任发言稿家长座谈会班主任发言稿各位家长:晚上好!首先作为孩子们的老师,我要感谢你们能在...
《给长辈写信》习作评改课说课... 《给长辈写信》习作评改课说课稿  我今天说课的内容是第十册语文第八单元习作《给长辈写信》的第二课时:...
校运动会加油稿 校运动会加油稿200字(精选10篇)  在现在的社会生活中,越来越多地方需要用到加油稿,加油稿是一种...
宣传稿件格式及 宣传稿件格式及范文  一、标题  一般居中书写,由文种名单独组成,即“宣传稿”三个字。标题也可以写成...
高中生家长会的发言稿 高中生家长会的发言稿(精选5篇)  在当今社会生活中,用到发言稿的地方越来越多,发言稿具有逻辑严密,...
单色版画的说课稿 单色版画的说课稿模板各位评委、老师:  大家好!我是范坤宇。今天我说课的题目是《单色版画》,出自义务...
青春励志诗歌朗诵稿 青春励志诗歌朗诵稿  朗诵技巧  首先要避免"矫揉造作"。诗歌朗诵和其他文体的朗诵一样,要自然,决不...
大班语言活动说课稿 大班语言活动说课稿  作为一位无私奉献的人民教师,时常会需要准备好说课稿,编写说课稿是提高业务素质的...
开学典礼上安全讲话稿 开学典礼上安全讲话稿  经过了一个平安、愉快、祥和的暑假,我们满怀着新的希望迎来了生机勃勃的新学期,...
致运动员简短加油稿 致运动员简短加油稿四篇  人类的力量在那一刹那展现,拚搏在那一瞬间化为生命的起点,在那一刻万物化为虚...
培训班开班讲话稿 培训班开班讲话稿(通用19篇)  在充满活力,日益开放的今天,越来越多地方需要用到讲话稿,讲话稿是人...
初三家长会讲话稿 初三家长会讲话稿13篇  在当今社会生活中,我们都跟讲话稿有着直接或间接的联系,讲话稿是领导人在开会...
声是什么说课稿 声是什么说课稿范文  一、教材分析  (一)本课在教材中的地位、作用和意义  本课内容是八年级物理《...
新闻稿格式   新闻稿格式是怎么样的呢?大家可以通过以下新闻稿特写的特点、新闻特写的种类、新闻特写的写作来进行了...