Вы находитесь на странице: 1из 6

//Ajuste entre fraccin masa y densidad; soluciones acuosas.

clear; clc;
delta=1e-4;//Valor definitorio.
//Apndice. Funciones auxiliares.
function y=Densidad(x)//Clculo de densidad.
y=Q(1)*x.^2+Q(2)*x+Q(3);
endfunction
//function y=Densidad(x)//Clculo de densidad.
//
y=Q(1)*x.^3+Q(2)*x.^2+Q(3)*x+Q(4);
//endfunction
function y=Masa(x)//Clculo de la fraccin masa.
y=0.5;
while 1e-12<abs(Densidad(y)-x)
y=y-(Densidad(y)-x)/Derivada(y);
end
endfunction
function y=Derivada(x)//Clculo de la derivada (Densidad respecto a temperatura).
y=(Densidad(x+delta)-Densidad(x))/delta;
endfunction
function y=Const1(x)//Clculo de la constante de ajuste A.
y=A(1)*x.^2+A(2)*x+A(3)
endfunction
function y=Const2(x)//Clculo de la constante de ajuste B.
y=B(1)*x.^2+B(2)*x+B(3);
endfunction
function y=Const3(x)//Clculo de la constante de ajuste C.
y=C(1)*x.^2+C(2)*x+C(3);
endfunction
printf('\nAjuste entre fraccin masa y densidad; mezcla de Metanol y Agua.\n')
//0. Datos.
//Datos=[1.0000 0.9800 0.9400 0.9200 0.5800 0.5600 0.4600 0.0000;//Fraccin masa.
//0.7866 0.7930 0.8050 0.8100 0.8950 0.9000 0.9200 0.9971]';//Densidad (MetanolAgua, 25C).
printf('\n')
h=input('Temperatura (datos)... ')
if h==10
Datos=[0:1:100;//Fraccin masa.
0.99973 0.99785 0.99602 0.99426
524 0.98393 0.98267 0.98145 0.98026
363 0.97252 0.97139 0.97024 0.96907
125 0.95977 0.95823 0.95665 0.95502
431 0.94238 0.94042 0.93842 0.93639
379 0.92126 0.91943 0.91723 0.91502
154 0.89927 0.89698 0.89468 0.89237
839 0.87602 0.87365 0.87127 0.86888
442 0.85197 0.84950 0.84702 0.84453
919 0.82654 0.82386 0.82114 0.81839

0.99258
0.97911
0.96787
0.95334
0.93433
0.91279
0.89006
0.86648
0.84203
0.81561

0.99098
0.97800
0.96665
0.95162
0.93226
0.91055
0.88774
0.86408
0.83951
0.81278

0.98946
0.97692
0.96539
0.94986
0.93017
0.90831
0.88541
0.86168
0.83697
0.80991

0.98801
0.97583
0.96406
0.94805
0.92806
0.90607
0.88308
0.85927
0.83441
0.80698

0.98660
0.97473
0.96268
0.94620
0.92593
0.90381
0.88074
0.85685
0.83181
0.80399

0.98
0.97
0.96
0.94
0.92
0.90
0.87
0.85
0.82
0.80

094 0.79784]';//Densidad (g/ml; Etanol-Agua, 10C).


elseif h==15
Datos=[0:1:100;//Fraccin masa.
0.99913 0.99725 0.99542 0.99365 0.99195 0.99032
0.98442 0.98304 0.98171 0.98041 0.97914 0.97790 0.97669
0.97191 0.97068 0.96944 0.96818 0.96689 0.96558 0.96424
0.95844 0.95686 0.95524 0.95357 0.95186 0.95011 0.94832
0.94079 0.93882 0.93682 0.93478 0.93271 0.93062 0.92852
0.91995 0.91776 0.91555 0.91333 0.91110 0.90885 0.90659
0.89752 0.89523 0.89293 0.89062 0.88830 0.88597 0.88364
0.87424 0.87187 0.86949 0.86710 0.86470 0.86229 0.85988
0.85018 0.84772 0.84525 0.84277 0.84028 0.83777 0.83525
0.82492 0.82227 0.81959 0.81688 0.81413 0.81134 0.80852
0.79670 0.79360]';//Densidad (g/ml; Etanol-Agua, 15C).
elseif h==20
Datos=[0:1:100;//Fraccin masa.
0.99823 0.99636 0.99453 0.99275 0.99103 0.98938
0.98331 0.98187 0.98047 0.97910 0.97775 0.97643 0.97514
0.96997 0.96864 0.96729 0.96592 0.96453 0.96312 0.96168
0.95548 0.95382 0.95212 0.95038 0.94860 0.94679 0.94494
0.93720 0.93518 0.93314 0.93107 0.92897 0.92685 0.92472
0.91604 0.91384 0.91160 0.90936 0.90711 0.90485 0.90258
0.89344 0.89113 0.88882 0.88650 0.88417 0.88183 0.87948
0.87004 0.86766 0.86527 0.86287 0.86047 0.85806 0.85564
0.84590 0.84344 0.84096 0.83848 0.83599 0.83348 0.83095
0.82062 0.81797 0.81529 0.81257 0.80983 0.80705 0.80424
0.79243 0.78934]'//Densidad (g/ml; Etanol-Agua, 20C).
elseif h==25
Datos=[0:1:100;//Fraccin masa.
0.99708 0.99520 0.99336 0.99157 0.98984 0.98817
0.98193 0.98043 0.97897 0.97753 0.97611 0.97472 0.97334
0.96782 0.96639 0.96495 0.96348 0.96199 0.96048 0.95895
0.95241 0.95067 0.94890 0.94709 0.94525 0.94337 0.94146
0.93353 0.93148 0.92940 0.92729 0.92516 0.92301 0.92085
0.91208 0.90985 0.90760 0.90534 0.90307 0.90079 0.89850
0.88931 0.88699 0.88446 0.88233 0.87998 0.87763 0.87527
0.86579 0.86340 0.86100 0.85859 0.85618 0.85376 0.85134
0.84158 0.83911 0.83664 0.83415 0.83164 0.82913 0.82660
0.81626 0.81362 0.81094 0.80823 0.80549 0.80272 0.79991
0.78814 0.78506]';//Densidad (g/ml; Etanol-Agua, 25C).
elseif h==30
Datos=[0:1:100;//Fraccin masa.
0.99568 0.99379 0.99194 0.99014 0.98839 0.98670
0.98031 0.97875 0.97723 0.97573 0.97424 0.97278 0.97133
0.96547 0.96395 0.96242 0.96087 0.95929 0.95769 0.95607
0.94922 0.94741 0.94557 0.94370 0.94180 0.93986 0.93790
0.92979 0.92770 0.92558 0.92344 0.92128 0.91910 0.91692
0.90805 0.90580 0.90353 0.90125 0.89896 0.89667 0.89437
0.88512 0.88278 0.88044 0.87809 0.87574 0.87337 0.87100
0.86148 0.85908 0.85667 0.85426 0.85184 0.84941 0.84698
0.83720 0.83473 0.83224 0.82974 0.82724 0.82473 0.82220
0.81186 0.80922 0.80655 0.80384 0.80111 0.79835 0.79555
0.78382 0.78075]';//Densidad (g/ml; Etanol-Agua, 30C).
elseif h==35
Datos=[0:1:100;//Fraccin masa.
0.99406 0.99217 0.99031 0.98849 0.98672 0.98501
0.97846 0.97685 0.97527 0.97371 0.97216 0.97063 0.96911
0.96294 0.96134 0.95973 0.95809 0.95643 0.95476 0.95306
0.94590 0.94403 0.94214 0.94021 0.93825 0.93626 0.93425
0.92597 0.92385 0.92170 0.91952 0.91733 0.91513 0.91291

0.98877
0.97552
0.96287
0.94650
0.92640
0.90433
0.88130
0.85747
0.83271
0.80566

0.98729
0.97433
0.96144
0.94464
0.92426
0.90207
0.87895
0.85505
0.83014
0.80274

0.98584
0.97313
0.95996
0.94273
0.92211
0.89980
0.87660
0.85262
0.82754
0.79975

0.98780
0.97387
0.96020
0.94306
0.92257
0.90031
0.87713
0.85322
0.82840
0.80138

0.98627
0.97259
0.95867
0.94114
0.92041
0.89803
0.87477
0.85079
0.82583
0.79846

0.98478
0.97129
0.95710
0.93919
0.91823
0.89574
0.87241
0.84835
0.82323
0.79547

0.98656
0.97199
0.95738
0.93952
0.91868
0.89621
0.87291
0.84891
0.82405
0.79706

0.98500
0.97062
0.95576
0.93756
0.91649
0.89392
0.87054
0.84647
0.82148
0.79415

0.98346
0.96923
0.95410
0.93556
0.91429
0.89162
0.86817
0.84403
0.81888
0.79117

0.98507
0.96990
0.95442
0.93591
0.91472
0.89206
0.86863
0.84455
0.81965
0.79271

0.98347
0.96844
0.95272
0.93390
0.91250
0.88975
0.86625
0.84211
0.81708
0.78981

0.98189
0.96697
0.95098
0.93186
0.91028
0.88744
0.86387
0.83966
0.81448
0.78684

0.98335
0.96760
0.95133
0.93221
0.91069

0.98172
0.96607
0.94955
0.93016
0.90845

0.98009
0.96452
0.94774
0.92808
0.90621

0.90396 0.90168 0.89940 0.89710 0.89479 0.89248 0.89016 0.88784 0.88552 0.88319
0.88085 0.87851 0.87615 0.87379 0.87142 0.86905 0.86667 0.86429 0.86190 0.85950
0.85710 0.85470 0.85228 0.84986 0.84743 0.84500 0.84257 0.84013 0.83768 0.83523
0.83277 0.83029 0.82780 0.82530 0.82279 0.82027 0.81774 0.81519 0.81262 0.81003
0.80742 0.80478 0.80211 0.79941 0.79669 0.79393 0.79114 0.78831 0.78542 0.78247
0.77946 0.77641]';//Densidad (g/ml; Etanol-Agua, 35C).
elseif h==40
Datos=[0:1:100;//Fraccin masa.
0.99225 0.99034 0.98846 0.98663 0.98485 0.98311 0.98142 0.97975 0.97808
0.97641 0.97475 0.97312 0.97150 0.96989 0.96829 0.96670 0.96512 0.96352 0.96189
0.96023 0.95856 0.95687 0.95516 0.95343 0.95168 0.94991 0.94810 0.94625 0.94438
0.94248 0.94055 0.93860 0.93662 0.93461 0.93257 0.93051 0.92843 0.92634 0.92422
0.92208 0.91992 0.91774 0.91554 0.91332 0.91108 0.90884 0.90660 0.90434 0.90207
0.89979 0.89750 0.89519 0.89288 0.89056 0.88823 0.88589 0.88356 0.88122 0.87888
0.87653 0.87417 0.87180 0.86943 0.86705 0.86466 0.86227 0.85987 0.85747 0.85407
0.85266 0.85025 0.84783 0.84540 0.84297 0.84053 0.83809 0.83564 0.83319 0.83074
0.82827 0.82578 0.82329 0.82079 0.81828 0.81576 0.81322 0.81067 0.80811 0.80552
0.80291 0.80028 0.79761 0.79491 0.79220 0.78947 0.78670 0.78388 0.78100 0.77806
0.77507 0.77203]';//Densidad (g/ml; Etanol-Agua,40C).
else
printf('\nContine; los datos a la temperatura solicitada no se encuentran en
la base de datos.\n')
Datos=[0:1:100;//Fraccin masa. Datos de cabecera.
0.99225 0.99034 0.98846 0.98663 0.98485 0.98311 0.98142
641 0.97475 0.97312 0.97150 0.96989 0.96829 0.96670 0.96512
023 0.95856 0.95687 0.95516 0.95343 0.95168 0.94991 0.94810
248 0.94055 0.93860 0.93662 0.93461 0.93257 0.93051 0.92843
208 0.91992 0.91774 0.91554 0.91332 0.91108 0.90884 0.90660
979 0.89750 0.89519 0.89288 0.89056 0.88823 0.88589 0.88356
653 0.87417 0.87180 0.86943 0.86705 0.86466 0.86227 0.85987
266 0.85025 0.84783 0.84540 0.84297 0.84053 0.83809 0.83564
827 0.82578 0.82329 0.82079 0.81828 0.81576 0.81322 0.81067
291 0.80028 0.79761 0.79491 0.79220 0.78947 0.78670 0.78388
7507 0.77203]';//Densidad (g/ml; Etanol-Agua,40C).
end

0.97975 0.97808 0.97


0.96352 0.96189 0.96
0.94625 0.94438 0.94
0.92634 0.92422 0.92
0.90434 0.90207 0.89
0.88122 0.87888 0.87
0.85747 0.85407 0.85
0.83319 0.83074 0.82
0.80811 0.80552 0.80
0.78100 0.77806 0.7

//1. Clculos.
R=[sum(Datos(:,1).^4) sum(Datos(:,1).^3) sum(Datos(:,1).^2);
sum(Datos(:,1).^3) sum(Datos(:,1).^2) sum(Datos(:,1));
sum(Datos(:,1).^2) sum(Datos(:,1)) length(Datos(:,1))];
s=[sum(Datos(:,2).*Datos(:,1).^2) sum(Datos(:,2).*Datos(:,1)) sum(Datos(:,2))]';
//A=[sum(Datos(:,1).^6) sum(Datos(:,1).^5) sum(Datos(:,1).^4) sum(Datos(:,1).^3)
;
//sum(Datos(:,1).^5) sum(Datos(:,1).^4) sum(Datos(:,1).^3) sum(Datos(:,1).^2);
//sum(Datos(:,1).^4) sum(Datos(:,1).^3) sum(Datos(:,1).^2) sum(Datos(:,1));
//sum(Datos(:,1).^3) sum(Datos(:,1).^2) sum(Datos(:,1)) length(Datos(:,1))];
//b=[sum(Datos(:,2).*Datos(:,1).^3) sum(Datos(:,2).*Datos(:,1).^2) sum(Datos(:,2
).*Datos(:,1)) sum(Datos(:,2))]';
Q=R\s;
Resultados=Densidad(Datos(:,1));
Error=abs(100*(Resultados-Datos(:,2)).*Resultados.^-1);

//3. Resultados.
printf('\n ---Fraccin masa-------Densidad------Densidad ajustada--------Error--\n')
for i=1:length(Datos(:,1))
printf('\n\t %0.4f \t %0.3f
,Resultados(i),Error(i))
end

\t

%0.3f \t\t%0.4f',Datos(i,1),Datos(i,2)

printf('\n\nFrmula del ajuste: Densidad=Ax+Bx+C; x: Fraccin masa.')


printf('\n\n\tA=%0.9fe-6, B=%0.9fe-3, C=%0.9f.\n',Q(1)*1e6,Q(2)*1e3,Q(3))
//4. Ajuste respecto a temperaturas.
printf('\n----------------------------------------------------------------------------')
printf('\n\nSi desea realizar el ajuste respecto a temperaturas, presione 1,\n\t
')
k=input('de lo contrario, presione otra cifra... ');
if k==1
printf('\n----------------------------------------------------------------------------')
printf('\nAjuste entre densidad, fraccin masa y temperatura.\n')
Datosx=[10:5:40;//Temperaturas (C).
-9.760837192e-6 -9.080449336e-6 -8.444517838e-6 -7.850876178e-6 -7.301827099
e-6 -6.782424616e-6 -6.283153444e-6;//A.
-1.026876327e-3 -1.133862347e-3 -1.233657127e-3 -1.326777379e-3 -1.413176288
e-3 -1.494739134e-3 -1.572816979e-3;//B.
0.997268661 0.997132524 0.996672486 0.995910888 0.994862311 0.993567980 0.99
2058126]';//C.
P=[sum(Datosx(:,1).^4) sum(Datosx(:,1).^3) sum(Datosx(:,1).^2);
sum(Datosx(:,1).^3) sum(Datosx(:,1).^2) sum(Datosx(:,1));
sum(Datosx(:,1).^2) sum(Datosx(:,1)) length(Datosx(:,1))];
u=[sum(Datosx(:,2).*Datosx(:,1).^2) sum(Datosx(:,2).*Datosx(:,1)) sum(Datosx
(:,2))]';
A=P\u;//A.
u=[sum(Datosx(:,3).*Datosx(:,1).^2) sum(Datosx(:,3).*Datosx(:,1)) sum(Datosx
(:,3))]';
B=P\u;//B.
u=[sum(Datosx(:,4).*Datosx(:,1).^2) sum(Datosx(:,4).*Datosx(:,1)) sum(Datosx
(:,4))]';
C=P\u;//C.
printf('\n')
w=input('Indique la temperatura de la mezcla... ')
Q(1)=Const1(w);
Q(2)=Const2(w);
Q(3)=Const3(w)

Resultados=Densidad(Datos(:,1));
//Nuevos resultados.
Compare=0;
if w==h
printf('\n')
printf('\nSi desea comparar respecto a datos experimentales, presione 1\
n')
Compare=input('de lo contrario, presione otra cifra... ')
end
if Compare==1
Error=abs(100*(Resultados-Datos(:,2)).*Resultados.^-1);
printf('\nAjuste entre fraccin masa y densidad; mezcla de Etanol y Agua.\
n')
printf('\n ---Fraccin masa-------Densidad------Densidad ajustada-------Error---\n')
for i=1:length(Datos(:,1))
printf('\n\t %0.4f \t %0.3f
tos(i,2),Resultados(i),Error(i))
end

\t

%0.3f \t\t%0.4f',Datos(i,1),Da

printf('\n\nFrmula del ajuste: Densidad=Ax+Bx+C; x: Fraccin masa.')


printf('\n\n\tA=%0.9fe-6, B=%0.9fe-3, C=%0.9f.\n',Q(1)*1e6,Q(2)*1e3,Q(3)
)
printf('\n\n\tA=Rx+Sx+T, R=%0.9fe-10, S=%0.9fe-7, T=%0.9fe-5.\n',A(1)*1e1
0,A(2)*1e7,A(3)*1e5)
printf('\n\tB=Ux+Vx+W, U=%0.9fe-7, V=%0.9fe-5, W=%0.9fe-4.\n',B(1)*1e7,B(
2)*1e5,B(3)*1e4)
printf('\n\tC=Xx+Yx+Z, X=%0.9fe-6, Y=%0.9fe-4, Z=%0.9f.\n',C(1)*1e6,C(2)*
1e4,C(3))
else
printf('\nAjuste entre fraccin masa y densidad; mezcla de Etanol y Agua.\
n')
printf('\n ---Fraccin masa-------Densidad ajustada\n')
for i=1:length(Datos(:,1))
printf('\n\t %0.4f \t %0.5f',Datos(i,1),Resultados(i))
end
printf('\n\nFrmula del ajuste: Densidad=Ax+Bx+C; x: Fraccin masa.')
printf('\n\n\tA=%0.9fe-6, B=%0.9fe-3, C=%0.9f.\n',Q(1)*1e6,Q(2)*1e3,Q(3)
)
printf('\n\n\tA=Rx+Sx+T, R=%0.9fe-10, S=%0.9fe-7, T=%0.9fe-5.\n',A(1)*1e1
0,A(2)*1e7,A(3)*1e5)
printf('\n\tB=Ux+Vx+W, U=%0.9fe-7, V=%0.9fe-5, W=%0.9fe-4.\n',B(1)*1e7,B(
2)*1e5,B(3)*1e4)
printf('\n\tC=Xx+Yx+Z, X=%0.9fe-6, Y=%0.9fe-4, Z=%0.9f.\n',C(1)*1e6,C(2)*
1e4,C(3))
end

else

printf('\nAuf viedersehen!\n')
end

Вам также может понравиться