如何在 C# 中计算一维数组的二阶导数
How do I compute the second derivative of an one dimensional array in C#
如何在 C# 中计算一维数组的二阶导数?
有人做过吗?
您可以声明 returns 对序号的扩展方法:
public static IEnumerable<(T Previous, T Next)> PreviousAndNext<T>(this IEnumerable<T> self)
{
using (var iter = self.GetEnumerator())
{
if (!iter.MoveNext())
yield break;
var previous = iter.Current;
while (iter.MoveNext())
{
var next = iter.Current;
yield return (previous, next);
previous = next;
}
}
}
如果您想要 discrete derivative,即序号之间的差异,您可以这样做:myArray.PreviousAndNext().Select((p, n) => n-p)
。如果你想要二阶离散导数,你只需重复该函数,即
myArray.PreviousAndNext().Select((p, n) => n-p)
.PreviousAndNext().Select((p, n) => n-p);
您可以根据需要重复此模式多次。
如何在 C# 中计算一维数组的二阶导数? 有人做过吗?
您可以声明 returns 对序号的扩展方法:
public static IEnumerable<(T Previous, T Next)> PreviousAndNext<T>(this IEnumerable<T> self)
{
using (var iter = self.GetEnumerator())
{
if (!iter.MoveNext())
yield break;
var previous = iter.Current;
while (iter.MoveNext())
{
var next = iter.Current;
yield return (previous, next);
previous = next;
}
}
}
如果您想要 discrete derivative,即序号之间的差异,您可以这样做:myArray.PreviousAndNext().Select((p, n) => n-p)
。如果你想要二阶离散导数,你只需重复该函数,即
myArray.PreviousAndNext().Select((p, n) => n-p)
.PreviousAndNext().Select((p, n) => n-p);
您可以根据需要重复此模式多次。