一、插值条件
f(x)是未知函数,所以用所求的Nn(x)的已知函数代替未知函数求解问题

牛顿插值法要满足的条件:Nn(xi)=F(Xi)

二、牛顿插值法的差值公式
n+1个交点则有,
Nn(x)=f(x0)+f[x0,x1](x-x0)+f[x0,x1,x2](x-x0)(x-x1)+f[x0,x1,x2,x3](x-x0)(x-x1)(x-x2)+…+f[x0,x1,x2,…,xn](x-x0)*(x-x1)…(x-xn-1)

三、差商表

差商公式:f[x0,x1,x2,…xi]=(f[x0,x1,x2,…,xi-1]-f[x1,x2,x3,…,xi])/(x0-xi)

假设f(x)经过6个点,分别为(x0,f(x0)),(x1,f(x1)),(x2,f(x2)),…,(x5,f(x5))
差商表为:

x f(x) 一阶差商 二阶差商 三阶差商 五阶差商
x0 f(x0)
f[x0,x1]
x1 f(x1) f[x0,x1,x2]
f[x1,x2] f[x0,x1,x2,x3]
x2 f(x2) f[x1,x2,x3]
f[x2,x3] f[x1,x2,x3,x4] f[x0,x1,x2,x3,…,x5]
x3 f(x3) f[x2,x3,x4]
f[x3,x4] f[x2,x3,x4,x5]
x4 f(x4) f[x3,x4,x5]
f[x4,x5]
x5 f(x5)

四、代码
根据上面描述,若f(x)经过n个已知点可以用如下牛顿插值法代码来近似求解x的f(x)函数值


import java.util.Scanner;
public class Newtoninterpolate {static double[][] format;public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);int n=in.nextInt();//插入点总数double[][] xy=new double[2][n];//二维数组来存储x和yfor(int j=0;j<n;j++) {xy[0][j]=in.nextDouble();//第0行放各点的x值xy[1][j]=in.nextDouble();//第1行放各点的y值}creatformat(xy, n);int v=in.nextInt();//所求点的总数for(int i=0;i<v;i++) {double x=in.nextDouble();System.out.print("f("+x+")≈"+"Nn("+x+")"+"=");System.out.printf("%.5f", Nn(xy, n, x));System.out.println();}}static void creatformat(double[][] xy,int n) {format=new double[n-1][n-1];for(int i=0;i<n-1;i++) {for(int j=0;j<n-1-i;j++) {if(i==0) {format[i][j]=(xy[1][j]-xy[1][j+1])/(xy[0][j]-xy[0][j+1]);}else{format[i][j]=(format[i-1][j]-format[i-1][j+1])/(xy[0][j]-xy[0][j+i+1]);} }}}static double Nn(double[][] xy,int n,double x) {//牛顿插值公式double sum=xy[1][0];//求和的初始值为f(X0)for(int i=0;i<n-1;i++) {double c=1;for(int j=0;j<i+1;j++) {c=(x-xy[0][j])*c;}sum=sum+format[i][0]*c;}return sum;}
}

五、例子

已知未知函数f(x)经过(0.40,0.41075),(0.55,0.57815),(0.65,0.69675),(0.80,0.88811),(0.90,1.02652),(1.05,1.25386)这些点,求当0.596的近似函数值。
eclipse编译器运行结果:

(精确到小数点后5位)

牛顿插值法法——Java相关推荐

  1. java 多项式拟合最多的项数_牛顿插值法、曲线拟合、多项式拟合

    2020年10月4日研究了一下牛顿插值法,其用途是使用x.y两组数值,根据新的x值返回对应的y值,与TREND.FORECAST函数不同,这种方法可应对非线性数据.其作用类似于图表中的曲线拟合或LIN ...

  2. C语言实现拉格朗日插值法和牛顿插值法

    拉格朗日插值法的实现就是通过构造函数,通过已知几对数据然后估算输入对应的数据所得得值. 通过例子可知道拉格朗日法,假设有三组数据分别为(x0,y0),(x1,y1),(x2,y2),与第一个y值相乘得 ...

  3. 2021-01-07 matlab数值分析  插值法 拉格朗日插值法 牛顿插值法

    matlab数值分析  插值法 1 拉格朗日插值法 function yh=lagrange(x,y,xh) n=length(x); m=length(xh); yh=zeros(1,m); for ...

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

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

  5. 利用均差的牛顿插值法(Newton)

    函数f的零阶均差定义为 ,一阶定义均差为: 一般地,函数f 的k阶均差定义为: 或者上面这个式子求的k+1阶均差 利用均差的牛顿插值法多项式为: 简单计算的时候可以观看下面的差商(均差)表: 怎么利用 ...

  6. 牛顿插值法及其C++实现

    牛顿插值法 一.背景引入 相信朋友们,开了拉格朗日插值法后会被数学家的思维所折服,但是我想说有了拉格朗日插值法还不够,因为我们每次增加一个点都得重算所有插值基底函数,这样会增加计算量,下面我们引入牛顿 ...

  7. Python03 拉格朗日插值法 牛顿插值法(附代码)

    1.实验结果 (1)在定义的类中设置已知的函数值列表为: (2)在 test.py 中选择 Lagrange 插值法求解: 输入:需求的 y 值对应的 x 值: 输出:所求函数值: (3)选择 New ...

  8. 利用牛顿公式求解方程的根并且实现牛顿下山法

    实验要求 a. 实现牛顿公式,并分别找到收敛和发散的例子 算法介绍 牛顿公式原理如下图: 为了防止牛顿迭代发散并且加速迭代速度,所以我们在这里引入一个新的方法-- 牛顿下山法: 根据牛顿公式原理以及牛 ...

  9. 【Python篇】拟牛顿法面面俱到(一)--牛顿插值法

    感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习, ...

最新文章

  1. 9、Kubernetes控制器Controller详解
  2. 彻底颠覆神经科学?神经信号可能不是电信号,而是机械波?!
  3. Spring Cloud Gateway 原生的接口限流该怎么玩
  4. Ruby的资源站点和开发工具列表
  5. tkmybatis 子查询_日均20亿流量:携程机票查询系统的架构升级
  6. MySQL子查询作为列_mysql 列子查询
  7. java manager.apk_java实现静默安装apk
  8. IOS10.8.2安装
  9. shell @ Linux (1)
  10. SysV和BSD启动风格的比较
  11. [AT2306]Rearranging(拓扑序)
  12. Swift 实现图片转字符画的功能
  13. ios开发错误之: Undefined symbols for architecture x86_64
  14. 智能语言-中科院分词系统ICTCLAS(NLPIR)
  15. Java学生管理系统-增删改查
  16. Android仿微信新消息提示音
  17. MapReduce: Simplified Data Processing on Large Clusters 翻译加理解
  18. 一文看懂韦恩图和欧拉图的不同
  19. 金融科技大数据产品推荐:恒丰银行实时智能决策引擎
  20. 打开窗,让阳光洒进来

热门文章

  1. Ubuntu 14.04 安装 fcitx(小企鹅) 输入法
  2. Hex文件转Bin文件
  3. Word文档中如何添加外部超链接
  4. win11专业版+VMware16.1.2+不可恢复错误: (vcpu-1) Exception 0xc0000005 (access violation)
  5. 汇编NEG(求补/即求相反数)指令
  6. .net fileupload批量上传可删除_8uftp上传工具,8uftp上传工具的使用方法只需8步
  7. 微信小程序安卓视频播放卡顿问题
  8. AD 2020 入门教程
  9. 杰理AD14N/AD15N---GPIO唤醒引脚触摸时会有效的问题
  10. CSS基础(样式声明、引用(行内样式、内部样式、外部样式、导入样式)、样式优先级)