Contenu principal

polyval

Description

y = polyval(p,x) évalue le polynôme p à chaque point de x. L’argument p est un vecteur de longueur n+1 dont les éléments sont les coefficients (en puissances décroissantes) d’un polynôme de degré n :

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

Les coefficients polynomiaux de p peuvent être calculés à diverses fins par des fonctions comme polyint, polyder et polyfit mais vous pouvez spécifier n’importe quel vecteur pour les définir.

Pour évaluer un polynôme au sens matriciel, utilisez plutôt polyvalm.

exemple

[y,delta] = polyval(p,x,S) utilise la structure de sortie facultative S produite par polyfit pour générer des estimations d’erreur. delta est une estimation de l’erreur standard de prédiction d’une observation future en x par p(x).

exemple

y = polyval(p,x,[],mu) ou [y,delta] = polyval(p,x,S,mu) utilise la sortie facultative mu produite par polyfit pour centrer les données et les mettre à l’échelle. mu(1) est mean(x) et mu(2) est std(x). À l’aide de ces valeurs, polyval centre x sur zéro et le met à l’échelle pour obtenir un écart-type unitaire,

x^=xx¯σx.

Cette transformation par centrage et mise à l’échelle améliore les propriétés numériques du polynôme.

exemple

Exemples

réduire tout

Évaluez le polynôme p(x)=3x2+2x+1 aux points x=5,7,9. Les coefficients polynomiaux peuvent être représentés par le vecteur [3 2 1].

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

    86   162   262

Évaluez l’intégrale définie.

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

Créez un vecteur pour représenter le polynôme à intégrer 3x4-4x2+10x-25. Le terme x3 est absent et a donc le coefficient 0.

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

Utilisez polyint pour intégrer le polynôme avec une constante d’intégration égale à 0.

q = polyint(p)
q = 1×6

    0.6000         0   -1.3333    5.0000  -25.0000         0

Déterminez la valeur de l’intégrale en évaluant q aux limites d’intégration.

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

Ajustez un modèle linéaire sur un jeu de points de données et tracez les résultats, en incluant une estimation de l’intervalle de prédiction à 95 %.

Créez quelques exemples de vecteurs de points de données (x,y). Utilisez polyfit pour ajuster un polynôme du premier degré sur les données. Spécifiez deux sorties pour renvoyer les coefficients de l'ajustement linéaire ainsi que la structure d’estimation d’erreurs.

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

   -0.3142    0.9614

S = struct with fields:
           R: [2×2 double]
          df: 98
       normr: 22.7673
    rsquared: 0.9407

Évaluez la correspondance du polynôme de premier degré dans p au niveau des points de x. Spécifiez la structure d’estimation d’erreurs en tant que troisième entrée pour que polyval calcule une estimation d’erreur standard. L’estimation de l’erreur standard est renvoyée dans delta.

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

Tracez les données d'origine, l'ajustement linéaire et l’intervalle de prédiction à 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 object. The axes object with title Linear Fit of Data with 95% Prediction Interval contains 4 objects of type line. One or more of the lines displays its values using only markers These objects represent Data, Linear Fit, 95% Prediction Interval.

Créez une table de données démographiques pour les années 1750 à 2000 et tracez les points de données.

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 object. The axes contains a line object which displays its values using only markers.

Utilisez polyfit avec trois sorties pour ajuster un polynôme du 5e degré en utilisant le centrage et la mise à l’échelle, ce qui améliore les propriétés numériques du problème. polyfit centre les données sur year au niveau 0 et les met à l'échelle pour obtenir un écart-type de 1, ce qui évite la création d’une matrice de Vandermonde mal conditionnée dans le calcul de l'ajustement.

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

Utilisez polyval avec quatre entrées pour évaluer p avec les années mises à l’échelle, (year-mu(1))/mu(2). Tracez les résultats par rapport aux années d’origine.

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

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

Arguments d'entrée

réduire tout

Coefficients polynomiaux, spécifiés sous forme de vecteur. Par exemple, le vecteur [1 0 1] représente le polynôme x2+1, et le vecteur [3.13 -2.21 5.99] représente le polynôme 3.13x22.21x+5.99.

Pour plus d’informations, consultez Créer et évaluer des polynômes.

Types de données : single | double
Support des nombres complexes : Oui

Points de requête, spécifiés sous forme de vecteur. polyval évalue le polynôme p aux points de x et renvoie les valeurs correspondantes de la fonction dans y.

Types de données : single | double
Support des nombres complexes : Oui

Structure d’estimation des erreurs. Cette structure est la deuxième sortie dans la syntaxe [p,S] = polyfit(x,y,n). Spécifiez S comme entrée de la fonction polyval pour obtenir des estimations d’erreur. S contient les champs du tableau suivant.

ChampDescription
RFacteur R triangulaire (éventuellement permuté) d’une décomposition QR de la matrice de Vandermonde de x
dfDegrés de liberté
normrNorme des résidus
rsquaredCoefficient de détermination ou R au carré (non ajusté)

Si les données de y sont aléatoires, une estimation de la matrice de covariance de p est (Rinv*Rinv')*normr^2/df, où Rinv est l’inverse de R.

Valeurs de centrage et de mise à l’échelle, spécifiées sous forme d’un vecteur à deux éléments. Ce vecteur est une sortie facultative de [p,S,mu] = polyfit(x,y,n) qui est utilisée pour améliorer les propriétés numériques de l’ajustement et de l’évaluation du polynôme p. La valeur mu(1) est mean(x) et mu(2) est std(x). Ces valeurs permettent de centrer les points de requête dans x sur zéro avec un écart-type unitaire.

Spécifiez mu pour évaluer p aux points mis à l’échelle (x - mu(1))/mu(2).

Arguments de sortie

réduire tout

Valeurs de la fonction, renvoyées sous forme d’un vecteur de même taille que les points de requête x. Ce vecteur contient le résultat de l’évaluation du polynôme p à chaque point de x.

Erreur standard de prédiction, renvoyée sous forme d’un vecteur de même taille que les points de requête x. En général, un intervalle de y ± Δ correspond à un intervalle de prédiction à environ 68 % pour les observations futures d’échantillons volumineux et y ± 2Δ correspond à un intervalle de prédiction à environ 95 %.

Si les coefficients de p sont des estimations par moindres carrés calculées par polyfit et que les erreurs dans les données en entrée de polyfit sont indépendantes et normales avec une variance constante, y ± Δ est un intervalle de prédiction à au moins 50 %.

Capacités étendues

développer tout

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit avant R2006a