平均值是A * B。那麼你是否可以用平均值(μ)和B來解答A?
A = mu/B
當然,除非你知道B,否則這沒有好處。
看看你的第一個表情。你可以替代嗎?
gamcdf(2.11, mu/B, B) - gamcdf(1.61, mu/B, B) = 0.90
這會讓你更接近嗎?也許。除了不完整的伽馬函數本身,將沒有可用的有用符號解決方案。你如何在一個未知的matlab中以數值方式求解單個方程?使用fzero。
當然,fzero會查找零值。但通過減去0.90,這已經解決了。
我們可以定義一個fzero可以使用的函數嗎?使用功能句柄。
>> mu = 1.86;
>> gamfun = @(B) gamcdf(2.11, mu/B, B) - gamcdf(1.61, mu/B, B) - 0.90;
所以試試吧。在我們這樣做之前,我總是建議密謀。
>> ezplot(gamfun)
嗯。該情節表明,可能很難找到你的函數的零。如果你確實嘗試過,你會發現在這裏需要fzero的良好起始值。
對不起,我第一次嘗試。更好的起始值爲fzero,再加上一些更多的繪圖確實給出了產生所需形狀的伽瑪分佈。
>> B = fzero(gamfun,[.0000001,.1])
B =
0.0124760672290871
>> A = mu/B
A =
149.085442218805
>> ezplot(@(x) gampdf(x,A,B))
事實上,這是一個非常「正常的」,即高斯曲線。
太棒了,謝謝你的詳細解答。 fzero功能非常棒!不過,我有點沮喪,沒有解決方案,因爲我試圖複製的一篇論文的作者說,他使用了具有這些特徵的分佈作爲MCMC模擬的先驗分佈。我不認爲你對MCMC很熟悉,是嗎?如果你是,你會介意快速看一下本文的第11頁,並讓我知道我是否誤解了某些東西?以下是該論文的網址:http://bit.ly/9uWlLN。 – jefflovejapan 2010-09-11 12:22:54
我之前給出的細節是圖表tau中的第一個細節。 – jefflovejapan 2010-09-11 13:58:13
我通讀報紙,然後做了更多的演奏。我需要爲fzero使用更好的起始值,再加上一個區間來包含解決方案以獲得收斂。 – 2010-09-11 14:09:25