用C#实现计算标准正态分布
2007-05-22 19:17
381 查看
static double f(double x)
{
double f=Math.Exp(-x*x/2)/Math.Sqrt(2*Math.PI);
return f;
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
int S=2;
double Q=0;
double b=Convert.ToDouble(textBoxU.Text);
while(true)
{
double a=b-S;
int M=1,N=1,k=1,m=1;
double ep,I,h;
ep=0.000000000001;
h=b-a;
I=h*(f(a)+f(b))/2;
double[,] T=new double[5000,5000];
T[1,1]=I;
while(1>0)
{
N=(int)Math.Pow(2,m-1);
if(N>5000)
{
MessageBox.Show("请缩小精度再计算!");
break;
}
else
{
h=h/2;
I=I/2;
for(int i=1;i<=N;i++)
I=I+h*f(a+(2*i-1)*h);
T[m+1,1]=I;
M=2*N;
k=1;
while(M>1)
{
T[m+1,k+1]=(Math.Pow(4,k)*T[m+1,k]-T[m,k])/(Math.Pow(4,k)-1);
M=M/2;
k=k+1;
}
if(Math.Abs(T[k,k]-T[k-1,k-1])<ep)
break;
m=m+1;
}
}
I=T[k,k];
Q=Q+I;
if(Math.Abs(I)<ep)
break;
b=a;S=2*S;
textBoxResult.Text=Convert.ToString(Math.Round(Q,10));
}
{
double f=Math.Exp(-x*x/2)/Math.Sqrt(2*Math.PI);
return f;
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
int S=2;
double Q=0;
double b=Convert.ToDouble(textBoxU.Text);
while(true)
{
double a=b-S;
int M=1,N=1,k=1,m=1;
double ep,I,h;
ep=0.000000000001;
h=b-a;
I=h*(f(a)+f(b))/2;
double[,] T=new double[5000,5000];
T[1,1]=I;
while(1>0)
{
N=(int)Math.Pow(2,m-1);
if(N>5000)
{
MessageBox.Show("请缩小精度再计算!");
break;
}
else
{
h=h/2;
I=I/2;
for(int i=1;i<=N;i++)
I=I+h*f(a+(2*i-1)*h);
T[m+1,1]=I;
M=2*N;
k=1;
while(M>1)
{
T[m+1,k+1]=(Math.Pow(4,k)*T[m+1,k]-T[m,k])/(Math.Pow(4,k)-1);
M=M/2;
k=k+1;
}
if(Math.Abs(T[k,k]-T[k-1,k-1])<ep)
break;
m=m+1;
}
}
I=T[k,k];
Q=Q+I;
if(Math.Abs(I)<ep)
break;
b=a;S=2*S;
textBoxResult.Text=Convert.ToString(Math.Round(Q,10));
}
相关文章推荐
- C# 实现计算生辰八字
- C#实现计算年龄的简单方法汇总
- 改善C#:C#中标准Dispose模式的实现
- 实例9:实现根据身高计算标准体重
- 利用C#实现标准的 Dispose模式
- 改善C#程序的建议4:C#中标准Dispose模式的实现
- 数据结构之应用 "栈(Stack)" 实现: 解析算术表达式及计算求值 (C#/Java)
- C#实现的根据年月日计算星期几的函数
- 编写一个程序以确定分别由signed及unsigned限定的char、short、int及long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现
- 改善C#程序的建议4:C#中标准Dispose模式的实现
- C#中标准Dispose模式的实现
- C#实现根据地图上的两点坐标,计算直线距离
- C#实现的根据年月日计算星期几的函数
- C#实现的根据年月日计算星期几的函数
- 利用C#实现标准的Dispose模式
- c#实现通过出生日期计算岁,月,天
- C#实现计算今天是农历几号的代码
- 数据结构之应用 "栈(Stack)" 实现: 解析算术表达式及计算求值 (C#/Java) (转载)
- Gps坐标距离计算C#实现
- 利用C#实现标准的Dispose模式