用c语言求 Y(n)=∫(0到无穷)(e的-α x方次幂)乘以(x的n次方) dx其中n是0或整数,辛苦二楼了,不过e指数中x是二次幂而不是一次幂.我只考了二级,略懂而已关键在于不会求导.学物理的或
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/27 09:53:23
用c语言求 Y(n)=∫(0到无穷)(e的-α x方次幂)乘以(x的n次方) dx其中n是0或整数,辛苦二楼了,不过e指数中x是二次幂而不是一次幂.我只考了二级,略懂而已关键在于不会求导.学物理的或
用c语言求 Y(n)=∫(0到无穷)(e的-α x方次幂)乘以(x的n次方) dx
其中n是0或整数,
辛苦二楼了,不过e指数中x是二次幂而不是一次幂.我只考了二级,略懂而已关键在于不会求导.
学物理的或数学的肯定会明白为何要求导.
希望哪位能人能奉上完整程序.只要程序好,
用c语言求 Y(n)=∫(0到无穷)(e的-α x方次幂)乘以(x的n次方) dx其中n是0或整数,辛苦二楼了,不过e指数中x是二次幂而不是一次幂.我只考了二级,略懂而已关键在于不会求导.学物理的或
看错,我已经修改了,如下图
代码如下:
#include<stdio.h>
#include<math.h>
#define a 1
#define PEC 0.0001
#define DX 0.01
#define PI 3.1415926
double cal(double x,int n){
double temp = exp(-a*x*x);
temp*=pow(x,n);
return temp;
}
double cal1(int n){
double temp=0.0;
if(n==0)
return 0.5*sqrt(PI/a);
else if(n==1)
return 1/(2*a);
else{
return ((n+1)/a)*cal1(n-2);
}
}
int main(){
double pre=1;//当前cal计算的数值
double result=0;//当前计算结果数值
int n=0;
for(int i=1;pre>PEC;result+=pre*DX,i++){
pre=cal(1.0*i*DX,n);
}
printf("fun1:%lf\n",result);
printf("fun2:%lf\n",cal1(n));
return 0;
}