看板 Programming 關於我們 聯絡資訊
#include "stdafx.h" #include <cmath> #include <iostream> using namespace std; double z = 0; double Normal(double a ,double b , double c) { double f = exp(-pow(a-b,2)/(2*c*c))/(pow(6.28, 0.5)*c); return f; }; int _tmain(int argc, _TCHAR* argv[]) { for(int i=0 ; i<10001;i++) { double c = i/10000; z = z + i/10000*Normal(c,0,1) ; } cout<<z; system("pause"); return 0; } 如題 我是要計算出 常態分配的機率分布與積分結果 Please calculate ∫_0^1??1/(√2π σ) e^(-(?(x-μ)?^2/(2σ^2 ))) ? Note, e(x) can be obtained by calling cmath function exp(x). 也就是積出Normal(0,1) x= 0~1的結果 答案應該是0.34 但我的是0.24 想說應該都沒錯吧= = ...看了又看不知錯在哪 旁觀者清 請各位大大指點小弟一下 感激不盡啊!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.140.247
LPH66:你沒錯 因為你在算下和 140.112.28.92 05/21 18:50
LPH66:用程式做數值積分的話辛普森法可以看看 140.112.28.92 05/21 18:50
LPH66:(稍微學些微積分就會知道下和其實並不怎麼準 140.112.28.92 05/21 18:51
LPH66: 同樣的上和也不一定準) 140.112.28.92 05/21 18:51
LPH66:說起來這個應該不是下和 而是左端點矩形 140.112.28.92 05/21 18:52
a9069:那cmath裡有包含積分的內建運算式嗎??140.113.140.247 05/21 18:56
a9069:想說能不能直接運用cmath的功能140.113.140.247 05/21 18:56
MOONRAKER:沒有。 59.120.168.228 05/21 19:31
COLDTURNIP:Try this http://tinyurl.com/ceh75t 118.166.67.106 05/21 23:56
kangeroo:第1個 i/10000 -> 1/10000.0 125.227.129.71 05/25 19:29
kangeroo:第2個 i/10000 -> 1/10000.0 (不是i) 125.227.129.71 05/25 19:30