exponenta event banner

polyval

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

Описание

пример

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

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

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

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

пример

[y,delta] = polyval(p,x,S) использует дополнительную структуру вывода 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 ^ = x x vеrx.

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

Примеры

свернуть все

Вычислите полином 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 .13x2 − 2 .21x + 5,99.

Дополнительные сведения см. в разделе Создание и вычисление полиномов.

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

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

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

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

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

Если данные в 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 ± приблизительно 95% интервала прогнозирования.

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

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