quiz 1 con seudocodigo
Post on 10-Apr-2016
17 Views
Preview:
DESCRIPTION
TRANSCRIPT
QUIZ DOS DE OPERACIONES UNITARIAS I
Presentado por:
Saúl Pérez Beltrán
2040775
Ronald Julián Sarmiento
2042130
Presentado a:
Prof. Crisóstomo Barajas
UNIVERSIDAD INDUSTRIAL DE SANTANDER
FACULTAD DE CIENCIAS FISICOQUIMICAS
ESCUELA DE INGENIERIA QUIMICA
BUCARAMANGA
Febrero 11 de 2008
Quiz 2
AJUSTE LA MEJOR FUNCION PARA LOS DATOS DE RETENCION:
Para lograr realizar el ajuste de una función a los datos experimentales, se ha generado un algoritmo en scilab 4.1-2 (adjunto al final), que se fundamenta en la regresión por mínimos cuadrados.
A partir de las graficas generadas para cada problema, (“X vs. r (solución retenida)” y “X vs. N = 1/r”) se estima visualmente cuál de estas presenta mayor bondad al ajuste por mininos cuadrados, se procede a ajustar la grafica seleccionada.
Para determinar cual polinomio se ajusta mejor a la grafica seleccionada, se ha tomado como parámetro el coeficiciente de determinación para la regresión, escogiendo el que más se aproxime a la unidad, este será el polinomio seleccionado.
1- Se ha de extraer aceite de hígado de pescado en un aparato de extracción continuo en contracorriente, empleando como solvente Éter etílico con 3 % de aceite. Al sistema de extracción entran 500 kg/h de hígados que contienen 25% en peso de aceite (sobre base de solvente. Si la cantidad de solvente empleado es de 400kg/h, y la composición de refinado separado como flujo inferior es de 1% en peso de aceite (sobre base libre en solvente).
Soluto: kg aceite de hígado
Solvente: kg Éter etílico con 3% de aceite
Inerte: kg hígado de pescado
Solución: kg soluto +kg solvente
La cantidad de solución retenida por lo hígados, determinada experimentalmente, esta reportada en la tabla siguiente:
Tabla 1: datos experimentales
En donde X = kg soluto / kg solución y N = kg inerte / kg solución
Graficas generada a partir de la tabla 1:
Figura 1: X vs. r (solución retenida)
Figura 2: X vs. N = 1/r
Figura 3: Función ajustada a los datos experimentales
Datos de la regresión:
Orden del polinomio interpolante R2 (coeficiente de determinación)1 0.98409133 0.9986457
Polinomio seleccionado:
N (X )=26.26994+7.4726057∗X+3.5620643∗X2+1.9820213∗X3
2- mediante la reacción Na2CO3+CaO+H2O→CaCO3+NaOH se obtiene una suspensión de CaCO3en solución de NaOH . Se prentende separar el 95% del NaOHempleando una batería de 4 extractores en contracorriente con agua como agente extractor. Al primer Extractor entran los productos de la reacción acompañados de 0.5 kg agua / kg de CaCO3. En las condiciones de extracción la cantidad de líquido retenida por el CaCO3 es función de la concentración de la solución, de acuerdo a los siguientes datos:
Soluto: kg NaOH
Solvente: kg agua
Inerte: kg CaCO3
Solución: kg soluto +kg solvente
Tabla de datos:
Graficas
Figura 4: X vs. N = 1/r
Figura 5: X vs. r (solución retenida)
Figura 6: Función ajustada a los datos experimentales
Datos de la regresión:
Orden del polinomio interpolante R (coeficiente de determinación)2 0.99779683 0.9991988
Polinomio seleccionado:
r (X )=1.5057143+0.0373810∗X+0.0007143∗X2+0.0001333∗X3
N ( x )= 1r ( x )
= 11.5057143+0.0373810∗X+0.0007143∗X2+0.0001333∗X3
3- se ha de proyectar una instalación de extracción en múltiples etapas con funcionamiento en contracorriente para tratar 500 kg/h de producto pulverulento de composición 20 % en peso de aceite y 77% de materia inerte. Como solvente se emplea benceno con un 2% en peso de aceite, y en el extracto ha de separarse el 90% de aceite contenido en la alimentación (Ro). De las experiencias realizadas en laboratorio en condiciones análogas se ha encontrado que la cantidad de líquido retenida por los sólidos depende de la concentración del siguiente modo:
Tabla:
Graficas:
Figura 8: X vs. r (solución retenida)
Figura 9: Función ajustada a los datos experimentales
Figura 7: X vs. r (solución retenida)
Regresión:
Orden del polinomio interpolante R (coeficiente de determinación)3 0.9986788
2 0.9984014
Polinomio seleccionado:
r (X )=0.4004545+0.0761905∗X+0.0811688∗X2+0.0757576∗X3
N ( x )= 1r ( x )
= 10.4004545+0.0761905∗X+0.0811688∗X2+0.0757576∗X3
4- Una harina de pescado contiene aceite que a de extraerse con benceno operando en múltiples etapas en corriente directa. Experimentalmente se ha encontrado que la disolución retenida por el solido inerte es función de la composición de la disolución, de acuerdo con los siguientes datos:
Tabla de datos
Graficas
Figura 11: X vs. r (solución retenida)
Figura 12: Función ajustada a los datos experimentales
Figura 10: X vs. N = 1/r
Datos de la Regresión:
Orden del polinomio interpolante R (coeficiente de determinación)3 0.9999480
2 0.9988688
Polinomio seleccionado:
r (X )=0.5000606+0.0153968∗X+0.3322511∗X2±0.1565657∗X3
N ( x )= 1r ( x )
= 10.5000606+0.0153968∗X+0.3322511∗X2±0.1565657∗X3
Código scilab 4.1-2 que ha generado la solución:
clear
m = input('Cantidad de datos a interpolar: ');//cantidad de parejas
for i = 1:1:m
disp(i,'pocision del dato: ');
x(i) = input('variable independiente: ');
y(i) = input('variable dependiente: ');
end
for i = 1:1:length(y)
N(i) = 1/y(i);
end
scf(0);
plot2d(x,N,style= -1)
scf(1);
plot2d(x,y,style = -2);
disp(' X r N = 1/r ');
disp([x y N]);
ss = input('en cual hacer la regresion: ')
if ss == 1
scf(0);
y = N;
end
kkk = 1;
continuar = 1;
while continuar ==1;
n = input('orden del polinomio interpolante: ');
clear A
clear B
clear coef
A = zeros(n+1,n+1);
A(1,1) = m;
k = 1;
for j =2:1:n+1
A(1,j) = sum(x^k);
k = k+1;
end
k = 0;
for i = 2:1:n+1
kk = 1;
for j = 1:1:n+1
A(i,j) = sum(x^(k+kk));
kk = kk + 1;
end
k = k+1;
end
d = 0;
for i = 1:1:n+1
productos = 0;
for j = 1:1:m
productos = productos + (x(j))^d*y(j);
end
B(i,1) = productos;
d = d+1;
end
coef = inv(A)*B ;
if n == 1
deff("[Y]=f(X)","Y=coef(1) + coef(2)*X");
elseif n ==2
deff("[Y]=f(X)","Y=coef(1) + coef(2)*X + coef(3)*X^2");
elseif n == 3
deff("[Y]=f(X)","Y=coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3");
elseif n == 4
deff("[Y]=f(X)","Y=coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4");
elseif n == 5
deff("[Y]=f(X)","Y=coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4+coef(6)*X^5");
elseif n == 6
deff("[Y]=f(X)","Y=coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4+coef(6)*X^5+coef(7)*X^6");
elseif n == 7
deff("[Y]=f(X)","Y=coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4+coef(6)*X^5+coef(7)*X^6+coef(8)*X^7");
elseif n == 8
deff("[Y]=f(X)","Y=coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4+coef(6)*X^5+coef(7)*X^6+coef(8)*X^7+coef(9)*X^8");
elseif n == 10
deff("[Y]=f(X)","Y=coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4+coef(6)*X^5+coef(7)*X^6+coef(8)*X^7+coef(9)*X^8+coef(10)*X^9+coef(11)*X^10");
end
X = linspace(x(1),x(length(x)),1000)';
//graficas
plot(X,f);
set(gca(),"auto_clear","off");
plot2d(x,y,style = -2);
i = input('desea ver los datos interpolados (si = 1 no = 0)');
if i ==1
disp([' x y(interpolado)']);
disp([X f(X)]);
end
disp('para evaluar la funcion regresada en un punto cualquiera haga lo siguiente: ')
disp('');
disp('myfun(x) ');
/////////////////////////para calular la derivada si es necesario
if n == 1
function funcion=myfun(X)
funcion = coef(1) + coef(2)*X
endfunction
elseif n ==2
function funcion=myfun(X)
funcion = coef(1) + coef(2)*X + coef(3)*X^2
endfunction
elseif n == 3
function funcion=myfun(X)
funcion = coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3
endfunction
elseif n == 4
function funcion=myfun(X)
funcion = coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4
endfunction
elseif n == 5
function funcion=myfun(X)
funcion = coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4+coef(6)*X^5
endfunction
elseif n == 6
function funcion=myfun(X)
funcion = coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4+coef(6)*X^5+coef(7)*X^6
endfunction
elseif n == 7
function funcion=myfun(X)
funcion = coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4+coef(6)*X^5+coef(7)*X^6+coef(8)*X^7
endfunction
elseif n == 8
function funcion=myfun(X)
funcion = coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4+coef(6)*X^5+coef(7)*X^6+coef(8)*X^7+coef(9)*X^8
endfunction
elseif n == 10
function funcion=myfun(X)
funcion = coef(1) + coef(2)*X + coef(3)*X^2+ coef(4)*X^3+coef(5)*X^4+coef(6)*X^5+coef(7)*X^6+coef(8)*X^7+coef(9)*X^8+coef(10)*X^9+coef(11)*X^10
endfunction
end
//calculo del coeficiente de determinacion
y_media = sum(y)/length(y);
numerador = 0;
denominador = 0;
for i = 1:1:length(x)
numerador = numerador + (myfun(x(i))-y_media)^2;
denominador = denominador + (y(i)-y_media)^2;
end
r_cuadrado(kkk) = numerador/denominador;
disp(r_cuadrado(kkk),'coeficicente de determinacion de la regresion: ');
//analisis de varianza de la regrecion
continuar = input('desea generar otro polimonio interpolante para estos datos: ')
kkk = kkk+1;
end
top related