Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.
Dos funciones pueden modelar los datos con un polinomio.MATLAB®
Funciones de ajuste polinomial
Función | Descripción |
---|---|
encuentra los coeficientes de un polinomio de grado que se ajusta a los datos minimizando la suma de los cuadrados de las desviaciones de los datos del modelo (ajuste de mínimos cuadrados). | |
Devuelve el valor de un polinomio de grado que fue determinado por, evaluado en. |
Este ejemplo muestra cómo modelar los datos con un polinomio.
Mida una cantidad en varios valores de tiempo.y
t
t = [0 0.3 0.8 1.1 1.6 2.3]; y = [0.6 0.67 1.01 1.35 1.47 1.25]; plot(t,y,'o') title('Plot of y Versus t')
Puede intentar modelar estos datos utilizando una función polinómica de segundo grado,
Los coeficientes desconocidos,
Se usa para encontrar los coeficientes polinómicos.polyfit
p = polyfit(t,y,2)
p = 1×3
-0.2942 1.0231 0.4981
MATLAB calcula los coeficientes polinómicos en potencias descendentes.
El modelo Polinómico de segundo grado de los datos viene dado por la ecuación
Evalúe el polinomio en tiempos uniformemente espaciados,.t2
A continuación, trace los datos originales y el modelo en el mismo trazado.
t2 = 0:0.1:2.8; y2 = polyval(p,t2); figure plot(t,y,'o',t2,y2) title('Plot of Data (Points) and Model (Line)')
Evalúe el modelo en el vector de tiempo de datos
y2 = polyval(p,t);
Calcule los residuos.
res = y - y2;
Trace los residuos.
figure, plot(t,res,'+') title('Plot of the Residuals')
Observe que el ajuste de segundo grado sigue aproximadamente la forma básica de los datos, pero no captura la curva suave en la que los datos parecen mentir. Parece haber un patrón en los residuos, lo que indica que puede ser necesario un modelo diferente. Un polinomio de quinto grado (que se muestra a continuación) hace un mejor trabajo de seguir las fluctuaciones en los datos.
Repite el ejercicio, esta vez usando un polinomio de quinto grado de.polyfit
p5 = polyfit(t,y,5)
p5 = 1×6
0.7303 -3.5892 5.4281 -2.5175 0.5910 0.6000
Evalúe el polinomio y trace el ajuste en la parte superior de los datos en una nueva ventana de figura.t2
y3 = polyval(p5,t2); figure plot(t,y,'o',t2,y3) title('Fifth-Degree Polynomial Fit')
Si está tratando de modelar una situación física, siempre es importante considerar si un modelo de un orden específico es significativo en su situación.
Este ejemplo muestra cómo ajustar los datos con un modelo lineal que contiene términos no polinómicos.
Cuando una función polinómica no produce un modelo satisfactorio de los datos, puede intentar utilizar un modelo lineal con términos no polinómicos. Por ejemplo, tenga en cuenta la siguiente función que es lineal en los parámetros
Puede calcular los coeficientes desconocidos
Introduzca y como vectores de columna.t
y
t = [0 0.3 0.8 1.1 1.6 2.3]'; y = [0.6 0.67 1.01 1.35 1.47 1.25]';
Forme la matriz de diseño.
X = [ones(size(t)) exp(-t) t.*exp(-t)];
Calcule los coeficientes del modelo.
a = X\y
a = 3×1
1.3983
-0.8860
0.3085
Por lo tanto, el modelo de los datos viene dado por
Ahora evalúe el modelo en puntos espaciados regularmente y trace el modelo con los datos originales.
T = (0:0.1:2.5)'; Y = [ones(size(T)) exp(-T) T.*exp(-T)]*a; plot(T,Y,'-',t,y,'o'), grid on title('Plot of Model and Original Data')
Este ejemplo muestra cómo utilizar la regresión múltiple para modelar datos que es una función de más de una variable predictora.
Cuando y es una función de más de una variable predictora, las ecuaciones de matriz que expresan las relaciones entre las variables deben ampliarse para acomodar los datos adicionales. Esto se llama.multiple regression
Mida una cantidad x1
x2
y
x1 = [.2 .5 .6 .8 1.0 1.1]'; x2 = [.1 .3 .4 .9 1.1 1.4]'; y = [.17 .26 .28 .23 .27 .24]';
Un modelo de estos datos es de la forma
La regresión múltiple resuelve los coeficientes desconocidos
Construya y resuelva el conjunto de ecuaciones simultáneas formando una matriz de diseño,.X
X = [ones(size(x1)) x1 x2];
Resuelva los parámetros utilizando el operador de barra diagonal inversa.
a = X\y
a = 3×1
0.1018
0.4844
-0.2847
El modelo de ajuste de mínimos cuadrados de los datos se
Para validar el modelo, busque el máximo del valor absoluto de la desviación de los datos del modelo.
Y = X*a; MaxErr = max(abs(Y - y))
MaxErr = 0.0038
Este valor es mucho menor que cualquiera de los valores de datos, lo que indica que este modelo sigue con precisión los datos.
Este ejemplo muestra cómo utilizar funciones para:MATLAB
Cargue los datos del censo de muestra, que contiene datos de población de EE. UU. de los años 1790 a 1990.census.mat
load census
Esto añade las dos variables siguientes al espacio de trabajo de MATLAB.
es un vector de columna que contiene los años 1790 a 1990 en incrementos de 10.cdate
es un vector de columna con los números de población de EE. UU. correspondientes a cada año.pop
cdate
Graficar los datos.
plot(cdate,pop,'ro') title('U.S. Population from 1790 to 1990')
La gráfica muestra un patrón fuerte, que indica una alta correlación entre las variables.
En esta parte del ejemplo, se determina la correlación estadística entre las variables y se justifica el modelado de los datos.cdate
pop
Para obtener más información sobre los coeficientes de correlación, consulte.Correlación lineal
Calcule la matriz de coeficiente de correlación.
corrcoef(cdate,pop)
ans = 2×2
1.0000 0.9597
0.9597 1.0000
Los elementos de la matriz diagonal representan la correlación perfecta de cada variable consigo mismo y son iguales a 1. Los elementos fuera de la diagonal son muy cercanos a 1, lo que indica que hay una fuerte correlación estadística entre las variables y.cdate
pop
Esta parte del ejemplo aplica las funciones y para modelar los datos.polyfit
polyval
MATLAB
Calcule los parámetros de ajuste.
[p,ErrorEst] = polyfit(cdate,pop,2);
Evalúe el ajuste.
pop_fit = polyval(p,cdate,ErrorEst);
Graficar los datos y el ajuste.
plot(cdate,pop_fit,'-',cdate,pop,'+'); title('U.S. Population from 1790 to 1990') legend('Polynomial Model','Data','Location','NorthWest'); xlabel('Census Year'); ylabel('Population (millions)');
La gráfica muestra que la forma cuadrática-polinómica proporciona una buena aproximación a los datos.
Calcule los residuos para este ajuste.
res = pop - pop_fit; figure, plot(cdate,res,'+') title('Residuals for the Quadratic Polynomial Model')
Observe que la gráfica de los residuos exhibe un patrón, lo que indica que un polinomio de segundo grado podría no ser adecuado para modelar estos datos.
Los límites de confianza son intervalos de confianza para una respuesta pronosticada. El ancho del intervalo indica el grado de certeza del ajuste.
Esta parte del ejemplo se aplica y a los datos de ejemplo para producir límites de confianza para un modelo Polinómico de segundo orden.polyfit
polyval
census
El código siguiente utiliza un intervalo de , que corresponde a un intervalo de confianza de 95% para muestras grandes.
Evalúe el ajuste y la estimación del error de predicción (Delta).
[pop_fit,delta] = polyval(p,cdate,ErrorEst);
Trace los datos, el ajuste y los límites de confianza.
plot(cdate,pop,'+',... cdate,pop_fit,'g-',... cdate,pop_fit+2*delta,'r:',... cdate,pop_fit-2*delta,'r:'); xlabel('Census Year'); ylabel('Population (millions)'); title('Quadratic Polynomial Fit with Confidence Bounds') grid on
El intervalo de 95% indica que tiene un 95% de probabilidades de que una nueva observación se caiga dentro de los límites.