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

本文关键字:解决方案 无穷大 返回 | 更新日期: 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 位浮点数表示的最小值。这是完全正常的,我看不到任何需要修复的内容。