Vous êtes sur la page 1sur 18

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE INGENIERÍA QUÍMICA


CARRERA DE INGENIERÍA QUÍMICA

SIMULACIÓN DE PROCESOS II

ECUACIONES NO LINEALES

TALLER #2

ESTUDIANTE:
LUIS FERNANDO CACHIMUEL VASQUEZ

NOMBRE DEL DOCENTE:


ING. GONZALO IVAN VILLA MANOSALVAS.

PARALELO: “7-1”

SEPTIMO SEMESTRE CICLO 1

FECHA DE ENTREGA:
Fecha y hora límite de entrega 07/16, 9:00:00 AM

PERIODO LECTIVO: 2019-2020


Aplicaciones del cálculo simbólico de MATLAB a la resolución de ecuaciones
no lineales
Cinética de las Reacciones
Calcule la composición de la mezcla en equilibrio, en porcentaje molar de la siguiente
reacción en fase gaseosa a 475°K y a 1 atm de presión.

La constante de equilibrio correspondiente es Log Kp = 0,227.. asuma una tolerancia de


1.0^-4
Balance de moles

Por otra parte log Kp = 0,0227 con ello calculamos Kp con el antilog no que nos da 1,686,

con este valor se plantea la ley de acción de masas:

La presión total es 1 atm, por tanto:


∆n=3-2, reemplazando términos
Resolución en Matlab

Análisis pasó a paso

clear,clc
Clear, elimina todas las variables del espacio de trabajo actual, liberándolas de la
memoria del sistema. Clc, borra todo el texto de la ventana de comandos, dando por
resultado una pantalla clara.
syms x
Enumera el nombre de la variable ‘x’ en el área de trabajo

Num=(x/(1+x))*((2*x)/(1+x))^2
Muestra en la Comand Window el numerador de la funcion

Den=((1-2*x)/(1+x))^2
Muestra en la Comand Window el denominador de la función

Fraccion=Num/Den
Muestra la función algebraica simplificada

expresion= 1.686*((2*x-1)^2*(x+1))-4*x^3
‘expresion’ es el nombre dado a la función algebraica simplificada determinada
anteriormente

z=collect(expresion)
Recoge los coeficientes de las potencias por defecto de ‘expresion’

expresion=vpa(z)
Evalua cada digito de ‘z’
expresion_final=z/1.686
Se divide ‘z’ para la constante de equilibrio
f_x=vpa(expresion_final)
Evalua cada elemento de la expresión establecida

fplot('1.62752076*x^3 - 3.0*x + 1.0',[-2.5 2.5 -10 10])


Traza la curva establecida por la función con la que estamos trabajando

title('Funcion problema')
Da un titulo a la grafica

xlabel('X')
Etiqueta el eje de las abcisas

ylabel('Y')
Etiqueta el eje de las ordenadas

grid on
Muestra las lineas cuadriculadas del grafico

Raiz_buscada=fzero('1.62752076*x^3 - 3.0*x + 1.0',0.5)


Muestra el resultado o raíz que se estaba buscando como solución al problema.

Comand Window
CONCLUSIÓN
Los métodos matemáticos estudiados son de gran utilidad para la resolución de
ejercicios complicados que implican ecuaciones de más de una variable. Los métodos
manuales son de gran apoyo pero gastan tiempo al estudiante, ante esto se propone la
herramienta tecnológica, MATLAB y sus diversas funciones y comandos. En este ejercicio
de proponen comandos para la resolución de ecuaciones no lineales, que muestran la
ecuación, la simplifican, despejan las variables y establecen la o las soluciones más
adecuadas, en la parte superior se propone el ejercicio y se explica pasa a paso la
resolución el mismo. Al final la raíz o solución encontrada es 0.3583, para complementar
la respuesta se adjunta un gráfico que muestra el punto exacto de corte de la solución
en el plano cartesiano.
NUEVOS COMANDOS
Collect
Coeficientes de recoger
Sintaxis de
collect(P)
collect(P,expr)
Descripción
Ejemplo
collect(P) Los coeficientes se recogen en Plas potencias de la variable por defecto
de P. La variable por defecto se encuentra en symvar .
Ejemplo
collect(P,expr) Recoge coeficientes en P las potencias de la expresión
simbólica expr . Si P es un vector o matriz, entonces actúa de forma elemental. Si es un
vector, entonces encuentra los coeficientes en términos de todas las expresiones
en. collect Pexprcollectexpr
Ejemplos
Recoger los coeficientes de los poderes de la variable por defecto
Recoge los coeficientes de una expresión simbólica.
syms x
coeffs = collect ((exp (x) + x) * (x + 2))
coeffs =
x ^ 2 + (exp (x) + 2) * x + 2 * exp (x)
Debido a que no especificó la variable, utiliza la variable predeterminada definida
por . Para esta expresión, la variable por defecto es . collect symvarx
symvar ((exp (x) + x) * (x + 2), 1)
ans =
X
Recoger Coeficientes de las potencias de una Variable Particular
Recoge los coeficientes de una variable particular, especificando la variable como el
segundo argumento para recoger.
Recoge los coeficientes de una expresión en potencias de xy luego en poderesy .
syms xy
coeffs_x = recopilar (x ^ 2 * y + y * x - x ^ 2 - 2 * x, x)
coeffs_y = recopilar (x ^ 2 * y + y * x - x ^ 2 - 2 * x, y)
coeffs_x =
(y - 1) * x ^ 2 + (y - 2) * x
coeffs_y =
(x ^ 2 + x) * y - x ^ 2 - 2 * x
Coeficientes de recoger en potencias xy yespecificar el segundo argumento como
vector de variables.
syms ab
coeffs_xy = recopilar (a ^ 2 * x * y + a * b * x ^ 2 + a * x * y + x ^ 2, [xy])
coeffs_xy =
(a * b + 1) * x ^ 2 + (a ^ 2 + a) * x * y
Recoger Coeficientes en términos de iypi
Recoge los coeficientes de una expresión en términos de iy luego en términos depi .
syms xy
coeffs_i = recopilar (2 * x * i - 3 * i * y, i)
coeffs_pi = recopilar (x * pi * (pi - y) + x * (pi + i) + 3 * pi * y, pi)
coeffs_i =
(2 * x - 3 * y) * 1i
coeffs_pi =
x * pi ^ 2 + (x + 3 * y - x * y) * pi + x * 1i
Recoger Coeficientes de expresiones simbólicas y funciones
Recoger los coeficientes de las expresiones y funciones especificando el segundo
argumento como una expresión o función. Recoge los coeficientes de múltiples
expresiones o funciones mediante el uso de vectores de entrada.
Ampliar sin(x + 3*y) y recoger los coeficientes de cos(y)y luego de sin(x)ysin(y) .
syms xy
f = expand (sin (x + 3 * y));
coeffs_cosy = collect (f, cos (y))
coeffs_cosy =
4 * sin (x) * cos (y) ^ 3 + 4 * cos (x) * sin (y) * cos (y) ^ 2 + (-3 * sin (x)) * cos (y) - cos ( x)
* pecado (y)
coeffs_sinxsiny = colecciona (f, [sin (x) sin (y)])
coeffs_sinxsiny =
(4 * cos (y) ^ 3 - 3 * cos (y)) * sin (x) + (4 * cos (x) * cos (y) ^ 2 - cos (x)) * sin (y)
Recoge los coeficientes de la función simbólica y(x)en una expresión simbólica.
syms y (x)
f = y ^ 2 * x + y * x ^ 2 + y * sin (x) + x * y;
coeffs_y = recoger (f, y)
coeffs_y (x) =
x * y (x) ^ 2 + (x + sin (x) + x ^ 2) * y (x)
Recoger Coeficientes para cada elemento de la matriz
Llame a en una una matriz. collectElemento sabio actuará sobre la matriz.collect
syms xy
collect ([(x + 1) * (y + 1), x ^ 2 + x * (x -y); 2 * x * y - x, x * y + x / y], x)
ans =
[(y + 1) * x + y + 1, 2 * x ^ 2 - y * x]
[(2 * y - 1) * x, (y + 1 / y) * x]
Recoger Coeficientes de la función de llamadas
Recoge los coeficientes de llamadas a una función determinada, especificando el
nombre de la función como segundo argumento. Recoger los coeficientes de las
llamadas de función en múltiples funciones, especificando las funciones de múltiples
funciones como una matriz celular de los vectores de caracteres.
Recoge los coeficientes de llamadas a la función de sinenF, donde Fcontiene varias
llamadas a funciones diferentes.
syms abcdefx
F = a * sin (2 * x) + b * sin (2 * x) + c * cos (x) + d * cos (x) + e * sin (3 * x) + f * sin (3 * x
);
Recoger (F, 'pecado')
ans =
(a + b) * sin (2 * x) + (e + f) * sin (3 * x) + c * cos (x) + d * cos (x)
Recoge los coeficientes de llamadas a funciones el siny cosenF .
Recolectar (F, {'pecado' 'cos'})
ans =
(c + d) * cos (x) + (a + b) * sin (2 * x) + (e + f) * sin (3 * x)
vpa
Aritmética de precisión variable (aritmética de precisión arbitraria)
Colapso en página
Sintaxis
vpa(x)
vpa(x,d)
Descripción
Ejemplo
vpa(x) utiliza aritmética de punto flotante de precisión variable ( VPA ) para evaluar cada
elemento de la entrada simbólica x con d dígitos por lo menos significativos,
donde d está el valor de la digits función. El de predeterminado de valor digits es de 32.
Ejemplo
vpa(x,d) utiliza al menos d dígitos significativos, en lugar del valor de digits.
Ejemplos
Evaluar entradas simbólicas con aritmética de precisión variable
Evaluar entradas simbólicas con aritmética de punto flotante de precisión variable. Por
defecto, valores calcula una facturación de 32 dígitos. vpa
syms x
p = sym (pi);
piVpa = vpa (p)
piVpa =
3.1415926535897932384626433832795
a = sym (1/3);
f = a * pecado (2 * p * x);
fVpa = vpa (f)
fVpa =
0.333333333333333333333333333333333333 * sin
(6.283185307179586476925286766559 * x)
Evaluar elementos de vectores matrices de o con aritmética de precisión variable.
V = [x / pa ^ 3];
M = [pecado (p) cos (p / 5); exp (p * x) x / log (p)];
vpa (V)
vpa (M)
ans =
[0.31830988618379067153776752674503 * x,
0.037037037037037037037037037037037]
ans =
[0, 0.80901699437494742410229341718282]
[exp (3.1415926535897932384626433832795 * x),
0.87356852683023186835397746476334 * x]
fplot
Trazar una expresión o función
Contraer todo en la página
Sintaxis
fplot(f)
fplot(f,xinterval)
fplot(funx,funy)
fplot(funx,funy,tinterval)
fplot(___,LineSpec)
fplot(___,Name,Value)
fplot(ax,___)
fp = fplot(___)
[x,y] = fplot(___)
Descripción
ejemplo
fplot(f) traza la curva definida por la función y = f(x) sobre el intervalo predeterminado [-
5 5] para x.
Ejemplo
fplot(f,xinterval) traza sobre el intervalo especificado. Especifique el intervalo como un
vector de dos elementos con la forma [xmin xmax].
Ejemplo
fplot(funx,funy) traza la curva definida por x = funx(t) y y = funy(t) sobre el intervalo
predeterminado [-5 5] para t.
fplot(funx,funy,tinterval) traza sobre el intervalo especificado. Especifique el intervalo
como un vector de dos elementos con la forma [tmin tmax].
fplot(___,LineSpec) especifica el estilo de línea, el símbolo de marcador y el color de
línea. Por ejemplo, '-r' traza una línea roja. Utilice esta opción después de cualquiera de
las combinaciones de argumentos de entrada en las sintaxis anteriores.
Ejemplo
fplot(___,Name,Value) especifica las propiedades de la línea mediante uno o varios
argumentos de par nombre-valor. Por ejemplo, 'LineWidth',2 especifica un ancho de
línea de 2 puntos.
fplot(ax,___) traza en los ejes especificados por ax en lugar de en los ejes actuales (gca).
Especifique los ejes como el primer argumento de entrada.
Ejemplo
fp = fplot(___) devuelve un objeto
FunctionLine o un objeto ParameterizedFunctionLine, dependiendo de las entradas.
Utilice fp para consultar y modificar las propiedades de una línea específica. Para
obtener una lista de propiedades, consulte FunctionLine
Properties o ParameterizedFunctionLine Properties.
[x,y] = fplot(___) devuelve las abscisas y ordenadas de la función sin crear un gráfico.
Esta sintaxis se eliminará en una versión futura. Utilice en su lugar las
propiedades XData e YData del objeto de línea, fp.

Nota
fplot ya no admite argumentos de entrada para especificar la tolerancia de error o el
número de puntos de evaluación. Para especificar el número de puntos de evaluación,
utilice la propiedad MeshDensity.
Ejemplos
Trazar una expresión
Probar este ejemplo
Trace sin(x) en el intervalo x predeterminado [-5 5].
fplot(@(x) sin(x))
xlabel
Etiquetar el eje x
Sintaxis
xlabel(txt)
xlabel(target,txt)
xlabel(___,Name,Value)
t = xlabel(___)
Descripción
Ejemplo
xlabel(txt) etiqueta el eje x de los ejes actuales o el gráfico devuelto por el comando gca.
Al reemitir el comando xlabel, se sustituye la etiqueta anterior por la nueva etiqueta.
Ejemplo
xlabel(target,txt) agrega la etiqueta a los ejes o el gráfico especificado por target.
Ejemplo
xlabel(___,Name,Value) modifica el aspecto de la etiqueta mediante uno o varios
argumentos de par nombre-valor. Por ejemplo, 'FontSize',12 establece el tamaño de
fuente en 12 puntos. Especifique los argumentos del par nombre-valor después de todos
los demás argumentos de entrada. No se admite la modificación de la apariencia de la
etiqueta para todos los tipos de gráficos.
Ejemplo
t = xlabel(___) devuelve el objeto de texto utilizado como etiqueta del eje x.
Utilice t para realizar modificaciones futuras en la etiqueta una vez creada.
Ejemplos
Contraer todo
Etiquetar el eje x
Probar este ejemplo
Muestre Population por debajo del eje x.
plot((1:10).^2)
xlabel('Population')

ylabel
Eje y etiqueta
Sintaxis de
ylabel(txt)
ylabel(target,txt)
ylabel(___,Name,Value)
t = ylabel(___)
Descripción
Ejemplo
ylabel(txt) etiquetas y-eje de los ejes actuales o gráfico devuelto por el comando
de ACG . Volver a emitir el comando ylabel causa de la etiqueta nueva para reemplazar
la etiqueta antigua.
Ylabel(target,txt) agrega la etiqueta a los ejes o tabla especificada por destino .
ejemplo
ylabel(___,Name,Value)modifica la apariencia de la etiqueta usando uno o más
argumentos de nombre-valor. Por ejemplo’FontSize’, 12Establecer el tamaño de la
fuente a 12 puntos. Especificar argumentos para después de todos los demás
argumentos de entrada. Modificar el aspecto de la etiqueta no es compatible con todos
los tipos de gráficos.
t = ylabel(___) Devuelve el objeto de texto usado como y-Eiquiqueta del eje. Use t para
hacer futuras modificaciones a la etiqueta después de haber creado.
Ejemplos
Eje y etiqueta
Probar este ejemplo
parcela ((1:10). ^ 2)
ylabel ( ‘Población’ )

Grid on
Mostrar u ocultar ejes líneas de cuadrícula
Contraer todo en la página
Sintaxis
grid on
grid off
grid
grid minor
grid(target,___)
Descripción
ejemplo
grid on muestra las líneas de cuadrícula principales para los ejes o gráficos actuales
devueltos por el comando gca . Las líneas de cuadrícula principales se extienden desde
cada marca de graduación.
Ejemplo
grid off quita todas las líneas de cuadrícula de los ejes o gráficos actuales.
grid alterna la visibilidad de las líneas de cuadrícula principales.
Ejemplo
grid minor alterna la visibilidad de las líneas de cuadrícula menores. Las líneas de
cuadrícula menores están entre las marcas de las garrapatas. No todos los tipos de
gráficos soportan líneas de cuadrícula menores.
ejemplo
grid(target,___) utiliza los ejes o el gráfico especificados por target en lugar de los ejes
o el gráfico actuales. Especifique target como el primer argumento de entrada. Utilice
comillas simples alrededor de otros argumentos de entrada, por
ejemplo, grid(target,'on').
Ejemplos
contraer todo
Mostrar líneas de cuadrícula
Probar este ejemplo
Mostrar las líneas de cuadrícula para una trama sinusoidal.
x = linspace(0,10);
y = sin(x);
plot(x,y)
grid on
fzero
Raíz de la función no lineal
Sintaxis
x = fzero(fun,x0)
x = fzero(fun,x0,options)
x = fzero(problem)
[x,fval,exitflag,output] = fzero(___)
Descripción
Ejemplo
x = fzero(fun,x0) intenta encontrar un punto x donde fun(x) = 0. Esta solución es
donde fun(x) cambia el signo:fzero no puede encontrar una raíz de una función
como x^2.
Ejemplo
x = fzero(fun,x0,options) utiliza options para modificar el proceso de la solución.
Ejemplo
x = fzero(problem) resuelve un problema de búsqueda de raíz especificado por problem.
Ejemplo
[x,fval,exitflag,output] = fzero(___) devuelve fun(x) en la salida fval , exitflag que
codifica la razón fzero detenido, y una estructura de salida que contiene información en
el proceso de solución.

Ejemplos
Contraer todo
Raíz a partir de un punto
Probar este ejemplo

Calcule encontrando el cero de la función sine cerca de 3.


fun = @sin; % function
x0 = 3; % initial point
x = fzero(fun,x0)
x = 3.1416
Raíz a partir de un intervalo
Probar este ejemplo
Encuentre el cero del coseno entre 1 y 2.
fun = @cos; % function
x0 = [1 2]; % initial interval
x = fzero(fun,x0)
x = 1.5708

Tenga en cuenta que y difieren en signo.


Raíz de una función definida por un archivo
Encontrar un cero de la función f(x) = x3 – 2x – 5.
En primer lugar, escriba un archivo denominado f.m.
function y = f(x)
y = x.^3 - 2*x - 5;
Guarde f.m en la ruta de acceso MATLAB® .
Encuentre el cero de f(x) cerca de 2.
fun = @f; % function
x0 = 2; % initial point
z = fzero(fun,x0)
z = 2.0946
Dado que f(x) es un polinomio, se puede encontrar el mismo cero real y un par de ceros
conjugado complejo, utilizando el comando roots .
roots([1 0 -2 -5])
ans =
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
BIBLIOGRAFIA
https://la.mathworks.com/help/symbolic/collect.html

Vous aimerez peut-être aussi