如何在 C# 中計算一維陣列的二階導數?有沒有人這樣做過?
uj5u.com熱心網友回復:
您可以宣告一個回傳成對序列號的擴展方法:
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;
}
}
}
如果你想要離散導數,即序列號之間的差異,你會這樣做:myArray.PreviousAndNext().Select((p, n) => n-p)。如果你想要第二個離散導數,你只需重復這個函式,即
myArray.PreviousAndNext().Select((p, n) => n-p)
.PreviousAndNext().Select((p, n) => n-p);
您可以根據需要多次重復此模式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480081.html
