计算方法实验(一):拉格朗日插值多项式

article/2025/9/21 21:35:48

拉格朗日插值数学原理

给定平面上 n + 1 n + 1 n+1个不同的数据点 ( x k , f ( x k ) ) (x_{k},f(x_{k})) (xk,f(xk)) k = 0 , 1 , ⋯ , n k = 0,1,\cdots,n k=0,1,,n x i ≠ x j x_{i} \neq x_{j} xi=xj i ≠ j i \neq j i=j;则满足条件

P n ( x k ) = f ( x k ) , k = 0 , 1 , ⋯ , n P_{n}\left( x_{k} \right) = f\left( x_{k} \right),\ \ k = 0,1,\cdots,n Pn(xk)=f(xk),  k=0,1,,n

n n n次拉格朗日插值多项式

P n ( x ) = ∑ k = 0 n f ( x k ) l k ( x ) P_{n}(x) = \sum_{k = 0}^{n}{f(x_{k})}l_{k}(x) Pn(x)=k=0nf(xk)lk(x)

是存在唯一的。若 x k ∈ [ a , b ] , k = 0 , 1 , ⋯ , n x_{k} \in \lbrack a,b\rbrack,k = 0,1,\cdots,n xk[a,b],k=0,1,,n,且函数 f ( x ) f(x) f(x)充分光滑,则当 x ∈ [ a , b ] x \in \lbrack a,b\rbrack x[a,b]时,有误差估计式

f ( x ) − P n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n ) , ξ ∈ [ a , b ] f\left( x \right) - P_{n}\left( x \right) = \frac{f^{\left( n + 1 \right)}\left( \xi \right)}{\left( n + 1 \right)!}\left( x - x_{0} \right)\left( x - x_{1} \right)\cdots\left( x - x_{n} \right),\ \ \xi \in \lbrack a,b\rbrack f(x)Pn(x)=(n+1)!f(n+1)(ξ)(xx0)(xx1)(xxn),  ξ[a,b]

程序设计

核心代码

    double x, y = 0.0;scanf("%lf", &x);double a[N + 1], b[N + 1];int n = 0;while (scanf("%lf%lf", &a[n], &b[n]) >= 2) n++;n--;for (int k = 0; k <= n; k++) {double l = 1.0;for (int j = 0; j <= n; j++) {if (j != k) l *= (x - a[j]) / (a[k] - a[j]);}y += l * b[k];}printf("x = %.3lf\ny = %.3lf", x, y);
  • 多个n多个x测试时怎么办呢?

作为真正的程序员!一定要会设计框架!!!!!!!

so 我设计了这么一个Lagrange测试框架 只要修改参数即可!!!!

框架示例

可以修改:

  • n的数量
  • x的数量
  • 最大的n值
  • 若干n的值
  • 若干x的值
  • 左右区间值
  • 插值点取值方法X()
  • y计算方法Y()
#include <cmath>
#include <cstdio>
#define N1 3   // n amount
#define N2 4   // x amount
#define N3 20  // n maxint Ns[N1] = {5, 10, 20};
double x[N2] = {-0.95, -0.05, 0.05, 0.95};
double l = -1.0;
double r = 1.0;double X(int k, int n) {double h = (r - l) / n;return l + k * h;
}double Y(double x) { return 1 / (1 + x * x); }int main() {for (int i = 0; i < N2; i++) printf("\tx=%.2lf", x[i]);printf("\n");for (int i = 0; i < N1; i++) {double a[N3 + 1], b[N3 + 1];int n = Ns[i];for (int k = 0; k <= n; k++) {a[k] = X(k, n);  // xb[k] = Y(a[k]);  // y}printf("n=%d", n);for (int p = 0; p < N2; p++) {double y = 0.0;for (int k = 0; k <= n; k++) {double l = 1.0;for (int j = 0; j <= n; j++) {if (j != k) l *= (x[p] - a[j]) / (a[k] - a[j]);}y += l * b[k];}printf("\t%.6lf", y);}printf("\n");}printf("Actual");for (int p = 0; p < N2; p++) printf("\t%.6lf", Y(x[p]));return 0;
}

输出
x=0.75 x=1.75 x=2.75 x=3.75 x=4.75
n=5 0.528974 0.373325 0.153733 -0.025954 -0.015738
n=10 0.678990 0.190580 0.215592 -0.231462 1.923631
n=20 0.636755 0.238446 0.080660 -0.447052 -39.952449
Actual 0.640000 0.246154 0.116788 0.066390 0.042440

还没完!!!!!!得出的数据直接复制到Word里,全选+点击“转换文本为表格”即可立刻变成表格!!!!!

  • 逗号分隔,导出.csv文件,用excel打开复制……那也行???

详细报告

在这里插入图片描述


http://chatgpt.dhexx.cn/article/QMIC5nMQ.shtml

相关文章

拉格朗日插值多项式在MATLAB中的实现

拉格朗日插值多项式在MATLAB中的实现 Hi! 这是我的一个CSDN博客 例 以下给出了针对题&#xff08;2&#xff09;的使用方法 输入&#xff1a; 1.节点值 2.需要插值的原函数 对于题&#xff08;2&#xff09;需要设置参数为&#xff1a; xx [0,0.25,0.5,1];% The nodes(n…

lagrange插值法:求拉格朗日插值多项式matlab实现(内附代码及例题)

lagrange插值法:求拉格朗日插值多项式matlab实现(内附代码及例题) 关于拉格朗日插值法相关理论知识&#xff0c;在这里小编不在赘述&#xff0c;请不明白的小伙伴自行百度。小编只负责给出matlab源码。 **例题:**看下面例题(如图): matlab代码: %%%% 求拉格朗日多项式及基函…

拉格朗日插值算法分析

这几天一直研究拉格朗日多项式&#xff0c;今天将自己对拉格朗日多项式的理解写在这里&#xff0c;方便大家交流。 在数值分析中&#xff0c;拉格朗日常用于多项式插值。假定提供一组数据点[xi,yi]&#xff0c;拉格朗日插值多项式就是由这些 数据的线性运算得到的。 其中基本…

拉格朗日(Lagrange)插值多项式

题目&#xff1a; 基本原理&#xff1a; 拉格朗日&#xff08;Lagrange&#xff09;插值多项式python实现&#xff1a; # encoding: utf-8 from symtable import Symbol X[0.4,0.5,0.6,0.7,0.8] Y[-0.9163,-0.6931,-0.5108,-0.3567,-0.2231] print(X,Y) Lfloat(0.0) x0.54 len…

使用拉格朗日多项式(Lagrangian polynomials)的插值法(python,数值积分)

第三十五篇 拉格朗日多项式插值 插值多项式 首先考虑一个函数的推导&#xff0c;该函数精准地通过一系列np离散数据点。虽然有无限多的函数具备这个条件&#xff0c;但我们将专注于最简单的一个&#xff0c;一个n阶多项式&#xff0c;其中n np−1。我们称这个函数为“插值多…

三点估算法 PERT计划评审技术

三点估算也称PERT法&#xff0c;在计算每项活动的工期时都要考虑三种可能性&#xff0c;计算最悲观的工 期、最可能的工期、最乐观的工期&#xff0c;然后再计算出该活动的期望工期&#xff0c;PERT法计算的是 期望工期. 用PERT法计算工期&#xff0c;我们必须记住下面三个公…

计划评审技术PERT和关键路径法CP

PERT是利用网络分析制定计划以及对计划予以评价的技术。它能协调整个计划的各道工序&#xff0c;合理安排人力、物力、时间和资金&#xff0c;加速计划的完成。PERT网络是一种类似流程圈的箭线圈。它描绘出项目包含的各种活动的先后次序&#xff0c;标明每项活动的时间或相关的…

PERT(计划评审技术,Program Evaluation an Review Technique)

如果你对项目管理、系统架构有兴趣&#xff0c;请加微信订阅号“softjg”&#xff0c;加入这个PM、架构师的大家庭 PERT(计划评审技术&#xff0c;Program Evaluation an Review Technique) 的理论基础是假设项目持续时间以及整个项目完成时间是随机的&#xff0c;且服从某种概…

PERT网络分析法(计划评估和审查技术)

PERT网络分析法(计划评估和审查技术&#xff0c;Program Evaluation and Review Technique 什么是PERT网络分析? PERT(Program Evaluation and Review Technique)即计划评审技术&#xff0c;最早是由美国海军在计划和控制北极星导弹的研制时发展起来的。PERT技术使原先估计的、…

对项目工时的估算----( PERT “计划评审技术” ) 三点估算法

“三点估算法”也称“PERT”法&#xff0c;在计算每项活动的工期时都要考虑三种可能性&#xff1a;计算最悲观的工期、最可能的工期、最乐观的工期&#xff0c;然后再计算出该活动的期望工期&#xff0c;PERT法计算的是期望工期。 用PERT法计算工期&#xff0c;我们必须记住下面…

技术评审

在工作中&#xff0c;我们经常可以听到以下的声音&#xff1a; “我们不进行评审&#xff0c;是因为我们项目比较特殊&#xff0c;没有时间……”。 “我们的项目已经进行了测试&#xff0c;不需要再进行评审了”。 “评审都是在走过场&#xff0c;没有效果……”。 业界公认评…

CMMI-技术评审管理方案

技术评审&#xff08;Technical Review, TR&#xff09;的目的是尽早地发现工作成果中的缺陷&#xff0c;并帮助开发人员及时消除缺陷&#xff0c;从而有效地提高产品的质量。 技术评审过程域是SPP模型的重要组成部分。本规范阐述了技术评审过程域的三个主要规程&#xff1a; …

PERT(计划评审技术Program Evaluation an Review Technique)

制定进度表中的PERT方法会用到三点估算&#xff0c;计算公式如下&#xff1a; i. 期望值 (悲观乐观4*最可能) / 6 ii. 标准差 (悲观-乐观) / 6 在培训班听课时&#xff0c;几个讲师都说采用三点估算服从正态分布&#xff0c;需要计算期望值与标准差&#xff0c;然而…

项目经理必须知道什么是PERT网络分析(计划评审技术)

目录 什么是PERT网络分析? PERT的基本要求[2] PERT的计算特点 [1] PERT网络分析法的工作步骤 [1] PERT网络分析法的改进[3] β分布及其性质 改进后的计划评审技术 PERT网络技术的作用 [4] 时间网络分析法的优点和局限性[5] PERT网络分析法的案例分析 PERT的案例一&…

怎样做好技术评审

在产品开发的过程中&#xff0c;耳熟能详的一句话是“通过控制过程质量&#xff0c;来保证结果质量”&#xff0c;而对于关键交付件的“技术评审”&#xff0c;正是有效保证过程质量的重要举措之一。从咨询的过往情况来看&#xff0c;绝大多数企业在意识层面对技术评审的必要性…

技术方案评审

from: http://www.infoq.com/cn/news/2012/02/MapReducePatterns 新年开始&#xff0c;大部分公司都在启动大量新功能的规划及设计、技术人员同时在设计对应实现方案、架构师或者技术主管则需要一天内穿梭在多个技术讨论中&#xff0c;评审并达成成熟稳定的设计方案。从架构师的…

图形评审技术(GERT)与计划评审技术(PERT)

什么是PERT网络分析? PERT(Program Evaluation and Review Technique) 即计划评审技术&#xff0c;最早是由美国海军在计划和控制北极星导弹的研制时发展起来的。PERT技术使原先估计的、研制北极星潜艇的时间缩短了两年。 简单地说&#xff0c;PERT是利用网络分析制定计划以…

计划评审技术(PERT)求工期、标准差、方差以及概率

转自http://www.cnitpm.com/pm/5964.html 计划评审技术&#xff08;PERT&#xff09;。PERT 使用 3 种估算值来界定活动持续时间的近似区间&#xff1a; 最可能时间&#xff08;Tm&#xff09;。基于最可能获得的资源、最可能取得的资源生产率、对资源可用时间的现实预计、资…

计划评审技术

计划评审技术就是把工程项目当成一种系统&#xff0c;用网络图或者表格或者矩阵来表示各项具体工作的先后顺序和相互关系&#xff0c;以时间为中心&#xff0c;找出从开工到完工所需要时间的最长路线&#xff0c;并围绕关键路线对对系统进行统筹规划&#xff0c;合理安排以及对…

第22篇 项目进度管理__计划评审技术__重点内容

本文是项目进度管理的重点&#xff0c; 必须掌握 计划评审技术(Program Evaluation and Review Technique , PERT), 又称为三点估算技术。其理论基础是假设项目持续时间&#xff0c; 以及整个项目完成时间是随机的&#xff0c;且服从某种概率分布。 计划评审技术可以估计整…