2014-06-20 13 views
7

Math.Net Kütüphanesi için çok yeni ve bir üstel fonksiyona dayalı eğri uydurma yapmaya çalışırken sorun yaşıyorum.Math.Net kullanarak Üssel tabanlı Eğri-Fit

f(x) = a*exp(b*x) + c*exp(d*x) 
Coefficients (with 95% confidence bounds): 
a = 29.6  (29.49  , 29.71) 
b = 0.000408 ( 0.0003838, 0.0004322) 
c = -6.634  (-6.747 , -6.521) 
d = -0.03818 (-0.03968 , -0.03667) 
:

blah

MATLAB aşağıdaki parametreleri hesaplar: Aşağıdaki resimde gösterildiği gibi MATLAB ben, oldukça iyi sonuçlar elde Kullanılması

f(x) = a*exp(b*x) + c*exp(d*x) 

: Daha spesifik Bu fonksiyonu kullanmak niyetinde

Bu sonuçları Math.Net kullanarak elde etmek mümkün mü?

cevap

1

Hayır, şu anda üstel destek olmadığını görüyoruz. kırıldığında vaka linkinde çoğaltılamaz

https://discuss.mathdotnet.com/t/exponential-fit/131

İçindekiler:

Sen, dönüştürerek, benzer olmayan doğrusallaştırılması için bir bakım sorumlusunun geçici çözüm önermektedir nerede Ancak Math.NET forumlarında bir tartışma var dönüşüm ile doğrusal modeller .

double[] Exponential(double[] x, double[] y, 
    DirectRegressionMethod method = DirectRegressionMethod.QR) 
{ 
    double[] y_hat = Generate.Map(y, Math.Log); 
    double[] p_hat = Fit.LinearCombination(x, y_hat, method, t => 1.0, t => t); 
    return new[] {Math.Exp(p_hat[0]), p_hat[1]}; 
} 

Örnek kullanım:

double[] x = new[] { 1.0, 2.0, 3.0 }; 
double[] y = new[] { 2.0, 4.1, 7.9 }; 
double[] p = Exponential(x,y); // a=1.017, r=0.687 
double[] yh = Generate.Map(x,k => p[0]*Math.Exp(p[1]*k)) // 2.02, 4.02, 7.98 
aşağıda gerektiği eser çizgisinde şey
2

Math.net'e baktığımızda, Math.net'in çeşitli regresyon türleri yaptığı görülür; bununla birlikte işleviniz bir çeşit yineleme yöntemi gerektirir. Örneğin, her bir yinelemede lineer bir gerilemeyi doğrusal denklemlerin çözümü için kullanacağınız Gauss-Newton metodu, ancak bu metodu yazmanın bazı “manuel” çalışmalarını gerektirecektir.

1

Cevap şudur: henüz değil, inanıyorum. Temel olarak, tüm csmpfit paketinin katkısı var, ancak henüz Math.Net'e entegre edilecek. Bunu ayrı bir kitaplık olarak kullanabilir ve sonra tam entegrasyon Math.Net'e geçtikten sonra. Link http://csmpfit.codeplex.com