返回导数 = 无穷大的解决方案
本文关键字:解决方案 无穷大 返回 | 更新日期: 2023-09-27 18:35:42
这是一个
数学问题,但要尝试解决 C# 编程问题,所以我不确定这里是否是最好的地方。
在下面的代码中,我可以获取导数:
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;
我得到-无限。我已经做了一些研究,但不明白任何可能的解决方案。
URL:用 C# 进行数学函数微分?另外:当 x 走向无穷大时函数的导数极限但是,我确实理解为什么会出现这种情况:
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.
.
我的问题是,例如,如果我将导数作为双精度返回,那么防止它作为无穷大返回的解决方案是什么?我应该返回 1 还是零?
if (double.IsInfinity(Derivative))
{
return ?;
}
您得到负无穷大的结果,因为结果的数学值小于可以使用 64 位浮点数表示的最小值。这是完全正常的,我看不到任何需要修复的内容。