Я столкнулся с Exception error
(неожиданно) при выполнении некоторых параллельных статистических тестов с Math.Net Numerics
, и я хотел бы знать причину.
using MathNet.Numerics.Distributions;
....
var stable = new Stable(1.7, -0.7, 0.0087, 0.9103);
double b = stable.Density(3.2);
double a = stable.Density(5.1);
Console.WriteLine(b);
Console.WriteLine(a);
Ошибка: необработанное исключение типа System.NotSupportedException
произошло в MathNet.Numerics.dll
Я ожидал получить b = 2.2484e-06
, a = 4.3977e-07
.
Ps: другие классические распределения, такие как Gamma
, работают без проблем (например, распределения вероятностей ), фактически исключая любые проблемы с установкой пакета
Лучший,
EDIT: из Github репозиторий Я добавил Stable.cs в свой проект, который включает все свойства и методы.
На самом деле свойства работают нормально. См. ниже иллюстрацию из Program.cs:
Stable st = new Stable(1.7, -0.7, 0.0087, 0.9103); // correct instantiation
Console.WriteLine(string.Format(" Characteristic exponent: {0}\n
Skewness: {1}\n Scale: {2}\n Location: {3}" ,st.Alpha, st.Beta,
st.Scale,st.Location));
Однако, на мой взгляд, нет ничего нелогичного в вызове метода Density
на основе object
: st.Density(3.2)
, который должен возвращать:
PDF(_alpha, _beta, _scale, _location, x);
Таким образом, заманчиво заключить проблему method definition
, если только люди не возражают против этого мнения с помощью веских иллюстраций.
Более того, при особых значениях stable parameters
(например, _alpha = 2.0
и т. д.) определенный PDF
возвращает 0
(странно)