作者a9069 (綠茶微糖)
站內Programming
標題一個積分的code問題...
時間Fri May 21 18:48:37 2010
#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
推 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