1

Как вычислить T.INV() в C# без объекта рабочей книги excel. Есть ли какая-либо прямая формула или класс, которые могут мне помочь? Я уже использовал пространство имен System.Web.UI.DataVisualization, но это не дает ожидаемого результата. Благодаря Shakeb ХанКак вычислить T.INV() в C# без объекта рабочей книги excel

public static double InverseTDistributionfun(int DF, double probability) 
{ 
    double Tinv; 
    try 
    { 
     chart.Charting.Chart objChart = new chart.Charting.Chart(); 
     Tinv = objChart.DataManipulator.Statistics.TDistribution(probability,DF, true); 
     // value = c16 + dup * y30; 

    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
    return Tinv; 
} 

[Microsoft.SqlServer.Server.SqlProcedure] 
public static double SQLCLRCsharpSP(int DF, double probability) 
{ 
    double _sum = 0.00; 
    try 
    { 

     //if (type == "C") 
     _sum = InverseTDistributionfun(DF, probability); 
     //if (type == "A") 
      //_sum = AlgTInvFun(probability, DF); 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
    return _sum; 
} 
+0

Можете ли вы показать код, который вы пытаетесь использовать? – doctorlove

+0

Это дубликат http://stackoverflow.com/questions/20963192/c-sharp-equivalent-of-excels-tinv-function? – doctorlove

+0

это не дубликаты TINV() и T.INV() - разные функции. Он вводит в версию 2010 года вперед. –

ответ

0

Вы можете посмотреть точный путь в Math.NET (MIT/X11).

double result = MathNet.Numerics.ExcelFunctions.TInv (probability, degFreedom); 

, который так же, как:

double result = -StudentT.InvCDF(0d, 1d, degFreedom, probability/2); 

Вы найдете полное решение here. Если это не возвращает те же значения, то вы не используете функцию tinv.