Выходной аргумент 3rd
изменяет независимую переменную с
y
на
normalized_y = (y-means(y))/std(y)
Это называется нормализация , новый normalized_y
будет 0
как означает и 1
как стандартное отклонение
Почему нормализация?
- Если независимая переменная
y
может быть установлена для Гауссова распределения , это приведет к лучшей оценке коэффициента полинома, чем ненормализованный метод - Если это возможноне подходит для гауссова распределения нет необходимости нормализовать
y
, так как нормализованный метод дает аналогичные результаты по сравнению с ненормализованным методом
Подтверждение [p, ~mu] = polyfit(...)
использует нормализованный ввод
% I increase the step to make the plot clear
x = (0:5:95)/180*pi;
cooefs_w_0 = [1,4, 5, 9];
y = polyval(cooefs_w_0(end:-1:1), x);
% y normalization
normalized_y = (y-mean(y))/std(y);
[p,~,mu] = polyfit(y, x, 5);
% polyfit with one output argument but input changed to the normalized y
p_normalized = polyfit(normalized_y, x, 5);
% Check if the coefficients are the same
isequal(p, p_normalized);
% ans =
logical
1
Оценка зависимой переменной x
с использованием polyval()
- Без нормализации , просто используйте коэффициенты, полученные изаппроксимация
p_original = polyfit(y, x, 5);
original_prediction = polyval(p_original, y);
- При нормализации используйте коэффициенты, полученные из фитинга, а также реальное среднее и стандартное отклонение независимой переменной
y
определяется как mu
[p,~,mu] = polyfit(y, x, 5);
normalized_prediction = polyval(p, y, [], mu);
Поскольку y
не очень хорошо соответствует гауссову распределению, две оценки похожи, но не совсем одинаковы
График