Вы столкнулись с числовыми проблемами, в частности catastrophic cancellation. Попробуйте черчения только знаменатель вашей функции скорости опасности, the complementary CDF, на semilogy
участке:
x = 0:0.001:2.5;
semilogy(x,1-cdf('rayl',x,sqrt(1/18)))
Как вы можете видеть, есть вопросы немного, прежде чем х = 2, когда знаменатель равен примерно machine epsilon , eps
. Это когда cdf('rayl',x,sqrt(1/18))
около 1.
К счастью, Matlab обеспечивает способ обойти это с опцией, которая вычисляет комплементарную CDF или хвостовой вероятностью ВПРА, непосредственно через 'upper'
варианта для cdf
:
x = 0:0.001:2.5;
HR = pdf('rayl',x,sqrt(1/18))./cdf('rayl',x,sqrt(1/18),'upper');
plot(x,HR)
, который теперь возвращает прямую линию с наклоном 18, как и ожидалось. Функция raylcdf
также поддерживает эту опцию.
Для тех, кто считает это неясным, что непонятно? Просто определение «смешно»? Я думаю, что это довольно ясно, что это числовая проблема. – horchler
Описание «funny», конечно, не полезно, и чтобы выяснить, в каком смысле это «смешно», нужно запустить код Matlab (который сам по себе требует доступа к инструменту «Статистика» в дополнение к Matlab). Вы сокращаете, кто может и кто хочет выяснить, каков реальный вопрос из-за того, как это написано. Предполагается, что вопросы должны быть самодостаточными, чтобы избежать этого и предоставить значение архива. Как оказалось, этот вопрос не имеет ничего общего с Matlab, поэтому лучший письменный вопрос будет иметь потенциальную ценность для многих пользователей. – Brick
@ Кирпич: Я вижу ваши точки. Это мой первый пост здесь. Я постараюсь быть более конкретным в следующий раз! – Matt