平均は A*B です。では、おそらく A を平均 (mu) と B の観点から解くことができますか?
A = mu/B
もちろん、これは B を知らなければ意味がありません。
最初の表情を見てください。代用できますか?
gamcdf(2.11, mu/B, B) - gamcdf(1.61, mu/B, B) = 0.90
これで近づきますか?多分。不完全なガンマ関数自体を除いて、有用なシンボリック ソリューションはありません。matlabで不明な1つの方程式を数値的に解くにはどうすればよいですか? 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))
実際、これは非常に「通常の」、つまりガウス曲線です。