Uploaded by Daniel zambrano

regresion polinomial de la exponencial

advertisement
Regresion polinomial
Daniel Fernado Zambrano Gutierrez
Datos:
Se definen los datos ,se extraen los vectores X Y y se establece el orden del polinomio
orden = 13;
% D =
[0 -5;
%
2
150;
%
4 -10;
%
6
50;
%
8 -200;
%
10
0 ;
%
12 -100 ];
% X = D(:,1);
% Y = D(:,2);
y=@(x) 10*exp(-0.5*x)+2;
X=[0:0.2:6]';
Y=awgn(y(X),10,0);
Generacion del modelo:
El modelo de regresión polinomial se define como:
Se puede expresar en forma de matriz en términos de una matriz de diseño
vector de parámetro
y un vector
de errores aleatorios. La i-ésima fila de
, un vector de respuesta
y
contendrá el valor
, un
e
para la muestra de datos i-ésimo. Entonces el modelo se puede escribir como un sistema de ecuaciones
lineales:
Empleando notación matricial pura se escribe como:
MX = Generar_Modelo(X,orden);
se envian como parametros el orden del polinomio y el vector
1
.
Mas adelantese explica la funcion Modelo().
El vector de coeficientes de regresión polinomial estimados es:
El termino
se denomina matriz pseudoinversa y se puede rescribir como
En Matlab podemos usar la funcion pinv( ) .
b = pinv(MX)*Y;
Coeficientes
del polinomio
b
b = 14×1
-0.0002
0.0068
-0.1126
1.0805
-6.6294
27.2088
-75.9925
144.4160
-184.5149
155.4567
Generamos nuestra Y estimada.
Ye = MX*b;
Verificamos el modelo.
X2 = (min(X)-1:0.01:max(X)+1)';
Ye2 = Generar_Modelo(X2,orden)*b;
Graficamos el modelo obtenido y los datos iniciales
figure()
plot(X,Y,'*r',X,Ye,'g+',X2,Ye2,'b')
grid on
legend('Datos','Y estimada','Modelo generado')
xlim([-1.1 13.7])
ylim([-536 718])
2
.
Calculamos el error obtenido
N = length(X);
error = ( (Y-Ye)'*(Y-Ye))/N
error = 0.0505
Funcion Modelo
function MX = Generar_Modelo(X,orden)
f = @(X1,orde) X1.^orde;
MX = ones(size(X));
for i = 1 : orden
MX = [ f(X,i) MX];
end
end
Se reciben los datos de X y el orden, se procede a realizar una evaluacion mediante una funcion anonima
y se finaliza generando la matriz MX.
3
4
Download