返回导数=无穷大的解决方案

时间:2016-02-23 00:15:52

标签: c# calculus

这是一个数学问题,但是要尝试解决C#编程问题,所以我不确定这是否是最适合它的地方。

在下面的代码中,我可以得到Derivative:

var x = 13.399E+153;
var d = ((1 + x) * (1 - x));
Console.WriteLine("d = {0:0}", d);
Console.ReadLine();

13.399E + 153;这9个人经常出现。但如果x变为:

var x = 14.00E+153;

我得到了-Infinity。我已经做了一些研究,但不了解任何可能的解决方案。

网址:Mathematical function differentiation with C#? 还:Limit of the derivative of a function as x goes to infinity 我明白为什么会出现这种情况:

If the limit of f(x) f(x) exists, there is a horizontal asymptote. 
Therefore as the function approaches infinity it becomes more linear and 
...thus the derivative approaches zero. 
.

我的问题是,如果我将Derivative作为双重返回,那么解决方案是什么可以阻止它作为Infinity返回?我应该返回1还是Zero?

if (double.IsInfinity(Derivative))
{
return ?;
}

1 个答案:

答案 0 :(得分:0)

您得到负无穷大的结果,因为结果的数学值小于可以使用64位浮点数表示的最小值。这是完全正常的,我认为没有什么需要修复的。