在C语言中,积分函数怎么写?

jie2002 2002-08-19 02:34:47
算标准正态分布的概率怎么算啊
...全文
991 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
srm2000 2002-10-13
  • 打赏
  • 举报
回复
兄弟,找本算法的书拷源程序。
djwinter 2002-08-20
  • 打赏
  • 举报
回复
计算方法上有呀
兄弟,看看书呀
jie2002 2002-08-19
  • 打赏
  • 举报
回复
当然是计算计算标准正态函数的概率了,求在特定范围内的概率,例如(1.4<X<1.6),以知方差和均值,当然数据方差有很多种(108种),分别求出概率
eion 2002-08-19
  • 打赏
  • 举报
回复
计算标准正态函数的概率??????????????????????

计算????????

标准正态函数的概率????????????

还是概率密度函数????

还是概率分布?????

摆脱,都是××××级的×××了,连概念还不会说
jie2002 2002-08-19
  • 打赏
  • 举报
回复
没有,就是要计算标准正态函数的概率,实在没办法就用积分算啊
begar 2002-08-19
  • 打赏
  • 举报
回复
up
Lotuspirit 2002-08-19
  • 打赏
  • 举报
回复
数值计算方法上应该有吧?
winco 2002-08-19
  • 打赏
  • 举报
回复
一下使用高斯-勒让德求积分方法解决
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>

#define MAX 4
#define PI 3.141592659897932384626433832795
/*//#define function(x) (x*x)//exp(x)*cos(x)//4.0/(1+x*x)//pow(x,9)
*/
#define epsilon3 0.01

double functi(double x)
{
double eve = 0.0; // 均值
double sigma = 1.0; // 方差
return 1./(sqrt(2*PI)*sigma)*exp(-(x-eve)*(x-eve)/(2*sigma*sigma));
}

double Gauss(double a, double b,double (*f)(double))
{
double A[7];
double X[7];
A[0]=0.1294849662;A[1]=0.1294849662;A[2]=0.2797053915;A[3]=0.2797053915;A[4]=0.3818300505;A[5]=0.3818300505;A[6]=0.4179591837;
X[0]=0.9491079123;X[1]=-0.9491079123;X[2]=0.7415311856;X[3]=-0.7415311856;X[4]=0.4058451514;X[5]=-0.4058451514;X[6]=0.0000000000;

double temp=0.0;
int i=0;
for(i=0;i<8;i++)
{
temp+=f((b-a)*X[i]/2.0+(b+a)/2.0)*A[i];//temp+=functi((b-a)*X[i]/2.0+(b+a)/2.0)*A[i];
}
temp=(b-a)*temp/2.0;
return temp;
}

double add(double a,double b,double (*pGauss)(double,double,double(*f)(double)))
{
int m,i=0,j=0;
double temp=0.0;
m=(int)((b-a)/epsilon3);
for(i=0;i<m;i++)
temp+=pGauss(a+(double)i*(b-a)/(double)m,a+(double)(i+1)*(b-a)/(double)m,functi);//Gauss(a+(double)i*(b-a)/(double)m,a+(double)(i+1)*(b-a)/(double)m,functi);

printf("OK!!!\n");
return temp;
}
void main(void)
{
printf("Please press any key to begin:\n");
printf("%18.14f\n",add(-1,1,Gauss}

lkjx82 2002-08-19
  • 打赏
  • 举报
回复
GZ
eion 2002-08-19
  • 打赏
  • 举报
回复
double f(double x)
{
double eve = 0.0; // 均值
double sigma = 1.0; // 方差
return 1./(sqrt(2*PI)*sigma)*exp(-(x-eve)*(x-eve)/(2*sigma*sigma));
}

double Int(double a, double b, double (*f)(double) )
{
double sum=0.0;
int num = 10000;
for(int i=0;i<num; i++) sum+= f(a+i*(b-a)/num)*(b-a)/num;
return sum;
}

void main()
{
printf(" Integra a from b is: %d", Int(-1,1,f));
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧