Saltar al contenido principal
LibreTexts Español

2.9: Sintaxis útil de Mathematica- Consejos sobre cómo usar Mathematica para modelar procesos químicos

  • Page ID
    85593
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Sección 9. Sintaxis útil de Mathematica: Consejos sobre cómo usar Mathematica para modelar procesos químicos

    Título: Funciones útiles en Mathematica como pertenecientes a los controles de proceso

    Introducción

    Mathematica tiene muchas funciones diferentes que son muy útiles para controlar procesos de ingeniería química. La sintaxis de Mathematica de estas funciones suele ser muy complicada y confusa. Un recurso importante es el centro de documentación de Mathematica, al que se accede a través del menú de ayuda del programa. El Centro de Documentación proporciona una extensa guía de cada función del programa, incluida la sintaxis y el código de muestra. Un tutorial de “Primeros cinco minutos con Mathematica” también está presente en el menú, que proporciona una guía rápida para comenzar con Mathematica. Este artículo esbozará brevemente varias funciones útiles de Mathematica y su sintaxis.

    Fundamentos de Mathematica

    Aquí hay algunas reglas básicas para Mathematica.

    Cuaderno, Celdas y Evaluación

    El archivo estándar para Mathematica se llama cuaderno. El cuaderno consta de dos tipos de celdas: entrada y salida. Las entradas se mecanografian en una celda y las salidas se muestran en otra (Ver Abajo).

    ellExample.png

    Para que Mathematica calcule sus entradas, debe evaluar las celdas. Haga esto presionando Shift+Enter. Esto solo evaluará la celda actual en la que se encuentra tu cursor. Para evaluar todas las celdas de un cuaderno presione Ctrl+A, para seleccionar todas, y luego presione Mayús+Intro.

    Paréntesis vs. corchetes

    Los corchetes, [], se utilizan para todas las funciones en Mathematica. Lo único para lo que se utilizan los paréntesis, (), es para indicar el orden de las operaciones.

    Igualdad, = vs. ==

    El signo igual único (=), se utiliza para asignar un valor o una función a una variable. El signo doble igual (==) se utiliza para establecer dos valores iguales entre sí, como resolver un valor, o para probar igualdades. Al probar las igualdades, Mathematica generará 'Verdadero' o 'Falso'.

    Si recibes 'True' o 'False' como salida cuando lo estás esperando, probablemente usaste un == en algún lugar en el que deberías haber usado a =.

    Uso de punto y coma

    Al colocar un punto y coma después de una línea de código se evaluará la expresión; sin embargo, no se mostrará ninguna salida.

    Funciones de Mathematica

    Todas las funciones de Mathematica comienzan con una letra mayúscula, por ejemplo. Sin [x], Exp [x], Pi o Infinito.

    Asignación e inserción de variables o parámetros

    Para asignar valores a variables, use -> en lugar de un signo igual. Por ejemplo,

    athematica Parameters.jpg

    Para insertar un conjunto de parámetros a una función use /. Este símbolo aplica una regla o lista de reglas en un intento de transformar cada subparte de una expresión.

    Por ejemplo, si desea introducir los parámetros anteriores en la expresión y = Kc * x + Ca 0, ingrese lo siguiente en Mathematica:

    athematica Reemplazar All.jpg

    Las variables son sensibles a mayúsculas. Por ejemplo, X es diferente a x Además, si define una variable, permanecerá definida hasta que la redefina como otra cosa o la borre. Puede borrar una variable, por ejemplo, x, usando el comando Borrar [x]. También puedes salir del Kernel, que borrará todas las variables.

    Forzar una expresión numérica

    Para forzar a Mathematica a dar una solución numérica, use la función N [expresión]. Por ejemplo,

    athematica Numérico Solution.jpg

    Otro método para hacer esto es colocar un lugar decimal en cualquiera de sus números (es decir, “5.” en lugar de solo “5")

    Integración

    Mathematica puede hacer algunas integraciones muy complejas con bastante poca codificación. La integración puede ser muy útil para muchas aplicaciones de ingeniería, pero cuando las funciones se vuelven muy complejas se vuelven cada vez más difíciles de integrar. Mathematica integrará cualquier función que sea posible integrar.

    Para integrar una función f (x) la Mathematica, el comando es Integrar [].

    Para una integral indefinida la codificación correcta es Integrar [f (x), x] donde x es la variable independiente.

    Para una integral definida con límites de y y z la codificación correcta es Integrar [f (x), {x, y, z}]

    Por ejemplo:

    Podemos integrar una función como la siguiente:

    f (x) = Sin (5 * x/8) * x

    Podemos encontrar la integral indefinida como se ve aquí:

    ntergral indefinite.GIF

    Podemos encontrar la integral definida de 0 a π como se ve aquí:

    ntergral definite.GIF

    Solver

    La función Resolver de Mathematica intenta resolver una ecuación o conjunto de ecuaciones para las variables especificadas. La sintaxis general es Solve [eqns, vars]

    Las ecuaciones se dan en forma de lado izquierdo == lado derecho.

    También se puede especificar una sola variable o una lista de variables. Cuando hay varias variables, la solución se da en términos de una lista de reglas. Por ejemplo,

    athematica Múltiples soluciones Variables.jpg

    Cuando hay varias soluciones, Solve da una lista de ellas. Por ejemplo,

    athematica Solucionador Múltiples Solutions.jpg

    Resolver no siempre podrá obtener soluciones explícitas a las ecuaciones. Dará la solución explícita si puede, luego dará una representación simbólica de las soluciones restantes en términos de objetos raíz. Si hay pocos parámetros simbólicos, puede usar nSolve para obtener aproximaciones numéricas a las soluciones.

    Trazado

    Mathematica contiene una interfaz de trazado muy potente y esta visión general repasará los conceptos básicos del trazado. Usando la función Plot [] de Mathematica hay una sintaxis básica para ser utilizada:

    Plot [función, {variable, variable_min, variable_max}]

    Por ejemplo, el comando “Trazar [y=x, {x,0,10}]” generará una gráfica de la función y=x para un rango de x de 0 a 10.

    LotExample (y=x) .jpg

    La función también podría definirse previamente y luego referenciarse en el comando Plot [], esta funcionalidad proporciona mucha simplicidad al hacer referencia a múltiples funciones y ayuda a evitar que un error tipográfico afecte a sus Plot.

    y [x] ==x

    Parcela [y [x], {x,0,10}]

    Para trazar múltiples funciones en la misma gráfica, use una matriz de funciones usando llaves {}, en lugar de la única:

    Parcela [{y=x, y=2*x}, {x,0,10}]

    LotExample2 (y=x y=2x) .TIF

    Otra opción de trazado útil en Mathematica es la función ListPlot. Para utilizar esta función, se debe utilizar el siguiente formato: ListPlot [Tabla [f (x), {x, min, max}]istPlot.jpg

    Esto es obviamente solo lo básico, Mathematica ofrece muchas más opciones incluyendo colores, leyendas, estilos de línea, etc. Todas estas características adicionales están bien documentadas en el sitio de referencia de Wolfram.

    Un dato adicional: Escriba el siguiente comando en la línea después del comando Trazar para determinar el valor máximo trazado. Mostrará el número asociado con el máximo absoluto de la función dentro del rango de trazado.

    Max [Última/ @Level [Casos [%, _Línea, Infinito], {-2}]]

    Resolviendo ODE

    Dentro de Mathematica, tiene la opción de resolver ODEs numéricamente o haciendo que Mathematica grafique la solución.

    Solución explícita:

    La función incorporada dSolve resuelve una ecuación diferencial o una lista de ecuaciones diferenciales para una variable independiente o una lista de variables independientes, que resuelve una ecuación diferencial parcial. La sintaxis más básica para la función dSolve es dSolve [eqn, y, x]. Por ejemplo,

    athematica DSolve Básico Example.jpg

    La sintaxis para resolver una lista de ecuaciones diferenciales es dSolve [{eqn1, eqn2,...} , {y1, y2,...} , x], mientras que la sintaxis para resolver una ecuación diferencial parcial es dSolve [{eqn, y, {x1, x2,...}] . Por ejemplo,

    athematica DSolve Lista Example.jpg

    Obsérvese que las ecuaciones diferenciales deben ser enunciadas en términos de derivadas, como y' [x]. Las condiciones de contorno también se pueden especificar dándoles como ecuaciones, como y' [0] ==b.

    Solución trazada:

    Las soluciones dadas por dSolve a veces incluyen integrales que no se pueden llevar a cabo explícitamente, por lo que debe usarse NDSolve. ndSolve encuentra una solución numérica a una ecuación diferencial ordinaria dentro de un rango especificado de la variable independiente. El resultado se dará en términos de objetos InterpolatingFunction, y así se debe trazar la solución. Por ejemplo,

    athematica ndSolve Example.jpg

    Tenga en cuenta que se definió un portacuotas para almacenar la solución NDSolve con el fin de que la solución se graficara. La sintaxis general para trazar es Plot [Evaluar [y [x] /. s], {x, xmin, xmax}], donde s es dicho marcador de posición. La siguiente gráfica muestra la solución a este ejemplo.

    athematica ndSolve Ejemplo Plot.jpg

    Otro Ejemplo Resolviendo ODEs

    En este ejemplo, el nivel de agua de un tanque se controla ajustando la velocidad de alimentación de agua en el tanque. El sistema está modelado por la siguiente ecuación:

    frac {dV} {dt} =\ frac {Fin} {2} -2*V

    Hay un controlador PID en la válvula pero no es importante para explicar la sintaxis de Mathematica. Considéralo solo una forma diferente de definir Fin.

    Se supone que los parámetros son Vset = 10, Kc = 10, TauI = 0.1 y TauD = 1

    Para este problema la ecuación diferencial necesita ser modelada con los parámetros dados en Mathematica. El problema pregunta cuál es el estado estacionario del sistema. Esto se resuelve sustituyendo en una expresión PID Fin (no importante en este contexto), estableciendo las derivadas iguales a cero y resolviendo V y Xi (una variable compuesta para el controlador PID). El siguiente código de Mathematica hace todas las cosas dichas.

    W7Prob1Eqs.png

    W7Prob1Solution.png

    La línea final muestra que los valores de estado estacionario para el problema son V = Vset o 10 unidades de volumen, y Xi (la variable compuesta para el controlador PID) tiene un valor de estado estacionario de 3.9

    En este ejemplo hay sintaxis para definir parámetros, aplicar esos parámetros a ecuaciones, configurar ecuaciones y resolver ecuaciones para valores de estado estacionario. También hay sintaxis para trazar múltiples ecuaciones en una misma gráfica y cómo evaluar múltiples funciones a lo largo de períodos de tiempo. En general muy útil para resolver problemas de Ingeniería de Controles en Mathematica.

    Matrix

    Es muy sencillo crear una matriz en Mathematica. Simplemente elija un nombre para la matriz (para este ejemplo usaremos a) luego simplemente ingrese cada fila dentro de llaves {} con los valores individuales separados por comas, y la fila separada por una coma. La función MatrixForm [] mostrará una matriz en su forma de matriz en lugar de como una lista de números.

    EX: a =

    ParseError: EOF expected (click for details)
    Callstack:
        at (Ingenieria/Ingeniería_Industrial_y_de_Sistemas/Libro:_Dinámica_y_Controles_de_Procesos_Químicos_(Woolf)/02:_Fundamentos_de_Modelado/2.09:_Sintaxis_útil_de_Mathematica-_Consejos_sobre_cómo_usar_Mathematica_para_modelar_procesos_químicos), /content/body/div/div[8]/p[2]/span, line 1, column 2
    

    MatrixForm [a] muestra:

    5 2 3

    7 9 11

    8 13 9

    Puede referirse a cualquier posición específica en la matriz usando el sistema:

    matriz [[fila], [columna]]

    EX: Para la matriz superior a [[1], [2]] se devolvería un valor de 2.

    Jacobianos y Eigenvalues

    El jacobiano es una herramienta intermedia útil utilizada para linealizar sistemas de ODEs. Los valores propios se pueden utilizar con el jacobiano para evaluar la estabilidad del sistema. Mathematica se puede utilizar para calcular los valores jacobianos y propios de un sistema mediante los siguientes pasos.

    1. Entrar en el sistema como ecuaciones individuales

    frac {dx} {dt} =3x^2+2y

    frac {dy} {dt} =x^2-3y^2

    ingresó como

    eq1 = 3*x^2+2y

    eq2 = x^2-3*y^2

    2. Calcular el jacobiano con la función Derivado de Mathematica

    ac=
\ begin {pmatrix}
 6x y 2\\
 2x y -6y
\ end {pmatrix}

    calculado por

    Jac =

    ParseError: "]" expected (click for details)
    Callstack:
        at (Ingenieria/Ingeniería_Industrial_y_de_Sistemas/Libro:_Dinámica_y_Controles_de_Procesos_Químicos_(Woolf)/02:_Fundamentos_de_Modelado/2.09:_Sintaxis_útil_de_Mathematica-_Consejos_sobre_cómo_usar_Mathematica_para_modelar_procesos_químicos), /content/body/div/div[9]/p[11]/span, line 1, column 7
    

    3. Utilice la función de valores propios de Mathematica para evaluar la estabilidad del sistema

    Comience ingresando un valor deseado de {x, y} en la matriz (es decir, valores de estado estacionario de x e y).

    Jac =begin {pmatrix}
 -2.31 & 2\\
 -0.77 & 1.33
\ end {pmatrix}

    Entonces llama a la función Eigenvalue.

    Valores propios [Jac]

    Resultado: λ= {-1.82, 0.85}

    El jacobiano se puede calcular siempre y cuando la matriz sea cuadrada. Muchos otros tipos de funciones son aceptables al ingresar eq1 y eq2, incluidas las funciones trigonométricas y exponenciales.

    Funciones definidas por el usuario

    Mathematica también admite funciones definidas por el usuario. Definir sus propias funciones ayuda a simplificar el código, especialmente cuando se usan expresiones largas de manera consistente en todo el código. La sintaxis genérica de Mathematica para definir una función es la siguiente:

    f [a_, b_, c_] := (a+b) /c

    Aquí, el nombre de la función es “f” con tres argumentos: a, b y c. La sintaxis “:=” asigna la expresión del lado derecho a la función “f”. Asegúrese de que cada uno de los argumentos entre corchetes del lado izquierdo vaya seguido de guiones bajos; esto identifica las variables a las que llama la función como variables locales (aquellas que solo son utilizadas por la propia función). Para este ejemplo, la función “f” tomará tres argumentos (a, b y c) y calculará la suma de a y b, y luego dividirá por c.

    Después de definir la función, puedes usar la función a lo largo de tu código usando números reales, como muestra el primer ejemplo, o cualquier variable. Esto se hace llamando a la función con el número correcto de argumentos. Al hacer referencia a variables, si la variable ya tiene un valor asignado se utilizará el valor, si no lo hace, Mathematica mostrará los resultados de su función con las variables mostradas. A continuación se muestran algunos ejemplos.

    [1,3,2] =\ frac {1+3} {2} =2

    [x, y, z] =\ frac {x+y} {z}

    Regresión no lineal

    Mathematica se puede utilizar para resolver múltiples problemas de regresión variable no lineal. Esta forma de regresión puede ser útil para crear modelos de cómo los sensores de temperatura o presión dependen de diferentes válvulas en un sistema. La función NonlineArregress en Mathematica se puede utilizar para encontrar una solución que mejor se ajuste a una forma funcional definida por el usuario.

    La función NonlineArregress no forma parte del paquete estándar en Mathematica. Por esta razón, esta función debe ser cargada en Mathematica antes de un intento de uso.

    Después de este paso, el NonLineArregress se carga y se puede usar para resolver un conjunto de datos. Para utilizar la función this, ingrese NonLineArregress [datos, expresión, parámetros, variables]. Se devolverán los mejores valores de ajuste para los parámetros junto con información estadística sobre qué tan bien se ajusta esta forma a los datos dados. Un ejemplo de Regresión no lineal en Mathematica se muestra en la imagen de abajo.

    Regresión onlineal Mathematica.JPG

    Función de densidad de probabilidad

    A menudo en los controles, es necesario calcular la probabilidad de que ocurra un determinado evento, dada una distribución particular conocida. En estos escenarios, es útil saber cómo usar la función de densidad de probabilidad incorporada en Mathematica. A continuación se muestra la sintaxis para usar la función de densidad de probabilidad para calcular la probabilidad de observar un valor x para una distribución genérica dist.

    PDF [dist, x]

    Se puede usar una variedad de distribuciones junto con la función de densidad de probabilidad. Estas distribuciones incluyen la distribución normal y la distribución binomial.

    Distribución Normal

    Para una distribución normal con una media μ y una desviación estándar σ, utilice la siguiente sintaxis para especificar la distribución.

    NormalDistribución [μ, σ]

    Para calcular la probabilidad de observar un valor x dada esta distribución, utilice la función de densidad de probabilidad como se describió anteriormente.

    PDF [NormalDistribución [μ, σ], x]

    Para calcular la probabilidad de observar un rango de valores de x1 a x2 dada esta distribución, utilice la siguiente sintaxis.

    nIntegrar [PDF [NormalDistribución [μ, σ], x], {x, x1, x2]

    Para ver la teoría detrás de la función de densidad de probabilidad para una distribución normal, haga clic aquí.

    Distribución binomial

    Para una distribución binomial con un número de ensayos n y una probabilidad de éxito p, utilice la siguiente sintaxis para especificar la distribución.

    BinomialDistribución [n, p]

    Para calcular la probabilidad de observar un ensayo exitoso exactamente k veces dada esta distribución, utilice la función de densidad de probabilidad como se describió anteriormente.

    PDF [BinomialDistribución [n, p], k]

    Para calcular la probabilidad de observar entre un rango de k1 número de éxitos y k2 número de éxitos dada esta distribución, utilice la siguiente sintaxis.

    nIntegrar [PDF [BinomialDistribución [n, p], k], {k, k1, k2]

    Alternativamente, la distribución binomial se puede encontrar usando una función definida por el usuario. Defina las ecuaciones de la siguiente manera: binom [nn_, kk_, pp_] := nn! /(kk! (nn-kk)!) pp^kk (1-p) ^ (nn-kk)

    donde:

    número de muestras independientes = nn

    número de eventos = kk

    probabilidad del evento = pp

    Para encontrar las probabilidades de obtener 5 cabezas de 10 tiradas de monedas, asumiendo la probabilidad de cabeza = 0.5, sustituya los valores por nn, kk y pp de la siguiente manera: binom [10,5,0.5]

    Usando el mismo escenario, pero en cambio para las probabilidades de obtener 5 o más cabezas en los 10 tiradas, la función se puede usar como: Sum [binom [10, i,0.5], {i,5,10}]

    Para ver la teoría detrás de la función de densidad de probabilidad para una distribución binomial, haga clic aquí.

    Manipular la función

    A menudo en los controles, es útil manipular ciertas variables dinámicamente y ver el resultado en una gráfica o tabla. Esto es particularmente útil para establecer las constantes en la sintonización de controladores PID. La función Manipulate en Mathematica te permite hacer esto. Puede utilizar la función manipular junto con el comando Trazar. La sintaxis general para usar la función manipule es la siguiente:

    Manipular [expr, {u, umin, umax}]

    Donde expr es la función a la que quieres agregar controles y u es la variable que deseas manipular.

    Manipular una función:

    Se puede cambiar la variable x en la función s. Mover la barra permite cambiar la variable x.

    anipulate3.gif

    anipulate4.gif

    Manipular una parcela:

    También se puede manipular una trama. La barra deslizante permite cambiar la variable n y la gráfica cambia en consecuencia.

    anipulate1.gif

    anipulate2.gif


    El archivo de Mathematica utilizado para crear este ejemplo, se puede descargar a continuación.

    Ejemplo de comando Manipular

    Para obtener más información sobre manipular, consulte el sitio de referencia de Wolfram.

    [Nota - necesidad de agregar manipular para las parcelas de Bode - R.Z.]

    Adición de líneas de cuadrícula

    ridlines1.jpeg

    Trazado de Gráficas Log-Log

    og-log plots1.jpeg

    Otros consejos útiles de Mathematica

    iki multiple1.jpg

    [Sería bueno reemplazar estas imágenes con texto real - R.Z.]


    This page titled 2.9: Sintaxis útil de Mathematica- Consejos sobre cómo usar Mathematica para modelar procesos químicos is shared under a CC BY 3.0 license and was authored, remixed, and/or curated by Peter Woolf et al. via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.