matlab展示龙格现象

news/2025/1/17 21:46:10/

在这里插入图片描述

为了展示龙格现象,它使用拉格朗日插值多项式,展示了随着插值点数目的增加,插值多项式在区间端点附近震荡的现象。

重新编写的 MATLAB 代码:

matlab">% 定义目标函数
f = @(x) 1 ./ (1 +  x.^2);% 设置插值区间
x_interval = [-5, 5];  % 插值区间
x_fine = linspace(x_interval(1), x_interval(2), 1000);  % 用于绘制精细图像的点% 生成插值的真实值
y_fine = f(x_fine);% 设置不同的插值节点数目
node_counts = [5, 8, 12];% 绘制真实函数图像
figure;
hold on;
plot(x_fine, y_fine, 'k', 'LineWidth', 2);  % 真实函数colors = {'r', 'g', 'b'};  % 插值结果的颜色% 对不同的节点数目进行插值并绘制
for k = 1:length(node_counts)% 生成均匀分布的插值节点x_nodes = linspace(x_interval(1), x_interval(2), node_counts(k));y_nodes = f(x_nodes);% 拉格朗日插值y_interp = lagrange_interpolation(x_nodes, y_nodes, x_fine);% 绘制插值结果plot(x_fine, y_interp, 'Color', colors{k}, 'LineWidth', 1.5);
end% 添加标签和图例
legend('真实函数', '5节点插值', '8节点插值', '12节点插值');
title('龙格现象示例');
xlabel('x');
ylabel('f(x)');
grid on;
hold off;% 
function y_interp = lagrange_interpolation(x_nodes, y_nodes, x_interp)n = length(x_nodes);
xi=x_interp;
y_interp=zeros(size(xi)); 
for i = 1:nL = ones(size(xi));%注意L的位置for j = 1:nif i ~= jL= L.* (xi - x_nodes(j)) / (x_nodes(i) - x_nodes(j));endendy_interp =y_interp + y_nodes(i)*L;
end
end
% 拉格朗日插值函数
% function y_interp = lagrange_interpolation(x_nodes, y_nodes, x_interp)
%     n = length(x_nodes);
%     y_interp = zeros(size(x_interp));
%     
%     for i = 1:n
%         L = ones(size(x_interp));  % 初始化L为1
%         for j = 1:n
%             if j ~= i
%                 L = L .* (x_interp - x_nodes(j)) / (x_nodes(i) - x_nodes(j));
%             end
%         end
%         y_interp = y_interp + y_nodes(i) * L;
%     end
% end

取五个点,八个点,十二个点如图:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

分段插值多项式

我们通过对拉格朗日插值和牛顿插值多项式分析发现,当插值次数增高时会发生龙格现象,因此我们用分段插值多项式,尽管分段插值多项式再精度上有所提高,并且回避了龙格现象,但是它也带来了新的问题,就是在整个区间上不可导。


http://www.ppmy.cn/news/1563980.html

相关文章

ospf收敛特性及其他的小特性

1. 收敛特性 快速收敛:   只第一次计算时计算全部节点Full SPF   增量最短路径优先算法I-SPF(Incremental)    只对受影响的节点进行路由计算   全部路由计算PRC    只对发生变化的路由进行重新计算;    根据I-SPF 算出来的SPT …

8Hive SQL底层执行原理

8Hive SQL底层执行原理 1Hive 底层执行架构2Hive SQL 编译成 MapReduce 过程阶段一:词法、语法解析阶段二:语义解析阶段三:生成逻辑执行计划阶段四:优化逻辑执行计划阶段五:生成物理执行计划阶段六:优化物理…

国产编辑器EverEdit - 一个优秀的文本编辑器该有的删除功能

1 删除功能详解 1.1 概述 本文对EverEdit的删除功能进行介绍,用好这些小技巧,对办公效率会有较大的提高。 1.2 删除功能介绍 1.2.1 普通删除 1.2.1.1 前向删除 按退格键,删除光标前面的字符或选中的内容。 1.2.1.2 后向删除 按Del键&am…

设计模式03:行为型设计模式之策略模式的使用情景及其基础Demo

1.策略模式 好处:动态切换算法或行为场景:实现同一功能用到不同的算法时和简单工厂对比:简单工厂是通过参数创建对象,调用同一个方法(实现细节不同);策略模式是上下文切换对象,调用…

网络科技有限公司网络设计

网络科技有限公司网络设计 摘要:伴随着信息科技发展,上网变得一件必不可少的事情,当然网络安全对我们也是越来越重要。像我们的传统网结构是无法为我们的上网提供一个安全的网络环境。锐雯网络科技有限公司就是以网络安全为基本的对网络惊醒…

服务器证书、数字证书和加解密算法

背景: 项目上需要对接外部银行,涉及到服务器、数字证书、加解密算法等方面的内容,结合开发经历,做一个总结分享。 整体流程可以概括为:依次搞定服务器证书、企业证书,申请加解密的密钥,按照报…

Python猜数小游戏

Python 实现的《猜数游戏》 介绍 本文将展示如何使用 Python 编写一个简单的《猜数游戏》。这个游戏将会生成一个1到10之间的随机数,用户有最多三次机会来猜测正确的数字。如果用户猜对了,游戏将结束并显示恭喜信息;如果没有猜对&#xff0…

C++并发编程之异常安全性增强

在并发编程中,异常安全是一个非常重要的方面,因为并发环境下的错误处理比单线程环境更加复杂。当多个线程同时执行时,异常不仅可能影响当前线程,还可能影响其他线程和整个程序的稳定性。以下是一些增强并发程序异常安全性的方法&a…