Чтобы найти производную логарифмической функции:
, где y = log b u
dy / dx = log b (e) * u ' / u
, где u ' = du / dx
http://www.intmath.com/differentiation-transcendental/5-derivative-logarithm.php#derivbases
Итак, чтобыответьте на ваш вопрос, нам нужно знать производную от A(t)
.Если вы не знаете, что такое A (t) раньше времени, вам нужно будет найти какой-то универсальный решатель или потребовать, чтобы входные данные включали в себя как функцию A, так и ее производную.
public double Log10Derivative(Func<double, double> a,
Func<double, double> aPrime,
double t)
{
return Math.Log10(Math.E) * (aPrime(t) / a(t));
}
Что касается выполнения log
для массива, я либо никогда не узнал этого, либо забыл, как.
Редактировать
Это должно дать вам приближение:
public double Log10Derivative(Func<double, double> a,
double t)
{
const double reallySmallNumber = double.Epsilon;
var aPrimeEst = (a(t) - a(t + reallySmallNumber)) / reallySmallNumber;
return Math.Log10(Math.E) * (aPrimeEst / a(t));
}