Contenu principal

polyval

R2026b

Description

y = polyval(coeffs,x) évalue le polynôme défini par le vecteur de coefficients coeffs à chaque point de x. Le vecteur coeffs est de longueur n+1 et contient les coefficients d’un polynôme de degré n nommé p en puissances décroissantes :

p(x)=coeffs(1)⋅xn+coeffs(2)⋅xn−1+...+coeffs(n)⋅x+coeffs(n+1).

Les coefficients polynomiaux de coeffs 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(coeffs,x,fitStats) utilise la structure de sortie facultative fitStats 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 coeffs(x).

exemple

y = polyval(coeffs,x,[],centerScale) ou [y,delta] = polyval(coeffs,x,fitStats,centerScale) évalue le polynôme aux points normalisés x−centerScale(1)centerScale(2), où centerScale est généré par polyfit. Utilisez la seconde syntaxe pour évaluer un polynôme ajusté et calculer les estimations d’erreur avec les coefficients, statistiques d’ajustement et paramètres de normalisation indiqués par polyfit.

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].

coeffs = [3 2 1];
x = [5 7 9];
y = polyval(coeffs,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.

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

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

q = polyint(coeffs)
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 = 0:100; 
y = -0.3*x + 2*randn(1,101); 
[coeffs,fitStats] = polyfit(x,y,1);

Évaluez le polynôme du premier degré aux 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.

[yfit,delta] = polyval(coeffs,x,fitStats);

Tracez les données d'origine, l'ajustement linéaire et l’intervalle de prédiction à 95 % yfit±2Δ.

plot(x,y,"o")
hold on
plot(x,yfit)

xinterval = [x flip(x)];
yinterval = [yfit-2*delta flip(yfit)+2*delta];
interval = fill(xinterval,yinterval,"yellow",FaceAlpha=0.2);

legend("Sample data","First-degree polynomial","95% prediction interval")
hold off

Figure contains an axes object. The axes object contains 3 objects of type line, patch. One or more of the lines displays its values using only markers These objects represent Sample data, First-degree polynomial, 95% prediction interval.

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

x = 1750:25:2000;
y = 1e6*[791 856 978 1050 1262 1544 1650 2532 6122 8170 11560];

Utilisez polyfit pour ajuster un polynôme du cinquième degré sur les données. Vous pouvez améliorer le conditionnement numérique en normalisant le vecteur de requête avant d’ajuster un polynôme. Cet exemple consiste à normaliser les données year et à calculer un ajustement polynomial du cinquième degré. La fonction renvoie également le centre et l’échelle utilisés pour la normalisation.

[coeffsNorm,~,centerScale] = polyfit(x,y,5,Normalize=true);

Normalisez les points de requête avec le même centre et la même échelle, puis évaluez le polynôme en spécifiant centerScale lorsque vous appelez la fonction polyval. Tracez ensuite les résultats.

yfit = polyval(coeffsNorm,x,[],centerScale);

plot(x,y,"o")
hold on
plot(x,yfit)
legend("Sample data","Fifth-degree polynomial")
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 These objects represent Sample data, Fifth-degree polynomial.

Arguments d'entrée

réduire tout

Coefficients polynomiaux, spécifiés sous forme de vecteur. coeffs est de longueur n+1 et contient les coefficients polynomiaux en puissances décroissantes, le degré polynomial étant n. Par exemple, le vecteur [1 0 1] représente le polynôme x2+1.

Les coefficients polynomiaux de coeffs peuvent être calculés par des fonctions comme polyint, polyder et polyfit, mais vous pouvez spécifier n’importe quel vecteur pour les définir. Pour plus d’informations, consultez Créer et évaluer des polynômes.

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

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

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

Statistiques d’ajustement, spécifiées sous forme de structure renvoyée par polyfit. La structure fitStats doit contenir les champs suivants :

ChampDescription
RFacteur R triangulaire (éventuellement permuté) d’une décomposition QR de la matrice de Vandermonde de x
dfDegrés de liberté de l’ajustement
normrNorme euclidienne des résidus

rsquared (depuis R2024a)

Coefficient de détermination (R au carré non ajusté)

Valeurs de centre et de mise à l’échelle utilisées pour normaliser les points de requête de x avant d’évaluer le polynôme, spécifiées sous forme d’un vecteur à deux éléments.

Si vous utilisez polyfit avec Normalize=true pour calculer les coefficients polynomiaux, spécifiez centerScale lorsque vous appelez polyval pour normaliser les points de requête avec le même centre et la même échelle.

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 coeffs à 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 coeffs 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™.

Génération de code GPU
Générez du code CUDA® pour les GPU NVIDIA® avec GPU Coder™.

Historique des versions

Introduit avant R2006a