亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 中的正弦函數擬合 - 解釋 commons.apache 的輸出

Java 中的正弦函數擬合 - 解釋 commons.apache 的輸出

白豬掌柜的 2023-02-23 17:02:24
我有興趣在 Java 中創建一個最適合某些給定點的正弦函數。這些點在以下數組中給出:double[] array_to_fit = {0,2,4,6,8,8,5,3,3,0};我找到了適用于 Java 的HarmonicCurveFitter函數,并決定在 Android 中使用它。為了將它們與此功能一起使用,我相信我需要通過減去每個點的平均值來“預處理”數據,這給了我以下信息:double[] array_to_fit = {-3.9,-1.9,0.1,2.1,4.1,4.1,1.1,-0.9,-0.9,-3.9};并將數據擬合到HarmonicCurveFitter對象中:        //add points to WeightedObservedPoints object        for (int index = 0; index < array_to_fit.length; index++) {            obs.add(index, array_to_fit[index]-average);        }        double[] bestFit = fitter.fit(obs.toList());        amp = bestFit[0];        freq = bestFit[1];        phase = bestFit[2];Android 函數返回的輸出如下:放大器:3.7572角頻率(歐米茄):0.6273相位:-2.7699我使用 SciPy 在 Python中完成了相同的練習,輸出如下:放大器:3.7572角頻率(歐米茄):0.6273階段:-1.1991如您所見,Phase 值不同。當我在圖表中繪制兩個函數時:可視化輸出圖結果如您所見,在 Python 中創建的正弦函數似乎確實沒問題,而 Android 中的正弦函數似乎在水平軸上略有偏移......有誰知道這是為什么?我是否錯誤地解釋了 HarmonicCurveFitter 函數的相位輸出?
查看完整描述

1 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

解決了!錯誤是我期待的是正弦,但這個庫中的函數是用余弦表示的。功能如前所述

f(t) = A * cos(omega*t + phi)


查看完整回答
反對 回復 2023-02-23
  • 1 回答
  • 0 關注
  • 215 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號