/* ex4-3.c dased on Trapezoidol Rule is
#include <stdio.h>
#include <math.h>
#define PI 3.1415926
#define F(x) (exp(xx/2))
void main(){
int n,i;
double a,b,x,tn,h,sum=0.0;
scanf("n=%d a=%lf b=%lf ",&n,&a,&b);
h=(b-a)/n;
x=a;
for(i=1;i<=n-1;i++){
x=x+h;
sum=sum+F(x);
}
tn=(1.0/sqrt(2PI))(h/2.0)(F(a)+F(b)+2.0*sum);
printf("T%d=%10.6lf\n",n,tn);
return;
}
你好同学,为你解答(如有帮助,还麻烦题主给个宝贵的采纳支持一下答主答题哟,谢谢啦(づ ̄3 ̄)づ╭❤~):
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
double f(double x){ //标准正态分布函数
return 1/sqrt(2*PI)*exp(-x*x/2);
}
// 梯形法
double trapz(double a, double b, int n){
int i;
double h,s;
s = 0;
h = (b-a)/(n-1);
for(i=1;i<n-1;i++){
s+=f(a+i*h)*h;
}
s+=(f(a)+f(b))*0.5*h;
return s;
}
int main(){
double a,b;
double tn; //面积
int n;
// 上下限
scanf("n=%d a=%lf b=%lf", &n, &a, &b);
tn = trapz(a, b, n);//梯形法,可以改成101、1001
printf("T%d=%10.6lf\n",n,tn);
return 0;
}
示例:
n=101 a=-5 b=5
T101= 0.999999