Среднее значение A * B.Так что вы можете решить для, возможно, A с точки зрения среднего (мю) и B?
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))
На самом деле это очень «нормальная», то есть гауссовская кривая.