拉格朗日插值法(伪代码 c/c++ python 实现)
来源:互联网 发布:电信的客户端软件 编辑:程序博客网 时间:2024/05/21 23:32
插值法又称“内插法”,是利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。
拉格朗日插值是n次多项式插值,其成功地用构造插值基函数的 方法解决了求n次多项式插值函数问题。
其基本思想是将待求的n次多项式插值函数p(x)改写成另一种表示方式,再利用插值条件⑴确定其中的待定函数,从而求出插值多项式。
套用相关公式,即可实现相关的程序。
算法的流程图:
伪代码如下:
LagrangeInterpolationPolynomia(ele, n, x[], y[]) //ele是需要预测的元素值,n是提供的值的数量,x[]与y[]分别存储着已知的x值与所对应的y值sum <- 0k <- 0while k < n dot <- 1j <- 0while j < n doif j != kt <- ((ele - x[j])/(x[k] - x[j]))*tsum <- t * y[k] + sumendj <- j + 1end k <- k + 1end return sum
c/c++的代码:
#include <iostream>using namespace std;float LagrangeInterpolationPolynomia(float x,int n,float a[],float b[]);int main (){float x,y,t,a[100],b[100];int i,j,k,n;cout << "输入n的值"<<endl;cin >> n;cout << "输入x的值"<<endl;cin >> x;y = 0;for (i=0;i<n;i++){cout<< "输入x"<<i<<"的数据:";cin >> a[i];cout<< "输入y"<<i<<"的数据:";cin >> b[i];}cout << "y="<<LagrangeInterpolationPolynomia(x,n,a,b)<<endl;return 0;}float LagrangeInterpolationPolynomia(float x,int n,float a[],float b[]){int k;float t,y=0;int j;for (k = 0;k < n;k++){t = 1;for (j = 0;j < n;j++){if (j != k)t = ((x - a[j])/(a[k]-a[j]))*t;}y = t * b[k]+y;cout << y << endl;}return y;}python的代码:
def LagrangeInterpolationPolynomia(ele, n, x, y): sum_num = 0 for k in range(0, n): t = 1 for j in range(0, n): if j != k: t = ((ele - x[j])/(x[k] - x[j]))*t sum_num = t * y[k] + sum_num return sum_numx = [1, 3]y = [1, 2]print LagrangeInterpolationPolynomia(1.5, len(x), x, y)
阅读全文
0 0
- 拉格朗日插值法(伪代码 c/c++ python 实现)
- 选择排序(伪代码算法,c++,以及python实现)
- 快速排序(伪代码 c/c++ python 实现)
- 牛顿插值法(伪代码 c/c++ python实现)
- 数值计算方法 求解初值问题(伪代码 c/c++ python)
- 数值计算方法 数值积分(伪代码 c/c++ python)
- 原创伪c代码实现线程池
- 数值计算方法:二分法求解方程的根(伪代码 python c/c++)
- KMP算法的理解,伪代码,c代码实现
- 生产者消费者问题 伪代码和C语言多线程实现
- 从C的伪代码到汇编,动手实现objc_msgSend
- 对筛法求素数的实现代码(Python及C++)
- C语言代码格式自动化(python实现)
- (C#)A*算法伪代码及源码
- 数据结构伪C代码:2.线性表
- 数据结构伪C代码:栈和队列
- 数据结构伪C代码:4.串
- 数据结构伪C代码:7.图
- Java记录 -9- 面向对象之封装
- STM32学习之路(二)软件安装方法
- Java记录 -10- 面向对象之封装续
- Java记录 -11- 面向对象之封装续II
- storm记录--9- Storm Topology的并发度
- 拉格朗日插值法(伪代码 c/c++ python 实现)
- storm记录--10- Storm消息机制
- Java记录 -12- 方法重载与重写
- Boost Asio 中的线程和基本原理
- Java记录 -13- 面向对象之继承
- Java记录 -14- 面向对象之多态
- Leetcode 125 Valid Palindrome
- Java记录 -15- 面向对象之多态续
- Java记录 -16- 抽象类及接口