牛顿插值法法——Java
一、插值条件
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相关推荐
- java 多项式拟合最多的项数_牛顿插值法、曲线拟合、多项式拟合
2020年10月4日研究了一下牛顿插值法,其用途是使用x.y两组数值,根据新的x值返回对应的y值,与TREND.FORECAST函数不同,这种方法可应对非线性数据.其作用类似于图表中的曲线拟合或LIN ...
- C语言实现拉格朗日插值法和牛顿插值法
拉格朗日插值法的实现就是通过构造函数,通过已知几对数据然后估算输入对应的数据所得得值. 通过例子可知道拉格朗日法,假设有三组数据分别为(x0,y0),(x1,y1),(x2,y2),与第一个y值相乘得 ...
- 2021-01-07 matlab数值分析 插值法 拉格朗日插值法 牛顿插值法
matlab数值分析 插值法 1 拉格朗日插值法 function yh=lagrange(x,y,xh) n=length(x); m=length(xh); yh=zeros(1,m); for ...
- 拉格朗日插值的优缺点_拉格朗日与牛顿插值法的比较
第 1 页 共 7 页 拉格朗日插值法与牛顿插值法的比较 一. 背景 在工程和科学研究中出现的函数是多种多样的.常常会遇到这样的情况:在某个实际 问题中,虽然可以断定所考虑的函数 ) ( x f 在区 ...
- 利用均差的牛顿插值法(Newton)
函数f的零阶均差定义为 ,一阶定义均差为: 一般地,函数f 的k阶均差定义为: 或者上面这个式子求的k+1阶均差 利用均差的牛顿插值法多项式为: 简单计算的时候可以观看下面的差商(均差)表: 怎么利用 ...
- 牛顿插值法及其C++实现
牛顿插值法 一.背景引入 相信朋友们,开了拉格朗日插值法后会被数学家的思维所折服,但是我想说有了拉格朗日插值法还不够,因为我们每次增加一个点都得重算所有插值基底函数,这样会增加计算量,下面我们引入牛顿 ...
- Python03 拉格朗日插值法 牛顿插值法(附代码)
1.实验结果 (1)在定义的类中设置已知的函数值列表为: (2)在 test.py 中选择 Lagrange 插值法求解: 输入:需求的 y 值对应的 x 值: 输出:所求函数值: (3)选择 New ...
- 利用牛顿公式求解方程的根并且实现牛顿下山法
实验要求 a. 实现牛顿公式,并分别找到收敛和发散的例子 算法介绍 牛顿公式原理如下图: 为了防止牛顿迭代发散并且加速迭代速度,所以我们在这里引入一个新的方法-- 牛顿下山法: 根据牛顿公式原理以及牛 ...
- 【Python篇】拟牛顿法面面俱到(一)--牛顿插值法
感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习, ...
最新文章
- 9、Kubernetes控制器Controller详解
- 彻底颠覆神经科学?神经信号可能不是电信号,而是机械波?!
- Spring Cloud Gateway 原生的接口限流该怎么玩
- Ruby的资源站点和开发工具列表
- tkmybatis 子查询_日均20亿流量:携程机票查询系统的架构升级
- MySQL子查询作为列_mysql 列子查询
- java manager.apk_java实现静默安装apk
- IOS10.8.2安装
- shell @ Linux (1)
- SysV和BSD启动风格的比较
- [AT2306]Rearranging(拓扑序)
- Swift 实现图片转字符画的功能
- ios开发错误之: Undefined symbols for architecture x86_64
- 智能语言-中科院分词系统ICTCLAS(NLPIR)
- Java学生管理系统-增删改查
- Android仿微信新消息提示音
- MapReduce: Simplified Data Processing on Large Clusters 翻译加理解
- 一文看懂韦恩图和欧拉图的不同
- 金融科技大数据产品推荐:恒丰银行实时智能决策引擎
- 打开窗,让阳光洒进来
热门文章
- Ubuntu 14.04 安装 fcitx(小企鹅) 输入法
- Hex文件转Bin文件
- Word文档中如何添加外部超链接
- win11专业版+VMware16.1.2+不可恢复错误: (vcpu-1) Exception 0xc0000005 (access violation)
- 汇编NEG(求补/即求相反数)指令
- .net fileupload批量上传可删除_8uftp上传工具,8uftp上传工具的使用方法只需8步
- 微信小程序安卓视频播放卡顿问题
- AD 2020 入门教程
- 杰理AD14N/AD15N---GPIO唤醒引脚触摸时会有效的问题
- CSS基础(样式声明、引用(行内样式、内部样式、外部样式、导入样式)、样式优先级)