本文原文发表于本人博客 哔哔哔哔-使用C++编写拉格朗日3次插值法

拉格朗日插值法是由Joseph-Louis Lagrange提出的插值的多项式,是估算函数数值的重要工具之一

前言

接上文使用C++计算3次牛顿插值法

GitHub地址

https://github.com/gst-be/lagrange_polynomial

代码

#include <iostream>
using namespace std;
int main()
{double x[4],y[4],t;for(int i=0;i<=3;i++){cout<<"input x"<<i<<"=";cin>>x[i];cout<<"input y"<<i<<"=";cin>>y[i];}cout<<"input x=";cin>>t;//输入x0-x3,y0-y3,xdouble l1[4],l2[4];             //定义基函数分母和分子for(int i=0;i<=3;i++){l1[i]=l2[i]=1;          //初始化分母,分子为1}double l[4];for(int i=0;i<=3;i++){for(int j=0;j<=3;j++){if(i==j)continue;l1[i]*=t-x[j];     //计算基函数分子l2[i]*=x[i]-x[j];  //计算基函数分母}l[i]=l1[i]/l2[i];}double p=0;for(int i=0;i<=3;i++){p+=y[i]*l[i];              //计算P(x)}cout<<"P("<<t<<")="<<p<<endl;return 0;
}

解析

基函数分子,分母的计算

为方便处理,笔者在此处将分子和分母分开计算,分别命名为数组l1和数组l2
这里使用for循环来处理分子分母的计算
遇到i=j的情况时使用if-continue跳过该轮循环,如下所示:

if(i==j)
continue;

为了使l1l2计算时的循环完整,需将l1,l2初始化为1

for(int i=0;i<=3;i++){l1[i]=l2[i]=1;}

本文已发表于哔哔哔哔(bebebe.be)

使用C++编写拉格朗日3次插值法相关推荐

  1. matlab编写拉格朗日插值代码函数

    要求:根据拉格朗日多项式插值法原理,设计算法流程并且编写拉格朗日插值代码函数. 代码如下: function[y]=lagrange(x0,y0,x)   %建立一个函数名为lagrange的函数,输 ...

  2. 理解插值法(拉格朗日、牛顿插值法)

    引言 我们首先理解下插值法主要用来做什么事:插值法就是利用已知的点建立合适的插值函数 f ( x ) f(x) f(x) ,未知点 x i x_i xi​ 由插值函数 f ( x ) f(x) f(x ...

  3. 拉格朗日插值的优缺点_拉格朗日与牛顿插值法的比较

    第 1 页 共 7 页 拉格朗日插值法与牛顿插值法的比较 一. 背景 在工程和科学研究中出现的函数是多种多样的.常常会遇到这样的情况:在某个实际 问题中,虽然可以断定所考虑的函数 ) ( x f 在区 ...

  4. MATLAB编写拉格朗日插值与龙格现象

    插值与龙格现象 在区间[-1,1]上对函数 ,选取不同的插值节点构造插值多项式,比较他们的误差. (1) 取等距节点,n=5,10,15,20. (2) 取节点 ,k=0,1,2,-n:分别取n=5, ...

  5. 拉格朗日插值法MATLAB实现(附代码、实例、详解)

    第一部分:问题分析 (1)实验题目:拉格朗日插值算法 具体实验要求:要求学生运用拉格朗日插值算法通过给定的平面上的n个数据点,计算拉格朗日多项式Pn(x)的值,并将其作为实际函数f(x)的估计值.用m ...

  6. 数值计算方法-拉格朗日插值法

    要求: 编写拉格朗日插值函数,输入为(x,f,order1) 其中x代表节点数据,为n*2矩阵 f代表是否分段 oreder1:若分段,oreder1代表函数阶次,只能为1或者2 若不分段,则函数阶次 ...

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

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

  8. C#实现拉格朗日、牛顿、Hermite插值

    拉格朗日.牛顿插值法 初始时需要至少两个参考坐标点,在参考点的基础之上构造插值函数y=f(x),然后由插值函数确定需要求解的x坐标的函数值.相较于拉格朗日插值,牛顿插值公式更加复杂,但是在增加一个参考 ...

  9. 分段线性插值法实验报告_插值方法_实验报告.doc

    插值方法_实验报告 肖建 计科三班开课学院.实验室: 数统学院 实验时间 : 2011 年 5 月 8 日 课程 名称数学实验实验项目 名 称 插值方法 实验项目类型验证演示综合设计其他指导 教师李东 ...

最新文章

  1. TensorFlow学习笔记(一):数据操作指南
  2. TxQueryRunner类对结果集封装成bean、map及object的操作
  3. 专题2 文件系统结构
  4. STM32F4 HAL库开发 -- SPI Flash
  5. Policy-based RL小结(Policy Gradient ; Natural policy gradient ;TRPO;ACKTR;PPO )
  6. docker 镜像加速
  7. nth_element(a+1 , a + m, a + n+1);
  8. 训练日志 2019.3.28
  9. QT--MessageBox --multi button
  10. 配置服务器文件,服务器配置文件
  11. 新手驾车操作指南[200P]
  12. weex入门指南--华岭
  13. Java 常用对象-System类
  14. Docker入门之安装与卸载
  15. 知乎页面颜色个性化修改
  16. Wargames学习笔记--Natas
  17. VPP协议栈学习一:snd_wnd
  18. c# 调整图片分辨率
  19. 梯度下降法实战案例(波士顿房价)
  20. Webview加载本地图片的方案对比

热门文章

  1. 法国大面包 mimikatz使用方法
  2. [转载]OGRE 3D 1.7 Beginner‘s Guide中文版 第一章
  3. 计算机应用软件英语,计算机应用软件复习题 专业英语(整理)
  4. git pull和git pull -- rebase
  5. 网格与云计算关键技术
  6. 在线绝缘检测仪在发电厂高压电机中的应用
  7. php小蛋白奶粉有哪些牌子,含乳铁蛋白的奶粉有哪些牌子?宝妈们需要知道这些挑选标准...
  8. Mono-mbe版本编译libmonobdwgc-2.0.so
  9. 《下一代互联网(IPv6)搭建与运维》1+X证书
  10. canvas刻画时间轴