埃尔米特三次样条插值算法-JAVA版本实现

package math;/*** 三次样条插值** y1=a+bx1+cx1^2* y2=a+bx2+cx2^2* y3=a+bx3+cx3^2** (y1-y2)/(x1-x2)=b+c(x1^2-x2^2)/(x1-x2)* (y2-y3)/(x2-x3)=b+c(x2^2-x3^2)/(x2-x3)* (y1-y2)/(x1-x2)-(y2-y3)/(x2-x3)=c((x1^2-x2^2)/(x1-x2)-(x2^2-x3^2)/(x2-x3))** c=[(y1-y2)/(x1-x2)-(y2-y3)/(x2-x3)]/((x1^2-x2^2)/(x1-x2)-(x2^2-x3^2)/(x2-x3))* b=-c(x2^2-x3^2)/(x2-x3)+(y2-y3)/(x2-x3)* a=y1-bx1-cx1^2** @author zrh* @date 2022-06-27*/
public class Fx {private double a;private double b;private double c;private double x1, y1;private double x2, y2;private double x3, y3;public Fx(double x1, double y1, double x2, double y2, double x3, double y3){this.x1 = x1;this.y1 = y1;this.x2 = x2;this.y2 = y2;this.x3 = x3;this.y3 = y3;getC();getB();getA();}public double getY(double x) {double y = a + b * x + c * x * x;return y;}private double getC() {double aa = (y1-y2)/(x1-x2)-(y2-y3)/(x2-x3);double bb = ((x1*x1-x2*x2)/(x1-x2)-(x2*x2-x3*x3)/(x2-x3));c = aa/bb;return c;}private double getB() {double aa = (-c)*(x2*x2-x3*x3)/(x2-x3);double bb = (y2-y3)/(x2-x3);b = aa + bb;return b;}private double getA() {a = y1-b*x1-c*x1*x1;return a;}}

调用方法为:

package math;/*** @author zrh* @date 2022-06-16*/
public class FxTest {public static void main(String[] args) {Fx fx = new Fx(70.0, 85.0, 74, 90, 81.0, 100.0);double y = fx.getY(76);System.out.println("x=76, y="+y);//x=76, y=92.6948051948052}}

埃尔米特三次样条插值算法-JAVA版本实现相关推荐

  1. 三次样条插值算法C++实现

    三次样条插值算法 1 总体说明 三次样条插值算法是一种计算量和效果都比较理想的插值算法.关于三次样条插值算法的原理这里不做过多的解释,下面的代码是我在网上收集了两种C++实现版本的基础上自己整合的一个 ...

  2. 下载最新版本Maven 3.3.9 ,检测安装是否成功时发现Java版本JDK却低于1.7时报错

    下线最新版本Maven 3.3.9 ,检测安装是否成功时发现Java版本JDK却低于1.7时报错 cmd: mvn -v Exception in thread "main" ja ...

  3. linux 修改java版本_Linux 有问必答:如何在 Linux 中改变默认的 Java 版本

    提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...

  4. java jnlp被阻止_JNLP应使用特定的Java版本,但会出现错误结果

    我在这里面临一个问题.我想使用特殊版本来运行我们的 java webstart应用程序,但只需要一个jnlp. ("经过测试,- blabla我们不能使用新版本- blabla"随 ...

  5. Ubuntu/Debian 系统切换Java(JVM),修改Java版本,JAVA_HOME

    http://blog.mypapit.net/2007/10/how-to-switch-between-different-java-jvm-in-ubuntu-and-debian-gnu-li ...

  6. mac os x java_Mac OS X和多个Java版本

    守着一只汪 在Mac上管理多个Java版本的最简洁方法是使用Homebrew.在内Homebrew,使用:homebrew-cask 安装java的版本jenv 管理已安装的java版本如http:/ ...

  7. centos 更换java版本_centos7 更换jdk版本

    查看java版本   java -version 如果有java版本(如果没有直接看红色虚线以下的) 输入 rpm -qa | grep java会显示以下几条内容: ******* ******** ...

  8. 【错误记录】Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )

    文章目录 一.报错信息 二.问题分析 三.解决方案 一.报错信息 在使用 Android 编译时技术 , 涉及 编译时注解 , 注解处理器 ; 开发注解处理器后 , 编译报如下警告 ; 该警告不会影响 ...

  9. 【Android APT】注解处理器 ( 配置注解依赖、支持的注解类型、Java 版本支持 )

    文章目录 一.注解处理器 依赖 编译时注解 二.设置 注解处理器 支持的注解类型 三.设置 注解处理器 支持的 Java 版本 四.博客资源 Android APT 学习进阶路径 : 推荐按照顺序阅读 ...

最新文章

  1. 利用cmake查看OpenCV的源码的方法
  2. 我泡在GitHub上的177天 by Ryan Seys
  3. 动态方法注入 grails_Grails动态下拉菜单
  4. java通过url读取网络图片
  5. php 获取内容页图片,织梦CMS如何从列表页获取内容页的图片
  6. mysql主从复制读写分离
  7. 一周年工作总结--wfdb库使用
  8. 福利来了!本人近300G的学习资料愿与大家分享
  9. 计算机c语言程序设计题,《计算机C语言程序设计》模拟题集.doc
  10. 信息论与编码_中大网络信息理论与编码研讨会成功举办 SYSU Workshop on Net. Info. Theory and Coding...
  11. Python之基础语法
  12. 个人博客系统测试用例
  13. 自动化c语言课程设计,自动化与电气工程学院C语言课程设计报告.doc
  14. 通过dns2tcp绕过校园网认证进行免费上网
  15. CKEditor富文本编辑器使用
  16. mysql 创建表指定时区,[MySQL] 设置时区
  17. Android Studio课堂总结05
  18. html----烟花代码
  19. CCF推荐|中科院2区生物信息与计算机类SCI征稿~
  20. 我的世界神级种子Java_盘点我的世界中单机生存必备的神级种子

热门文章

  1. linux mint 安装ubuntu软件中心,Ubuntu和Linux Mint:安装Pinta 1.6工具
  2. 研究生体检色盲 报的计算机技术,我现在准备考浙江大学计算机研究生 我是色弱有没有影响啊...
  3. WinForm常用控件
  4. MATLAB画风速带有方向的矢量图程序,Matlab向量矢量图
  5. 市场调研报告-全球与中国充气帆船市场现状及未来发展趋势
  6. Agora Flat:在线教室的开源初体验
  7. 【vue+pc端】实现微信扫码登录pc端,后端通过微信开发平台,前端生成二维码(仅供参考)
  8. 中南大学复试上机:1009: 安全路径
  9. 笔记—学习【立创】如何使用示波器—测量一个波形
  10. 对接斑马打印机 usb模式+打印机共享模式