我想从 z[0]、tau[0] 到 z[2249]、tau[2249] 获取两个数据数组( z 和 tau )。
由于被积函数在 z=0.9, 1.125 处发散,我需要驯服发散,但首先,我想为我的程序制定简单的方案。
以下是我的数值积分C语言代码
#include <stdio.h>
#include <math.h>
int main(int argc, char **argv){
int Narray;
int k;
Narray = 2250;
double zeta[Narray];
double dzeta = 0.225/Narray;
double tau[Narray];
zeta[0]=0.9;
tau[0]=0;
for (k=1; k<Narray-1 ; k++){
zeta[k]=zeta[k-1]+dzeta;
tau[k]=tau[k-1]+dzeta*zeta[k]/sqrt(0.987654*(zeta[k]-0.9)*(9/8-zeta[k]));
printf("zeta = %lf tau = %lf \n", zeta[k], tau[k]);
}
return 0;
}
但是,当我在 ubuntu 中编译代码时,结果显示为 NaN...
此外,数据与 Wolframalpha 的计算不同。
(我采样了几个点并与 Wolfram alpha 进行了比较。)
我想问题出现在 zeta 方程上……我该如何解决这个问题?