91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Java怎么實現一個n階曲線擬合功能

發布時間:2021-04-08 17:50:16 來源:億速云 閱讀:215 作者:Leah 欄目:編程語言

這篇文章給大家介紹使用Java怎么實現一個n階曲線擬合功能,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

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() {
  }
  /*
   * 實例化后,計算前,先要輸入參數并生成公式 arrayX為采樣點的x軸坐標,按照采樣順序排列
   * arrayY為采樣點的y軸坐標,按照采樣順序與x一一對應排列 order
   * 為進行擬合的階數。用低階來擬合高階曲線時可能會不準確,但階數過高會導致計算緩慢
   */
  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并解方程組,得到各階的系數序列factors
    PolynomialSoluter soluter = new PolynomialSoluter();
    factors = soluter.getResult(matrixA, arrayB);
    if (factors == null)
      return false;
    else
      return true;
  }
  // 根據輸入坐標,以及系數序列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;
  }
}

關于使用Java怎么實現一個n階曲線擬合功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昆明市| 聊城市| 上蔡县| 黄梅县| 玛多县| 台前县| 平和县| 鞍山市| 拉萨市| 钟山县| 胶州市| 邛崃市| 襄垣县| 思南县| 广平县| 吉首市| 英超| 宜章县| 繁峙县| 武宣县| 奎屯市| 万荣县| 漯河市| 上思县| 札达县| 和田市| 乃东县| 武威市| 长白| 旬阳县| 钦州市| 赤水市| 沂水县| 宝丰县| 甘南县| 沭阳县| 隆林| 田阳县| 图片| 成都市| 通辽市|