Está en la página 1de 5

Trabajo en clase (virtual) 5.

Uso de herramientas computacionales –


LaGrange

Nombre.- Vazquez Ontiveros Ariel


Eduardo

N° de Control.- 18070200

Profesor: Ingeniero Joel Rodríguez


Guillén
Codigo de regresion_polinomial_mc.m
% Regresión polinomial por mínimos cuadrados
% Estimar y(5)
% JRG

clc
clear all
close all
%% Tabla de datos
xiyi = [0 0.3277; % La tabla no coincide con (0,0) para el modelo de
y = ax^2
1 15.8667;
2 44.0888;
2.5 62.0011;
3 63.7402;
4 128.7846;
6 274.6855;
7 379.2060];
xi = xiyi(:,1);
yi = xiyi(:,2);
%% Regresión polinomial
% Procedimiento
n = length(xi);
Sxi = 0;
Sxi2 = 0;
Sxi3 = 0;
Sxi4 = 0;
Syi = 0;
Sxiyi = 0;
Sxi2yi = 0;

for i = 1:n
Sxi = Sxi + xi(i);
Sxi2 = Sxi2 + xi(i)^2;
Sxi3 = Sxi3 + xi(i)^3;
Sxi4 = Sxi4 + xi(i)^4;
Syi = Syi + yi(i);
Sxiyi = Sxiyi + xi(i)*yi(i);
Sxi2yi = Sxi2yi + xi(i)^2*yi(i);
end
A = [n Sxi Sxi2;
Sxi Sxi2 Sxi3;
Sxi2 Sxi3 Sxi4];
B = [Syi; Sxiyi; Sxi2yi];
a = A\B;
a0 = a(1);
a1 = a(2);
a2 = a(3);
gmc = @(x) a0 + a1*x + a2*x.^2;
x = linspace(xi(1),xi(n),1e3);
ymc = feval(gmc,x);
% Evaluar y = g(5) (Solución)
xx = 5;
yy = feval(gmc,xx);
xmax = max(xi);
xmin = min(xi);
ymax = max(yi)*(1+2/100);
ymin = min(yi)*(1-2/100);

fprintf('\n\n y_est(5) = %0.4f\n\n',yy)


%% Figura
figure(1)
hold on
plot(xi,yi,'*r') % Datos muestreados
plot(x,ymc,'g') % Regresión polinomial de mínimos cuadrados
plot(xx,yy,'ok') % Valor estimado de y(5)
grid minor
plot([xx xx],[0 yy],'--k')
plot([0 xx],[yy yy],'--k')
axis([xmin,xmax,ymin,ymax])
title('Gr\''afica de $$(x_i,y_i)$$ y de $$\hat{y}=a_2x^2+a_1x+a_0$$',
'interpreter', 'latex', 'Fontsize', 14)
legend('Datos','Regresión polinomial por mínimos cuadrados')
xlabel('$$x$$','interpreter', 'latex','Fontsize', 14)
ylabel('$$y$$','interpreter', 'latex','Fontsize', 14)
txt1 = strcat('$$(',num2str(xx),',',num2str(yy),')$$');
text(xx+0.1,yy+5, txt1,'Interpreter','latex','Fontsize', 14)
Salida de Código

y_est(5) = 196.3212

Grafica con datos muestreados y la curva de ajuste p_2(x)

También podría gustarte