Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
PROGRAMA beta=a1;
A continuación, se podrá observar parte del programa yExponencial=alfa*exp(beta.*x)
realizado para obtener regresiones de distintos tipos y en ymod=sprintf('%0.4f + %0.4f * t', a0, a1);
distintos fluidos, esto debido a que la programación hecha app.YmodeloEditField.Value=ymod;
es y sirve para cada uno de los fluidos, por lo tanto, en cada coef=sprintf('%0.4f', r2);
caso del fluido, solo varia la ruta dada para el archivo en app.CoeficientededeterminacionEditField.Va
Excel del fluido a seleccionar. [3] lue=(coef);
global Tipo Fluido plot(app.UIAxes,x,y,'*',x,yExponencial);
cla(app.UIAxes2); plot(app.UIAxes2,x,log(y),'*',x,Ymodelo);
switch Fluido ylin=sprintf('%0.2f * exp (%0.2f * t )',
case 2 %Awa alfa, beta)
[Archivo,Directorio] app.YLinealizadoEditField.Value=ylin;
=uigetfile('Agua.xlsx','Abrir un archivo de case 4 % Potencial
datos'); sumax=sum(log10(x));sumax2=sum(log10(x).^2
Datos = strcat(Directorio,Archivo); );sumay=sum(log10(y))
app.UITable.Data=readtable(Datos); sumaxy=sum(log10(x).*log10(y));
W=app.UITable.Data; a1=((n*(sumaxy)-sumay*sumax))/(n*sumax2-
VectorDatos=table2array(W); (sumax)^2);
n=length(VectorDatos); a0=sumay/n-a1*sumax/n;
x=VectorDatos(:,1); Ymodelo=(a0+a1.*log10(x));
y=VectorDatos(:,2); st=sum((log10(y)-sumay/n).^2);
switch Tipo sr=sum(((log10(y))-(a0+a1.*log(x))).^2);
case 2 % Lineal r2=(st-sr)/st;
sumax=sum(x); sumay=sum(y); alfa=10^a0;
sumaxy=sum(x.*y); sumax2=sum(x.^2); beta=a1;
a1=(n*sumaxy-sumax*sumay)/(n*sumax2- yPotencial=alfa.*x.^beta;
sumax^2); ymod=sprintf('%0.4f + %0.4f * t', a0, a1);
a0=((sumay/n)-a1*(sumax/n)); app.YmodeloEditField.Value=ymod;
Ymodelo=(a0+a1.*x); coef=sprintf('%0.4f', r2);
st=sum((y-sumay/n).^2); app.CoeficientededeterminacionEditField.Va
sr=sum((y-(a0+a1.*x)).^2); lue=(coef);
r2=(st-sr)/st; plot(app.UIAxes,x,y,'*',x,yPotencial);
ymod=sprintf('%0.4f + %0.4f * t', a0, a1); plot(app.UIAxes2,log10(x),log10(y),'*',log
app.YmodeloEditField.Value=ymod; 10(x),Ymodelo);
coef=sprintf('%0.4f', r2); ylin=sprintf('%0.2f * t ^ %0.2f', alfa,
app.CoeficientededeterminacionEditField.Val beta)
ue=(coef); app.YLinealizadoEditField.Value=ylin;
plot(app.UIAxes2,x,y,'*',x,Ymodelo); case 5 % Racional
ylin=sprintf(' ------------------------- ') sumax=sum(1./x); sumax2=sum(1./(x).^2);
app.YLinealizadoEditField.Value=ylin; sumay=sum(1./y); sumaxy=sum(1./x.*1./y);
case 3 % Exponencial a1=((n*(sumaxy)-sumay*sumax))/(n*sumax2-
sumax=sum(x); sumay=sum(log(y)); (sumax)^2);
sumaxy=sum(x.*log(y)); sumax2=sum(x.^2); a0=(sumay/n-a1*sumax/n);
a1=(n*sumaxy-sumax*sumay)/(n*sumax2- st=sum((1./y-sumay/n).^2);
sumax^2); Ymodelo=(a0+a1.*(1./x));
a0=((sumay/n)-a1*(sumax/n)); sr=sum((1./y-(a0+a1.*1./x)).^2);
Ymodelo=(a0+a1.*x); r2=(st-sr)/st;
st=sum((log(y)-sumay/n).^2); alfa=1/a0;
sr=sum((log(y)-(a0+a1.*x)).^2); beta=a1*alfa;
r2=(st-sr)/st; yRacional=(alfa.*x)./(beta+x);
alfa=exp(a0); ymod=sprintf('%0.4f + %0.4f * t', a0, a1);
app.YmodeloEditField.Value=ymod;
2
coef=sprintf('%0.4f', r2); r2=(st-sr)/st;
app.CoeficientededeterminacionEditField.Val ymod=sprintf('%0.2f + %0.2f * t + %0.2f * t
ue=(coef); ^ 2 + %0.2f * t^3', a0, a1, a2, a3);
plot(app.UIAxes,x,y,'*',x,yRacional); app.YmodeloEditField.Value=ymod;
plot(app.UIAxes2,1./x,1./y,'*',1./x,Ymodelo coef=sprintf('%0.4f', r2);
); app.CoeficientededeterminacionEditField.Val
ylin=sprintf(['(%0.2f * x) / (%0.2f + t ue=(coef);
)'], alfa, beta) plot(app.UIAxes2,x,y,'*',x,Ymodelo);
app.YLinealizadoEditField.Value=ylin; ylin=sprintf(' --------------------------')
case 6 % Polinomial 2 app.YLinealizadoEditField.Value=ylin;
sumax=sum(x); sumax2=sum(x.^2); end
sumax3=sum(x.^3);sumax4=sum(x.^4);
sumay=sum(y); sumaxy=sum(x.*y); case 3 %Aceite
sumax2y=sum(x.^2.*y); [Archivo,Directorio] =
A=[n sumax sumax2; sumax sumax2 uigetfile('Aceite.xlsx','Abrir un archivo
sumax3;sumax2 sumax3 sumax4]; de datos');
B=[sumay; sumaxy; sumax2y]; Datos = strcat(Directorio,Archivo);
X=inv(A)*B app.UITable.Data=readtable(Datos);
a0=X(1) W=app.UITable.Data;
a1=X(2) VectorDatos=table2array(W);
a2=X(3) n=length(VectorDatos);
Ymodelo=(a0+a1.*x+a2.*x.^2) x=VectorDatos(:,1);
st=sum((y-sumay/n).^2) y=VectorDatos(:,2);
sr=sum((y-(a0+a1.*x+a2.*x.^2)).^2)
r2=(st-sr)/st; switch Tipo
ymod=sprintf('%0.4f + %0.4f * t + %0.4f * t case 2 % Lineal
^ 2', a0, a1, a2); case 3 % Exponencial
app.YmodeloEditField.Value=ymod; case 4 % Potencial
coef=sprintf('%0.4f', r2); case 5 % Racional
app.CoeficientededeterminacionEditField.Val case 6 % Polinomial grado 2
ue=(coef); Case 7 % Polinomial grado 3
plot(app.UIAxes2,x,y,'*',x,Ymodelo); end
ylin=sprintf(' --------------------------') case 3 % Jabon manos
app.YLinealizadoEditField.Value=ylin; [Archivo,Directorio] =
case 7 % Polinomial 3 uigetfile('Aceite.xlsx','Abrir un archivo
sumax=sum(x); sumax2=sum(x.^2); de datos');
sumax3=sum(x.^3);sumax4=sum(x.^4); Datos = strcat(Directorio,Archivo);
sumax5=sum(x.^5); sumax6=sum(x.^6); app.UITable.Data=readtable(Datos);
sumay=sum(y); sumaxy=sum(x.*y); W=app.UITable.Data;
sumax2y=sum(x.^2.*y); sumax3y=sum(x.^3.*y); VectorDatos=table2array(W);
A=[n sumax sumax2 sumax3; sumax sumax2 n=length(VectorDatos);
sumax3 sumax4; sumax2 sumax3 sumax4 sumax5; x=VectorDatos(:,1);
sumax3 sumax4 sumax5 sumax6]; y=VectorDatos(:,2);
B=[sumay; sumaxy; sumax2y; sumax3y];
X=inv(A)*B case 3 % Jabón manos
a0=X(1) case 4 % Jabón loza
a1=X(2) case 5 % Salmuera
a2=X(3) case 6 % Aceite 20W50
a3=X(4)
Ymodelo=(a0+a1.*x+a2.*x.^2+a3.*x.^3); end
st=sum((y-sumay/n).^2); end
sr=sum((y-(a0+a1.*x+a2.*x.^2+a3.*x.^3)).^2)
3
Además, se programó un check box, por fuera del botón de seleccionar el tipo de fluido y la regresión, debajo de estos
calcular para mostrar algunos por aparte los resultados de hay una tabla, la cual nos permite observar los datos de
la “mejor” regresión y a si el usuario pueda compararlas. tiempo y temperatura, con los que se está realizando el
show = app.Mostrar.Value; procedimiento. Aproximadamente en el centro y parte
if show==1 izquierda, se encuentran los resultados que se obtendrán
[Archivo,Directorio] = después de ejecutar el programa, y el botón para ello, se
uigetfile('*.xlsx','Abrir un archivo de encuentra debajo de las gráficas, que están en la parte
datos'); central y media de la parte derecha. Y, por último, en la
Datos = strcat(Directorio,Archivo); parte inferior izquierda, se encuentra un check box, y luego
app.UITable.Data=readtable(Datos); se ser activado, automáticamente, aparecen los datos de la
W=app.UITable.Data; regresión con más ajusta obtenida.
VectorDatos=table2array(W);
n=length(VectorDatos);
x=VectorDatos(:,1);
y=VectorDatos(:,2);
sumax=sum(x); sumax2=sum(x.^2);
sumax3=sum(x.^3);sumax4=sum(x.^4);
sumax5=sum(x.^5); sumax6=sum(x.^6);
sumay=sum(y); sumaxy=sum(x.*y);
sumax2y=sum(x.^2.*y); sumax3y=sum(x.^3.*y);
A=[n sumax sumax2 sumax3; sumax sumax2
sumax3 sumax4; sumax2 sumax3 sumax4 sumax5;
sumax3 sumax4 sumax5 sumax6];
B=[sumay; sumaxy; sumax2y; sumax3y];
X=inv(A)*B
a0=X(1)
a1=X(2)
a2=X(3)
a3=X(4)
Ymodelo=(a0+a1.*x+a2.*x.^2+a3.*x.^3);
st=sum((y-sumay/n).^2); Ilustración 1 - Interfaz gráfica realizada para el programa.
sr=sum((y-(a0+a1.*x+a2.*x.^2+a3.*x.^3)).^2)
r2=(st-sr)/st; Con esto, pasamos a ejecutar y observar los datos
ymod=sprintf('%0.2f + %0.2f * t + %0.2f * t obtenidos, entonces, procederemos a realizar la prueba,
^ 2 + %0.2f * t^3', a0, a1, a2, a3); con uno de los fluidos y todas las regresiones, para
app.YmodeloEditField_2.Value=ymod; observar cual de ellas tiene un mejor ajuste, teniendo esto
coef=sprintf('%0.4f', r2); en cuenta, inicialmente se implementará la comparación
app.CoeficientededeterminacionEditField_2.V con el jabón para loza y la regresión lineal, como se puede
alue=(coef); observar en la Ilustración 2.
plot(app.UIAxes,x,y,'*',x,Ymodelo);
plot(app.UIAxes2,x,y,'*',x,Ymodelo);
app.YLinealizadoEditField.Value=ylin;
app.RegresionEditField.Value= 'Polinomica
grado 3' ;
end
4
En la Ilustración 2, se pudo observar, que solo se mostraba Posteriormente, se realizo la prueba para la regresión
una gráfica, esto es debido a que la ecuación modelo es racional, donde los resultados se podrán ver en la
igual a la linealizada, también se pudo ver un coeficiente Ilustración 5.
de correlación, cercano a 1, sin embargo, en la gráfica, se
nota que esta línea no coincide mucho con la gráfica de los
datos.
Luego, y pasamos a ejecutar la aplicación con el mismo
fluido y una regresión exponencial, la cual los resultados
se pueden observar en la Ilustración 3.
Como se puede observar en la Ilustración 3, una de las Después realizamos el procedimiento con la regresión
gráficas, presenta una leve curva, permitiendo que el polinomial de segundo grado, y los resultados obtenidos,
coeficiente de determinación se un poco más cercano a 1. se observan en la Ilustración 6.
Donde también se evidencian las de ecuaciones de la
función, ya que esta la modelo y la linealizada.
5
Ilustración 7 - Resultados obtenidos al ejecutar el programa con
regresión polinomial de grado 3 y jabón para loza.
CONCLUSIONES
BIBLIOGRAFÍA
[1] K. Dotor, «Ley de Enfriamento de Newton,» 06 04 2022.
[En línea]. Available:
https://www.academia.edu/26520605/Ley_de_Enfriament
o_de_Newton?msclkid=6f0799ddb78211ec9bde4b4b71d
3894c.
6
[2] S. C. Chapra y R. P. Canale, Metodos Numericos para
ingenieros, México: The McGraw - Hill Education, 2015.
[3] Mathworks, «Mathworks,» Mathworks, 2022. [En línea].
Available: https://la.mathworks.com/help/matlab/.
[Último acceso: 2 04 2022].