polyval

Полиномиальная оценка

Описание

пример

y = polyval(p,x) вычисляет полином p в каждой точке x. Аргумент p является вектором длины n+1 элементами которых являются коэффициенты (в нисходящих степенях) nполином I-й степени:

p(x)=p1xn+p2xn1+...+pnx+pn+1.

Полиномиальные коэффициенты в p могут быть вычислены для различных целей функциями, такими как polyint, polyder, и polyfit, но можно задать любой вектор для коэффициентов.

Чтобы вычислить полином в матричном смысле, используйте polyvalm вместо этого.

пример

[y,delta] = polyval(p,x,S) использует необязательную структуру output S произведено polyfit чтобы сгенерировать оценки ошибок. delta является оценкой стандартной ошибки в прогнозировании будущего наблюдения в x по p(x).

пример

y = polyval(p,x,[],mu) или [y,delta] = polyval(p,x,S,mu) используйте необязательный выход mu произведено polyfit для центрирования и масштабирования данных. mu(1) является mean(x), и mu(2) является std(x). Используя эти значения, polyval центры x в нуле и масштабирует его, чтобы иметь единичное стандартное отклонение,

x^=xx¯σx.

Это центрирующее и масштабирующее преобразование улучшает числовые свойства полинома.

Примеры

свернуть все

Вычислите полином p(x)=3x2+2x+1 в точках x=5,7,9. Полиномиальные коэффициенты могут быть представлены вектором [3 2 1].

p = [3 2 1];
x = [5 7 9];
y = polyval(p,x)
y = 1×3

    86   162   262

Вычислите определенный интеграл

I=-13(3x4-4x2+10x-25)dx.

Создайте вектор, чтобы представлять полиномиальный интегранд 3x4-4x2+10x-25. x3 термин отсутствует и, таким образом, имеет коэффициент 0.

p = [3 0 -4 10 -25];

Использование polyint для интегрирования полинома с помощью константы интегрирования, равной 0.

q = polyint(p)
q = 1×6

    0.6000         0   -1.3333    5.0000  -25.0000         0

Найдите значение интеграла путем оценки q на пределах интегрирования.

a = -1;
b = 3;
I = diff(polyval(q,[a b]))
I = 49.0667

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

Создайте несколько векторов выборочных точек выборочных данных (x, y). Использование polyfit для аппроксимации полинома первой степени к данным. Задайте два выхода, чтобы вернуть коэффициенты для линейной подгонки, а также структуру оценки ошибки.

x = 1:100; 
y = -0.3*x + 2*randn(1,100); 
[p,S] = polyfit(x,y,1); 

Оцените аппроксимацию полиномом первой степени в p в точках в x. Задайте структуру оценки ошибки как третий вход так, чтобы polyval вычисляет оценку стандартной ошибки. Стандартная оценка ошибки возвращается в delta.

[y_fit,delta] = polyval(p,x,S);

Постройте график исходных данных, линейной подгонки и 95% интервала предсказания y±2Δ.

plot(x,y,'bo')
hold on
plot(x,y_fit,'r-')
plot(x,y_fit+2*delta,'m--',x,y_fit-2*delta,'m--')
title('Linear Fit of Data with 95% Prediction Interval')
legend('Data','Linear Fit','95% Prediction Interval')

Figure contains an axes. The axes with title Linear Fit of Data with 95% Prediction Interval contains 4 objects of type line. These objects represent Data, Linear Fit, 95% Prediction Interval.

Составьте таблицу населения данных за 1750 - 2000 годы и постройте графики точек данных.

year = (1750:25:2000)';
pop = 1e6*[791 856 978 1050 1262 1544 1650 2532 6122 8170 11560]';
T = table(year, pop)
T=11×2 table
    year       pop   
    ____    _________

    1750     7.91e+08
    1775     8.56e+08
    1800     9.78e+08
    1825     1.05e+09
    1850    1.262e+09
    1875    1.544e+09
    1900     1.65e+09
    1925    2.532e+09
    1950    6.122e+09
    1975     8.17e+09
    2000    1.156e+10

plot(year,pop,'o')

Figure contains an axes. The axes contains an object of type line.

Использование polyfit с тремя выходами для аппроксимации полинома 5-й степени с помощью центрирования и масштабирования, что улучшает числовые свойства задачи. polyfit центрирует данные в year в 0 и масштабирует его, чтобы иметь стандартное отклонение 1, которое избегает плохо обусловленной матрицы Вандермонда в вычислении аппроксимации.

[p,~,mu] = polyfit(T.year, T.pop, 5);

Использование polyval с четырьмя входами для оценки p с масштабированными годами, (year-mu(1))/mu(2). Постройте график результатов по сравнению с исходными годами.

f = polyval(p,year,[],mu);
hold on
plot(year,f)
hold off

Figure contains an axes. The axes contains 2 objects of type line.

Входные параметры

свернуть все

Полиномиальные коэффициенты, заданные как вектор. Для примера, вектор [1 0 1] представляет полином x2+1, и вектор [3.13 -2.21 5.99] представляет полином 3.13x22.21x+5.99.

Для получения дополнительной информации см. Раздел «Создание и оценка полиномов».

Типы данных: single | double
Поддержка комплексного числа: Да

Точки запроса, заданные как вектор. polyval вычисляет полином p в точках в x и возвращает соответствующие значения функций в y.

Типы данных: single | double
Поддержка комплексного числа: Да

Структура оценки ошибок. Эта структура является необязательным выходом от [p,S] = polyfit(x,y,n) который может использоваться для получения оценок ошибок. S содержит следующие поля:

ОбластьОписание
RТреугольный множитель из QR-разложения матрицы Вандермонда x
dfСтепени свободы
normrНорма Norm of residuals

Если данные в y является случайным, тогда оценка ковариационной матрицы p является (Rinv*Rinv')*normr^2/df, где Rinv - обратная переменная R.

Значения центрирования и масштабирования, заданные как двухэлементный вектор. Этот вектор является необязательным выходом от [p,S,mu] = polyfit(x,y,n) который используется для улучшения числовых свойств подбора кривой и оценки полинома p. Значение mu(1) является mean(x), и mu(2) является std(x). Эти значения используются для центрирования точек запроса в x в нуле с единичным стандартным отклонением.

Задайте mu для оценки p в масштабируемых точках, (x - mu(1))/mu(2).

Выходные аргументы

свернуть все

Значения функции, возвращенные как вектор того же размера, что и точки запроса x. Вектор содержит результат оценки полинома p в каждой точке x.

Стандартная ошибка для предсказания, возвращенная как вектор того же размера, что и точки запроса x. Обычно интервал y ± Δ соответствует примерно 68% интервалу предсказания для будущих наблюдений больших выборок, и y ± 2 Δ примерно 95% интервала предсказания.

Если коэффициенты в p являются оценками методом наименьших квадратов, вычисленными polyfit, и ошибки во входных данных в polyfit являются независимыми, нормальными и имеют постоянное отклонение, тогда y ± Δ составляет, по крайней мере, 50% интервала предсказания.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Представлено до R2006a