Re: [問題] 如何找高斯分布的最高點?
看板C_and_CPP (C/C++)作者kvykn (simple life)時間16年前 (2009/09/01 23:09)推噓0(0推 0噓 1→)留言1則, 1人參與討論串2/3 (看更多)
※ 引述《clvin (^ ^)》之銘言:
: 新手發問,請多指教,謝謝。
: 請問各位前輩,
: 若有一高斯分佈之曲線,假設橫軸為x,縱軸為y(強度),
: 想藉C寫個迴圈來找出高斯分部上之強度最大點,
: 接著再從該最大點分別往左右找出強度下降至最大點的1/2處之兩點,
: 則該如何著手比較好呢?
若已知為Gaussian但不知道參數為何
那就從起點(x軸的起始值)開始 逐點計算斜率 以及判斷是否為區域極大值
過程中每一點的斜率與x值開個陣列存下來 (x,slope)
等到區域極大值找到 那點就是Gaussian的最大值
接著,在斜率陣列中搜尋強度最大值的二分之一 找到之後利用Gaussian對稱的性質
找另一個斜率的位置
只需要跑資料的一半就可以達到你的需求了
以上是我粗略的解法
其他要注意的就是離散數據的處理 看你要多精確就看你的需求了
理論值跟程式結果可能不一樣 希望你能夠多多包涵阿
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.6.28.161
→
09/02 18:32, , 1F
09/02 18:32, 1F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章