Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OBJETIVOS:
Realizar el análisis de los métodos de regresión e
interpolación utilizando Matlab
Interpretar los ejercicios propuestos aplicando la
secuencia en cada método
Entender los diferentes procesos en que pueden ser
resueltos los diferentes ejercicios
REGRESION LINEAL
Programación Matlab
clear all;
clc;
fprintf('Metodo de Regresion Lineal \n\n');
n=input('Numero de puntos: ');
for i=1:n
x(1,i)=input('dame los valores de x: ');
end
for i=1:n
y(1,i)=input('dame los valores de y: ');
end
plot(x,y)
grid
xlabel('x');ylabel('y')
pause
a=0;
for i=1:n
a=a+x(1,i)*y(1,i);
end
b=0;
for i=1:n
b=b+x(1,i)*x(1,i);
end
c=0;
for i=1:n
c=c+x(1,i);
end
e=0;
for i=1:n
e=e+y(1,i);
end
d=0;
d=c/n;
f=0;
f=e/n;
a1=(n*a-c*e)/(n*b-c*c);
a0=f-a1*d;
clc;
fprintf('Ecuacion con la que se encuentran los nuevos valores de y
\n\n');
fprintf(' y = %d + %d x',a0,a1);
for i=1:n
y(1,i)=a0+a1*x(1,i);
end
fprintf('\n\nPresiona enter para ver la nueva grafica\n\n');
pause
%Grafica con los Datos Ajustados
plot(x,y)
grid
xlabel('x');ylabel('y')
pause
Ejercicios
x 1 2 3 4 5 67 8 9
y 1 1.5 2 3 4 5 8 10 13
y = -2.013889e+00 + 1.458333e+00 x
x 0 2 4 6 9 11 12 15 17 19
y 5 6 7 6 9 8 7 10 12 12
y = 4.851535e+00 + 3.524700e-01 x
REGRESION POLINOMIAL
Programación Matlab
% for i =1:n
% end
for j=1:z
for i=1:n
A(i,j)=x(i)^e(j)
end
end
w=A\y'
plot(x,y,'*g')
hold on
xx=[min(x):3:max(x)];
for i=1:length (xx)
ytem(i)=0
for k=1:z
yy(i)= w(k)*xx(i)^e(k)+ytem(i);
ytem(i)=yy(i);
end
end
plot(xx,ytem)
hold off
for i=1:length (x)
yte(i)=0;
for k=1:z
yy(i)= w(k)*x(i)^e(k)+yte(i)
yte(i)=yy(i);
end
end
yte=yte
E=(y-yte).^2
E2=sum(E)
Ejercicios
X 3 4 5 7 8 9 11 12
Y 1.6 3.6 4.4 3.4 2.2 2.8 3.8 4.6
E1 = 0.042748525476290
X 5 1015 20 25 30 35 40 45 50
Y 17 24 31 33 37 37 40 40 42 41
E2 = 4.162309258286761e+45
REGRESION LINEAL MULTIPLE
Programación Matlab
clear
x=[.15;.4;.6;1.01;1.5;2.2;2.4;2.7;2.9;3.5;3.8;4.4;4.6;5.1;6.6;7.6;]
y=[4.4964;5.1284;5.6931;6.2884;7.0989;7.5507;7.5106;8.0756;7.8708;8.2403;
8.5303;8.7394;8.9981;9.1450;9.5070;9.9115]
n=16
%n=input('cuantos puntos va a ajustas:')
y=log(y);
x=log(x);
B=ones(n,2);
B(:,1)=x;
a=B\y
alfa=a(1)
beta=exp(a(2))
xx=0.01:0.01:8;
yy=a(1)*(xx.^beta);
plot(x,y,'*b',xx,yy,'r')
m= input(' #filas = ') %pedir valores
n= input(' #columnas = ') %pedir valores
for j=1:n
x(i,j)=input('introduce los valores ')
end
end
end
a=x\y
Ejercicios
X1 0 1 1 2 2 3 3 4 4
X2 0 1 2 1 2 1 2 1 2
Y 15.1 17.9 12.7 25.6 20.5 35.1 29.7 45.4 40.2
E1 = 6.362402848333388
X1 0 0 1 2 0 1 2 2 1
X2 0 2 2 4 4 6 6 2 1
Y 14 21 11 12 23 23 14 6 11
E2 = 4.57928365628384
INTERPOLACION LINEAL
Programación Matlab
t = [1 2 3 4 5];
p = [3 5 7 5 6];
x = 1:0.1:6;
Ejercicios
f (X) 2 8 14 15 8 2
2) Dados los datos con el uso de polinomios de interpolación lineal elija la
secuencia de puntos más apropiada para alcanzar la mayor exactitud
posible para sus estimaciones.
X 1 2 3 5 7 8
f (X) 3 6 19 99 291 444
INTERPOLACION CUADRATICA
Programación Matlab
t = [1 2 3 4 5 6 7 8];
p = [3 5 7 5 6 7 7 5];
% t=linspace(-1,1,10);
% p=1./(1+25*t.^2);
x = 1:0.1:8;
%x = linspace(-1,1,100);
y = interp1 (t, p, x, 'spline') ; plot (t, p,'o',x, y); hold on
y = interp1 (t, p, x, 'linear') ; plot (x, y,'r')
y = interp1 (t, p, x, 'nearest') ; plot (x, y,'g')
y = interp1 (t, p, x, 'pchip') ; plot (x, y,'b')
y = interp1 (t, p, x, 'cubic') ; plot (x, y,'c')
y = interp1 (t, p, x, 'v5cubic') ; plot (x, y,'m')
hold off
Ejercicios
X 2 3 4 5 6 7
f(X) 0.5 0.3333 0.25 0.2 0.1667 1.1429
X 0 1 2 3 4 5
f(X) 0 0.5 0.8 0.9 0.941176 0.961538
INTERPOLACION DE NEWTON
Programación Matlab
%Interpolacion de newton
clear;clc;
disp('metodos numericos');
disp('interpolacion');
disp('interpolacion');
n=input('ingrese el grado del polinomio, n=');
fprintf('Se necesitan %.0f puntos\n',n+1);
disp('ingrese los puntos');
for i=1:n+1
fprintf('x%.0f=',i-1);
X(i)=input(' ');
fprintf('y%.0f=',i-1);
Y(i)=input(' ');
end
DD=zeros(n+1);
DD(:,1)=Y;
for k=2:n+1
for J=k:n+1
DD(J,k)=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)];
end
end
X 1 2 3 4 5 6
f(X) 0.3 0.3633 0.55 1.2 1.1667 2.142
El polinomio de newton es
X ^3+3*x ^2-x+ 1
INTERPOLACION DE LAGRANGE
Programación Matlab
Ejercicios
L0:
(36893488147419103232*(x - 627/5000)*(x - 1393/12500))/6120707159981939
L1:
-(36893488147419103232*(x - 627/5000)*(x - 10377/100000))/3950303835106237
L2:
(18446744073709551616*(x - 1393/12500)*(x - 10377/100000))/5570082917428161
2) Desarrolle, depure y pruebe un programa en el lenguaje de alto nivel o macros
que elija, para implantar la interpolación de LaGrange. Haga que se base en el
seudocódigo Pruébelo con la duplicación del ejemplo
L0:
(1125899906842624*(x - 15627/5000)*(x - 26393/12500))/2293611122400155)
L1:
-(4503599627370496*(x - 1242734540175683/1125899906842624)*(x
-15627/5000))/46014947021341)
L2:
(2251799813685248*(x - 1242734540175683/1125899906842624) *(x-
26393/12500))/461585624990)
CONCLUSIONES
La resolución mediante Matlab nos da un aspecto de entendimiento más amplia en cada
método aplicado y a través de los ejercicios propuestos en Chapra podemos ver las
gráficas que corresponden a cada ejercicio planteado.
La compresión de cada método aplicado viene dado por la formulación que es explicada
en cada código logarítmico mediante Matlab.