当前位置: 首页 > news >正文

插值多项式的龙格现象的介绍与模拟

  在文章拉格朗日插值多项式的原理介绍及其应用中,笔者介绍了如何使用拉格朗日插值多项式来拟合任意数据点集。
  事实上,插值多项式会更倾向于某些形状。德国数学家卡尔·龙格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越大,扭动的幅度就越大,这是用计算机程序对龙格现象的一个模拟。

相关文章:

插值多项式的龙格现象的介绍与模拟

在文章拉格朗日插值多项式的原理介绍及其应用中,笔者介绍了如何使用拉格朗日插值多项式来拟合任意数据点集。   事实上,插值多项式会更倾向于某些形状。德国数学家卡尔龙格Carl Runge发现,插值多项式在差值区间的端点附近会发生扭动&#x…...

Spring整体架构包含哪些组件?

Spring是一个轻量级java开源框架。Spring是为了解决企业应用开发的复杂性而创建的,它使用基本的JavaBean来完成以前只可能由EJB完成的事情。 Spring的用途不仅限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何java应用都可以从…...

开发接口需要考虑哪些问题?

1 接口名字 user/ user/adduser/xxx 见名知意,调用接口的开发人员和后来接手的开发人员能够根据接口名称大致猜测出接口作用。 2 协议 设计接口时,应明确调用接口的协议,是采用HTTP协议,HTTPS协议还是FTP协议。比如跨语言调用通常使用WebS…...

关于Activiti7审批工作流绘画流程图(2)

文章目录一、25张表详解二、安装插件一.定制流程提示:以下是本篇文章正文内容,下面案例可供参考 一、25张表详解 虽然表很多,但是仔细观察,我们会发现Activiti 使用到的表都是 ACT_ 开头的。表名的第二部分用两个字母表明表的用…...

String.format()对日期进行格式化

前言:String.format()作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,这里根据查阅的资料做个学习笔记,整理成如下文章,供后续复习查阅。一. format()方法的两种重载形式:format(String format,…...

核酸检测信息管理系统

目录前言一、功能与需求分析二、详细设计与实现1、data包(1)DataDataBase(2)NaPaNamePassword2、operation包(1)操作接口(2)Resident用户功能(3)Simper用户功…...

典型回溯题目 - 全排列(一、二)

典型回溯题目 - 全排列(一、二) 46. 全排列 题目链接:46. 全排列状 题目大意: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 注意:(1&#xf…...

数据清洗和特征选择

数据清洗和特征选择 数据清洗和特征挖掘的工作是在灰色框中框出的部分,即“数据清洗>特征,标注数据生成>模型学习>模型应用”中的前两个步骤。 灰色框中蓝色箭头对应的是离线处理部分。主要工作是 从原始数据,如文本、图像或者应…...

java StringBuilder 和 StringBuffer 万字详解(深度讲解)

StringBuffer类介绍和溯源StringBuffer类常用构造器和常用方法StringBuffer类 VS String类(重要)二者的本质区别(含内存图解)二者的相互转化StringBuilder类介绍和溯源StringBuilder类常用构造器和常用方法String类,St…...

【Linux】帮助文档查看方法

目录1 Linux帮助文档查看方法1.1 man1.2 内建命令(help)1 Linux帮助文档查看方法 1.1 man man 是 Linux 提供的一个手册,包含了绝大部分的命令、函数使用说明。 该手册分成很多章节(section),使用 man 时可以指定不同的章节来浏…...

UEFI 实战(2) HelloWorld 之一 helloworld及.inf文件

初识UEFI 按惯例&#xff0c;首先让我们用HelloWorld跟UEFI打个招呼吧 标准application /*main.c */ #include <Uefi.h> EFI_STATUS UefiMain ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { SystemTable -> ConOut-> OutputString(SystemTab…...

向2022年度商界木兰上榜女性致敬!

目录 信息来源&#xff1a; 2022年度商界木兰名单 简介 评选标准 动态 榜单 为你心中的2023商界女神投上一票 信息来源&#xff1a; 2022年度商界木兰榜公布 华为孟晚舟获商界木兰最高分 - 脉脉 【最具影响力女性】历届商界木兰榜单 中国最具影响力的30位商界女性名单…...

ChatGPT助力校招----面试问题分享(二)

1 ChatGPT每日一题&#xff1a;DC-DC与LDO的区别 问题&#xff1a;介绍一下DC-DC与LDO的区别 ChatGPT&#xff1a;DC-DC和LDO都是电源管理电路&#xff0c;它们的主要作用是将输入电压转换为所需的输出电压&#xff0c;以供电子设备使用。但是&#xff0c;它们之间存在一些重…...

JAVA架构与开发(JAVA架构是需要考虑的几个问题)

在企业中JAVA架构师主要负责企业项目技术架构&#xff0c;企业技术战略制定&#xff0c;技术框架搭建&#xff0c;技术培训和技术攻坚的工作。 在JAVA领域&#xff0c;比较多的都是web项目。用于解决企业的数字化转型。对于JAVA架构师而言&#xff0c;平时对项目的架构主要考虑…...

vue 中 v-for 的使用

v-for 获取列表的前 n 条、中间范围、末尾 n 条的数据 list: [{ img: /static/home/news1.png, title: 标题1 },{ img: /static/home/news2.png, title: 标题2 },{ img: /static/home/news1.png, title: 标题3 },{ img: /static/home/news2.png, title: 标题4 },{ img: /stati…...

项目--基于RTSP协议的简易服务器开发(2)

一、项目创立初衷&#xff1a; 由于之前学过计算机网络的相关知识&#xff0c;了解了计算机网络的基本工作原理&#xff0c;对于主流的协议有一定的了解。但对于应用层的协议还知之甚少&#xff0c;因此我去了解了下目前主要的应用层传输协议&#xff0c;发现RTSP&#xff08;…...

ubus编译_环境搭建

文章目录一、环境搭建脚本toolChain_jsonc.cmaketoolChain_libubox.cmaketoolChain_ubus.cmakeinstall.sh二、测试出现问题&#xff1a;三、测试uloopmain.c 每5s打印信息一、环境搭建脚本 准备四个文件 install.sh,toolChain_jsonc.cmake,toolChain_libubox.cmake,toolChai…...

移动通信(16)信号检测

常见的信号检测算法一般包括以下几类检测算法&#xff1a;最优、线性和非线性。最优检测算法&#xff1a;最大似然算法线性检测算法&#xff1a;迫零检测算法和最小均方误差检测算法非线性检测算法&#xff1a;串行干扰消除检测算法球形译码检测算法属于一种次优检测算法&#…...

数据结构与算法之《顺序表》

目录 1.什么是顺序表 顺序表的优势和缺点 顺序表预备知识 顺序表的代码实现 顺序表头部插入 顺序表的销毁 顺序表的头删 顺序表的尾删 顺序表的尾插 顺序表的任意位置插入 顺序表的查找 顺序表的打印 1.什么是顺序表 这篇文章我们来讲一下基础数据结构的顺序表&…...

MySQL索引15连问,抗住!

1. 索引是什么&#xff1f;索引是一种能提高数据库查询效率的数据结构。它可以比作一本字典的目录&#xff0c;可以帮你快速找到对应的记录。索引一般存储在磁盘的文件中&#xff0c;它是占用物理空间的。正所谓水能载舟&#xff0c;也能覆舟。适当的索引能提高查询效率&#x…...

机器学习系统工程痛点解析:从数据到部署的实战避坑指南

1. 项目概述&#xff1a;机器学习系统工程的现实困境与一线洞察在过去的十年里&#xff0c;我亲眼见证了机器学习&#xff08;ML&#xff09;从一个前沿的学术研究领域&#xff0c;迅速演变为驱动各行各业数字化转型的核心引擎。从最初的算法实验到如今构建复杂的、以ML为驱动的…...

Linkey预取器:链表数据结构的高效内存访问优化

1. Linkey预取器架构解析 在计算机体系结构中&#xff0c;预取技术是提升内存访问性能的关键机制。传统预取器主要针对数组等连续内存访问模式进行优化&#xff0c;而Linkey预取器则专门为链表数据结构&#xff08;Linked Data Structures, LDS&#xff09;设计&#xff0c;通过…...

[智能体-41]:智能体识别调用外部工具:原理 + 判定手段 + Python 最简代码示例

一、核心识别逻辑大模型本身无工具调用能力&#xff0c;智能体靠三类判定手段判断是否要调工具&#xff1a;意图语义识别&#xff1a;用户问题超出模型静态知识库&#xff08;实时数据、计算、联网、硬件操作&#xff01;&#xff01;&#xff01;&#xff09;格式规则匹配&…...

NVIDIA Geforce RTX 5060 Ti显卡能本地部署的哪些AI应用?

我为你整理了NVIDIA GeForce RTX 5060 Ti显卡的核心规格&#xff0c;以及它能在本地运行的常见AI模型和应用。 &#x1f4cb; RTX 5060 Ti 核心规格速览 这张卡是NVIDIA RTX 50系列中面向主流市场的一员&#xff0c;在AI方面最大的亮点是可选16GB显存版&#xff0c;这对本地运行…...

CentOS7最小化安装后,这3个必做的配置(换源、设静态IP、更新)一个都不能少

CentOS7最小化安装后的三大关键配置实战指南刚完成CentOS 7最小化安装的系统就像毛坯房——虽然基础框架已经就位&#xff0c;但距离真正"拎包入住"还有一段距离。作为运维人员&#xff0c;我们最迫切的需求是快速搭建一个稳定、高效的基础服务器环境。本文将聚焦三个…...

3步快速上手SSDD:合成孔径雷达舰船检测终极指南

3步快速上手SSDD&#xff1a;合成孔径雷达舰船检测终极指南 【免费下载链接】Official-SSDD SAR Ship Detection Dataset (SSDD): Official Release and Comprehensive Data Analysis 项目地址: https://gitcode.com/gh_mirrors/of/Official-SSDD SSDD&#xff08;SAR S…...

ARM嵌入式C#开发实战:基于SkiaSharp的低延迟GUI实现

1. 这不是玩具&#xff0c;是ARM嵌入式系统能力的“压力测试仪”很多人第一次听说“在ARM开发板上跑C#游戏”&#xff0c;第一反应是&#xff1a;这能行&#xff1f;C#不是Windows桌面和服务器的语言吗&#xff1f;Mono&#xff1f;.NET Core&#xff1f;ARM板子连图形驱动都配…...

QMCDecode:基于Swift的QQ音乐加密格式解析与转换方案

QMCDecode&#xff1a;基于Swift的QQ音乐加密格式解析与转换方案 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转…...

NRF52832实战:从SYSTEM_ON到SYSTEM_OFF,手把手教你配置蓝牙低功耗(附代码避坑)

NRF52832低功耗实战&#xff1a;从代码优化到硬件调校的全链路指南 在嵌入式蓝牙产品开发中&#xff0c;低功耗设计往往是决定产品成败的关键因素。NRF52832作为Nordic Semiconductor的经典蓝牙低功耗(BLE)解决方案&#xff0c;其灵活的低功耗模式配置既带来了无限可能&#x…...

RAG大模型落地必杀技:解决幻觉、私有数据三大痛点,提升回答可信度!

本文深入解析了检索增强生成&#xff08;RAG&#xff09;技术&#xff0c;旨在解决大模型应用中的知识过时、幻觉和私有数据使用难题。文章详细阐述了RAG的三大核心模块——知识库、检索和生成&#xff0c;并系统讲解了索引、检索、生成的具体实施流程和优化策略。此外&#xf…...