Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2
y = a1 x + a2 x + a3
2
y1 x x1 1
⎛ ⎞ ⎛ 1 ⎞
a
y
2 ⎛ 1 ⎞
⎜ 2 ⎟ ⎜ x x2 1 ⎟
2
⎜ ⎟ = ⎜ ⎟⎜a ⎟
2
⎜ ⎟ ⎜ ⎟
⎜ ... ⎟ ⎜ ... ... ... ⎟ ⎝ ⎠
a3
⎝ ⎠ ⎝ ⎠
yn 2
xn xn 1
En el último ejemplo de la página anterior, tenemos n=9 pares de datos (xi,yi) que ajustamos
a un polinomio de segundo grado. Resolvemos un sistema de nueve ecuaciones con tres
incógnitas, con el operador \ (división por la izquierda)
x=[0,1,2,3,4,5,6,7,7.44]';
y=[0,4.03,8.12,14.23,20.33,27.1,34.53,42.63,46.43]';
M=[x.^2,x,ones(size(x))];
p=M\y %coeficientes del polinomio
hold on
plot(x,y,'ro','markersize',4,'markerfacecolor','r')
z=@(x) polyval(p,x);
fplot(z,[x(1),x(end)])
xlabel('x')
ylabel('y')
grid on
title('Polinomio aproximador')
hold off
http://www.sc.ehu.es/sbweb/fisica3/datos/regresion/regresion_1.html 1/7
23/4/2018 Ajuste de datos con MATLAB
En la ventana de comandos vemos los valores de los coeficientes a1,a2, a3 como elementos del
vector p.
p =
0.3446
3.7004
-0.1188
p=polyfit(x,y,n)
x, y son los vectores de las abscisas y de las ordenadas de los datos, respectivamente
n, es el grado del polinomio al que se quieren ajustar los datos
p, es el vector de los coeficientes de dicho polinomio.
Para n=1 tenemos la regresión lineal. Si m es el número de datos, el polinomio pasa a través
de todos los puntos si n=m-1. El grado n del polinomio no puede ser mayor que m-1.
x=[0,1,2,3,4,5,6,7,7.44];
y=[0,4.03,8.12,14.23,20.33,27.1,34.53,42.63,46.43];
p=polyfit(x,y,2)
%gráficos
hold on
plot(x,y,'ro','markersize',4,'markerfacecolor','r')
z=@(x) polyval(p,x);
fplot(z,[x(1),x(end)])
xlabel('x')
ylabel('y')
grid on
http://www.sc.ehu.es/sbweb/fisica3/datos/regresion/regresion_1.html 2/7
23/4/2018 Ajuste de datos con MATLAB
title('Polinomio aproximador')
hold off
En la ventana de comandos corremos el script y nos aparece el vector p que contiene los
coeficientes a1,a2, a3 del polinomio
p =
0.3446 3.7004 -0.1188
También se puede utilizar polyfit para realizar ajustes a una función potencial, exponencial,
logarítmica, etc, tal como se muestra en el siguiente cuadro
El primer elemento del vector p devuelto por polyfit, p(1) guarda el parámetro a y el segundo
elemento, p(2) guarda el parámetro c.
x=[10 20 30 40 50 60 70 80];
y=[1.06 1.33 1.52 1.68 1.81 1.91 2.01 2.11];
p=polyfit(log10(x),log10(y),1);
fprintf('exponente a= %2.3f\n',p(1));
fprintf('coeficiente c = %3.3f\n',(10^p(2)));
hold on
plot(x,y,'ro','markersize',4,'markerfacecolor','r')
z=@(x) (10^p(2))*x.^p(1);
fplot(z,[x(1),x(end)])
xlabel('x')
ylabel('y')
grid on
title('Regresión potencial')
hold off
exponente a= 0.331
coeficiente c = 0.495
hold on
plot(x,y,'ro','markersize',4,'markerfacecolor','r')
z=@(x) exp(p(2))*exp(x*p(1));
fplot(z,[x(1),x(end)])
xlabel('x')
ylabel('y')
grid on
title('Regresión exponencial')
hold off
http://www.sc.ehu.es/sbweb/fisica3/datos/regresion/regresion_1.html 3/7
23/4/2018 Ajuste de datos con MATLAB
exponente a= -0.005
coeficiente c = 1036.896
Añadimos una rejilla, etiquetas a los ejes y un título al gráfico en la ventana de comandos
>> grid on
>> xlabel('x')
>> ylabel('y')
>> title('Experiencia')
http://www.sc.ehu.es/sbweb/fisica3/datos/regresion/regresion_1.html 4/7
23/4/2018 Ajuste de datos con MATLAB
Ampliamos el cuadro de diálogo pulsando en el botón con la flecha inferior derecha -->.
Seleccionamos en el segundo panel titulado Numerical results Fit/linear y nos aparece
y = p1*x + p2
Coefficients:
p1 = 2.7095
p2 = 0.15286
Pulsamos el botón con la flecha --> para ampliar otra vez el cuadro de diálogo, introducimos
un valor o una expresión para ser evaluada pulsando el botón Evaluate en el tercer panel
titulado Find y=f(x).
http://www.sc.ehu.es/sbweb/fisica3/datos/regresion/regresion_1.html 5/7
23/4/2018 Ajuste de datos con MATLAB
El muelle elástico
Péndulo de torsión
El péndulo simple
Oscilaciones amortiguadas
http://www.sc.ehu.es/sbweb/fisica3/datos/regresion/regresion_1.html 6/7
23/4/2018 Ajuste de datos con MATLAB
El sonido
El prisma de vidrio
Optica paraxial
Efusión de un gas
El tubo-capilar
Descarga de un condensador
http://www.sc.ehu.es/sbweb/fisica3/datos/regresion/regresion_1.html 7/7