欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)的n階曲線擬合功能示例

 更新時間:2018年01月17日 12:04:26   作者:豎琴手  
這篇文章主要介紹了Java實現(xiàn)的n階曲線擬合功能,結合實例形式分析了Java基于矩陣的多項式曲線擬合相關操作技巧,需要的朋友可以參考下

本文實例講述了Java實現(xiàn)的n階曲線擬合功能。分享給大家供大家參考,具體如下:

前面一篇文章Java實現(xiàn)求解一元n次多項式的方法,能解多項式以后,還需要利用那個類,根據(jù)若干采樣點數(shù)據(jù)來對未來數(shù)據(jù)進行預測,擬合的矩陣在上一篇文章中已經貼出來了,這里就不說了,本篇主要是如何根據(jù)采樣點來計算系數(shù)矩陣,并計算預測點的值。

原理很簡單,公式在上一篇文章中也有了,此處直接貼代碼。

其中用到了上一篇文章中寫的類commonAlgorithm.PolynomiaSoluter

package commonAlgorithm;
import commonAlgorithm.PolynomialSoluter;
import java.lang.Math;
public class LeastSquare {
  private double[][] matrixA;
  private double[] arrayB;
  private double[] factors;
  private int order;
  public LeastSquare() {
  }
  /*
   * 實例化后,計算前,先要輸入參數(shù)并生成公式 arrayX為采樣點的x軸坐標,按照采樣順序排列
   * arrayY為采樣點的y軸坐標,按照采樣順序與x一一對應排列 order
   * 為進行擬合的階數(shù)。用低階來擬合高階曲線時可能會不準確,但階數(shù)過高會導致計算緩慢
   */
  public boolean generateFormula(double[] arrayX, double[] arrayY, int order) {
    if (arrayX.length != arrayY.length)
      return false;
    this.order = order;
    int len = arrayX.length;
    // 擬合運算中的x矩陣和y矩陣
    matrixA = new double[order + 1][order + 1];
    arrayB = new double[order + 1];
    // 生成y矩陣以及x矩陣中冪<=order的部分
    for (int i = 0; i < order + 1; i++) {
      double sumX = 0;
      for (int j = 0; j < len; j++) {
        double tmp = Math.pow(arrayX[j], i);
        sumX += tmp;
        arrayB[i] += tmp * arrayY[j];
      }
      for (int j = 0; j <= i; j++)
        matrixA[j][i - j] = sumX;
    }
    // 生成x矩陣中冪>order的部分
    for (int i = order + 1; i <= order * 2; i++) {
      double sumX = 0;
      for (int j = 0; j < len; j++)
        sumX += Math.pow(arrayX[j], i);
      for (int j = i - order; j < order + 1; j++) {
        matrixA[i - j][j] = sumX;
      }
    }
    // 實例化PolynomiaSoluter并解方程組,得到各階的系數(shù)序列factors
    PolynomialSoluter soluter = new PolynomialSoluter();
    factors = soluter.getResult(matrixA, arrayB);
    if (factors == null)
      return false;
    else
      return true;
  }
  // 根據(jù)輸入坐標,以及系數(shù)序列factors計算指定坐標的結果
  public double calculate(double x) {
    double result = factors[0];
    for (int i = 1; i <= order; i++)
      result += factors[i] * Math.pow(x, i);
    return result;
  }
}

PS:這里再為大家推薦幾款計算工具供大家進一步參考借鑒:

在線多項式曲線及曲線函數(shù)擬合工具:
http://tools.jb51.net/jisuanqi/create_fun/

在線繪制多項式/函數(shù)曲線圖形工具:
http://tools.jb51.net/jisuanqi/fun_draw

在線一元函數(shù)(方程)求解計算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科學計算器在線使用_高級計算器在線計算:
http://tools.jb51.net/jisuanqi/jsqkexue

在線計算器_標準計算器:
http://tools.jb51.net/jisuanqi/jsq

更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • logback ThrowableProxyConverter類源碼流程解析

    logback ThrowableProxyConverter類源碼流程解析

    這篇文章主要為大家介紹了logback ThrowableProxyConverter類源碼流程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • PropertiesLoaderUtils 出現(xiàn)中文亂碼的解決方式

    PropertiesLoaderUtils 出現(xiàn)中文亂碼的解決方式

    這篇文章主要介紹了PropertiesLoaderUtils 出現(xiàn)中文亂碼的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java實現(xiàn)pdf轉圖片案例

    Java實現(xiàn)pdf轉圖片案例

    這篇文章主要介紹了Java實現(xiàn)pdf轉圖片案例,按照步驟放置代碼,一步步完成該案例,將代碼部署便可,需要的朋友可以參考下
    2021-06-06
  • 關于Spring?Ioc和DI注解的問題

    關于Spring?Ioc和DI注解的問題

    這篇文章主要介紹了Spring?Ioc和DI注解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Mybatis注解sql時出現(xiàn)的一個錯誤及解決

    Mybatis注解sql時出現(xiàn)的一個錯誤及解決

    這篇文章主要介紹了Mybatis注解sql時出現(xiàn)的一個錯誤及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java中try-catch的使用及注意細節(jié)

    Java中try-catch的使用及注意細節(jié)

    現(xiàn)在有很多的語言都支持try-catch,比如常見的就是c++,java等,這篇文章主要給大家介紹了關于Java中try-catch的使用及注意細節(jié)的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • springsecurity實現(xiàn)用戶登錄認證快速使用示例代碼(前后端分離項目)

    springsecurity實現(xiàn)用戶登錄認證快速使用示例代碼(前后端分離項目)

    這篇文章主要介紹了springsecurity實現(xiàn)用戶登錄認證快速使用示例代碼(前后端分離項目),本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • springboot前后端分離集成CAS單點登錄(統(tǒng)一認證)

    springboot前后端分離集成CAS單點登錄(統(tǒng)一認證)

    單點登錄是一種身份認證和授權技術,允許用戶在多個應用系統(tǒng)中使用同一套用戶名和密碼進行登錄,本文主要介紹了springboot前后端分離集成CAS單點登錄,具有一定的參考價值,感興趣的可以了解一下
    2024-09-09
  • IDEA項目如何取消git版本管控并添加svn版本控制

    IDEA項目如何取消git版本管控并添加svn版本控制

    在公司內部服務器環(huán)境下,將代碼倉庫從Gitee的Git遷移到SVN可以避免外部版本控制的風險,遷移過程中,先刪除項目的.git文件夾,再通過Eclipse的設置界面刪除原Git配置并添加SVN配置,之后,將項目提交到SVN倉庫,確保使用ignore列表過濾不必要的文件
    2024-10-10
  • java8時間 yyyyMMddHHmmss格式轉為日期的代碼

    java8時間 yyyyMMddHHmmss格式轉為日期的代碼

    這篇文章主要介紹了java8時間 yyyyMMddHHmmss格式轉為日期的代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09

最新評論