我的求正態分佈曲線最高點的值的代碼錯在那裏? |
答題得分者是:fusung
|
jean2004
初階會員 發表:69 回覆:80 積分:39 註冊:2004-12-18 發送簡訊給我 |
各位高手,我要求出正態分佈曲線中y軸的值,計算公式如下: x----正態分佈曲線橫坐標,即質量特性取值。
y----正態分佈曲線的縱坐標,即質量特性取某個值的概率(可能性大小)
μ----正態分佈的平均值,也即構成正態分佈曲線的部體平均值。
σ----正態分佈的標準偏差
π-----圓周率,3.14159…..
e------自然指數,2.7183….. 我求其最高點的代碼如下:
#include "math.h" float iAverage = 7.235294;//平均值μ float iStandard = 1.300452;//標準差σ void __fastcall TForm2::Button2Click(TObject *Sender) { Edit1->Text=pow(2.7183,(-pow(iAverage-iAverage,2)/2*pow(iStandard,2)))/2.506628*iStandard; } 算出y的值為0.518805531087748,但是實際的值不是這樣的,正確的值應該是標準偏差越大,y的值越小,這個是標準偏差越大,y的值越大,我怎麼看我的公式怎麼對,但計算結果是錯誤的,不知道我上面的代碼錯在那裏,請各位大大指點一下發表人 - jean2004 於 2005/07/01 17:55:05 |
fusung
中階會員 發表:26 回覆:169 積分:99 註冊:2003-11-25 發送簡訊給我 |
哈囉,jean2004: 我把你的程式稍微修改一下,你參考看。 另外
(1) PI建議你用 4.0*atan(1);
(2) exponential有對應的函式可以呼叫exp()。 關於你寫的部分:
Edit1->Text=pow(2.7183,(-pow(iAverage-iAverage,2)/2*pow(iStandard,2)))/2.506628*iStandard;由於你的x選擇在平均值的位置上,所以理論上會影響y值的大小只有exp前面的項。 你可以試試看如果只印exp前面項運算出的結果對不對,或是其中哪一項出錯了,請你再花點時間debug吧。 下面是我寫的部分: < class="code"> float iAverage; //平均值μ float iStandard; //標準差σ float PI = 4.0*atan(1); float y; void __fastcall TForm1::Button1Click(TObject *Sender) { iAverage = StrToFloat(Edit1->Text); iStandard = StrToFloat(Edit2->Text); y = 1.0/(iStandard*sqrt(2.0*PI)) * exp( -pow(iAverage-iAverage,2)/2.0*pow(iStandard,2) ); Edit3->Text = FloatToStr(y); } /* The first step toward proving things for yourself is to understand how others have done it before! */ 發表人 - fusung 於 2005/07/01 18:20:16
------
The first step toward proving things for yourself is to understand how others have done it before! |
jean2004
初階會員 發表:69 回覆:80 積分:39 註冊:2004-12-18 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
|
fusung
中階會員 發表:26 回覆:169 積分:99 註冊:2003-11-25 發送簡訊給我 |
引言: 在我的理解裏,標準差σ決定了曲線的形狀,平均值μ決定了圖形在X軸的位置,平均值μ應該和曲線的高度無關才對,為什麼公式裏會出現平均值μ?哈囉,jean2004 平均值μ和曲線的高度無關這是正確: 當我更動程式裡面"平均值"時並不會影響y的輸出結果, 只有當我更動程式裡面的"標準差"時,才會影響y的輸出結果。 (1)根據你程式中得知在x=μ時,則 y = f(x) = 1/(σ (2π)^0.5 ) 所以當σ →∞ 則f(σ)→0 (高度僅僅受σ的影響,且當σ越大,則高度越小) (2)你所提到為什麼公式會出現μ,我舉個例子 假設今天量測某一個儀器兩次,分別得到兩組相同normal distribution的資料(即兩組資料的σ值相等) 一種情況是如果兩組資料的平均值也相等,那麼你畫出他們的pdf圖,f(x),會發現 這兩曲線一模一樣。 另一種情況是σ值相等,但μ值不相等,很有可能有一組資料是因為儀器沒有歸零(reset to zero) 或是其他原因所產生的偏移量(bias),造成這組資料和另一組資料的pdf圖在x軸上平移了, 也就是兩組資料μ值不相等卻有相同的資料分佈特性(因為量的是相同儀器)。 (3) 關於Normal Distribution可參考 http://mathworld.wolfram.com/NormalDistribution.html 以上如有誤,請予以指正,謝謝~ /*
------
The first step toward proving things for yourself is to understand how others have done it before! |
jean2004
初階會員 發表:69 回覆:80 積分:39 註冊:2004-12-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |