Я аппроксимирую набор данных полиномом, чтобы позже найти кумулятивную функцию плотности. Я использую полином, так как не знаю распределения набора данных, которое может даже варьироваться, и потому что он должен быть полностью автоматизирован. Проблема в том, что в конце моего набора данных, когда полином достигает последних данных, они расходятся до бесконечности. Поскольку это должно аппроксимировать функцию плотности вероятности, этого не должно происходить, потому что это влияет на все результаты. Как я могу это исправить?

p=polyfit(X,N,21);
      x=linspace(0,4000,1000);
      y=polyval(p,x);

ПРИМЕЧАНИЕ. 

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech ,ME,M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

Самый простой ответ на это — задать вопрос. ПОЧЕМУ ВО ИМЯ БОГА И МАЛЕНЬКИХ ЗЕЛЕНЫХ ЯБЛОЧЕК ВЫ ИСПОЛЬЗУЕТЕ ПОЛИНОМ????? Ладно, может быть, я слишком строг к тебе. Polyfit для вас. Ничто в документации не говорит вам, что он делает глупости или что это фундаментальная природа полиномов. Где-то учителя должны научить вас, сразу после того, как они скажут вам, что вы МОЖЕТЕ использовать многочлен, что вы, вероятно, обычно не должны этого делать. А потом объяснить, почему нет.

Серьезно, НЕ ИСПОЛЬЗУЙТЕ ПОЛИНОМ. И НИКОГДА не используйте многочлен высокого порядка. Они отправляются в ад быстрее, чем низкоранговые. Полиномиальный порядок 21? СЛИШКОМ ВЫСОКО. Но тогда вообще не стоит использовать полином здесь.

Полиномы делают именно то, что вы видели. Они уходят в бесконечность. Думаю об этом. какое другое поведение вы можете ожидать? Может ли полином аппроксимировать функцию, которая выполняет нетривиальные (непостоянные) действия в некоторой области, а затем становится постоянной, когда x стремится к плюс-минус бесконечности? Думаю об этом. Полином никогда не может быть моделью процесса, который ведет себя как CDF. У вас есть этот многочлен действительно высокого порядка со степенью 21. X достигает 4000?

Что такое 4000²¹? Как насчет других номеров рядом?

4000^21
ans =
    4.398e+75
3950^21
ans =
   3.3771e+75
3500^21
ans =
   2.6634e+74

Наивысшая степень X с ненулевым коэффициентом будет доминировать над поведением многочлена, когда X переходит к +/-inf. Таким образом, ваш многочлен высокого порядка производит полный и полный мусор. Вы знаете, что это поведение, которое вы видите. И простая математика говорит вам, что другого поведения от полиомиальной модели ожидать нельзя. Это именно то поведение, которое вы ожидаете от полинома, врожденное, фундаментальное поведение, которое существует в любом полиноме, и что-то, что вы не можете изменить.

Очевидный ответ на мой первоначальный вопрос: вы понятия не имеете, что еще можно использовать. Извините, но это явно так.

И ответом на это является использование сплайна. Есть несколько вариантов, которые вы могли бы использовать там. Самый простой — это pchip, который будет интерполировать ваши данные. (Конечно, вы могли бы просто попробовать interp1, который может использовать pchip или различные опции, которые вы указали бы для использования.)

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ