using System;
class Condi_Test
{
static double sinc(double x)
{
return x!=0.0 ? Math.Sin(x)/x:1.0;
}
static void Main()
{
Console.WriteLine(sinc(0.2));
Console.WriteLine(sinc(0.1));
Console.WriteLine(sinc(0.0));
}
}运算结果:
0.993346653975306
0.998334166468282
1这个sinc(0.2)...是什么意思啊,为什么前2个的运算结果是0.993346653975306
0.998334166468282 谢谢拉
class Condi_Test
{
static double sinc(double x)
{
return x!=0.0 ? Math.Sin(x)/x:1.0;
}
static void Main()
{
Console.WriteLine(sinc(0.2));
Console.WriteLine(sinc(0.1));
Console.WriteLine(sinc(0.0));
}
}运算结果:
0.993346653975306
0.998334166468282
1这个sinc(0.2)...是什么意思啊,为什么前2个的运算结果是0.993346653975306
0.998334166468282 谢谢拉
其中x=0这点的值通过极限定义为1.
对于绝对值非常小的x,其实最好采用sinc(x)~=1-x^2/6来计算精度更加高一些
否则返回Math.Sin(x)/x