用c语言求 Y(n)=∫(0到无穷)(e的-α x方次幂)乘以(x的n次方) dx其中n是0或整数,辛苦二楼了,不过e指数中x是二次幂而不是一次幂.我只考了二级,略懂而已关键在于不会求导.学物理的或
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/20 05:25:38
![用c语言求 Y(n)=∫(0到无穷)(e的-α x方次幂)乘以(x的n次方) dx其中n是0或整数,辛苦二楼了,不过e指数中x是二次幂而不是一次幂.我只考了二级,略懂而已关键在于不会求导.学物理的或](/uploads/image/z/2536070-14-0.jpg?t=%E7%94%A8c%E8%AF%AD%E8%A8%80%E6%B1%82+Y%EF%BC%88n%EF%BC%89%3D%E2%88%AB%EF%BC%880%E5%88%B0%E6%97%A0%E7%A9%B7%EF%BC%89%EF%BC%88e%E7%9A%84-%CE%B1+x%E6%96%B9%E6%AC%A1%E5%B9%82%EF%BC%89%E4%B9%98%E4%BB%A5%EF%BC%88x%E7%9A%84n%E6%AC%A1%E6%96%B9%EF%BC%89+dx%E5%85%B6%E4%B8%ADn%E6%98%AF0%E6%88%96%E6%95%B4%E6%95%B0%2C%E8%BE%9B%E8%8B%A6%E4%BA%8C%E6%A5%BC%E4%BA%86%2C%E4%B8%8D%E8%BF%87e%E6%8C%87%E6%95%B0%E4%B8%ADx%E6%98%AF%E4%BA%8C%E6%AC%A1%E5%B9%82%E8%80%8C%E4%B8%8D%E6%98%AF%E4%B8%80%E6%AC%A1%E5%B9%82.%E6%88%91%E5%8F%AA%E8%80%83%E4%BA%86%E4%BA%8C%E7%BA%A7%2C%E7%95%A5%E6%87%82%E8%80%8C%E5%B7%B2%E5%85%B3%E9%94%AE%E5%9C%A8%E4%BA%8E%E4%B8%8D%E4%BC%9A%E6%B1%82%E5%AF%BC.%E5%AD%A6%E7%89%A9%E7%90%86%E7%9A%84%E6%88%96)
用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;
}