pytc2.general
Created on Thu Mar 2 11:22:31 2023
Originally based on the work of Combination of 2011 Christopher Felton Further modifications were added for didactic purposes by Mariano Llamedo llamedom _at_ frba_utn_edu_ar
@author: marianux
Module Contents
Functions
|
Asocia en paralelo dos impedancias o en serie dos admitancias. |
|
Factoriza una función racional simbólica, en polinomios de segundo y primer |
|
Convierte una función racional simbólica, con coeficientes numéricos |
|
Factoriza una función racional tt, en polinmios numerador y denominador |
|
Intenta decidir si a > b (para exponentes simbólicos) con fallback numérico y lexicográfico. |
|
Convierte potencias anidadas (a**b)**c -> a**(b*c) |
|
Simplifica expresiones con exponentes simbólicos en la variable polinómica. |
|
Reordenar el orden un polinomio. Especialmente para polinomios en la var. |
|
Versión mejorada de simplify_n_monic que maneja exponentes simbólicos. |
Calcula el polinomio de Chebyshev de grado nn. |
|
|
A partir de un string o expresión de SymPy (a), y otra expresión de SymPy (b): |
|
A partir de un string o expresión de SymPy (a), y otra expresión de SymPy (b): |
|
Convierte un símbolo en un string formateado para visualizarse en LaTeX. |
|
Muestra una expresión LaTeX en formato matemático. |
|
Imprime una cadena rodeada por símbolos de alerta en la consola. |
|
Imprime un subtítulo en la consola. |
|
Imprime un subtítulo. |
|
Convierte una magnitud en decibels a su equivalente en nepers. |
|
Convierte una magnitud en neperios a su equivalente en decibelios. |
Attributes
Path a donde se encuentra pyTC2 localmente. |
|
Es un valor muy pequeño para que las funciones que tienen restringido su evaluación |
|
Variable compleja de Laplace s = σ + j.ω |
|
Fourier real variable ω |
- pytc2.general.pytc2_full_path
Path a donde se encuentra pyTC2 localmente.
- pytc2.general.small_val
Es un valor muy pequeño para que las funciones que tienen restringido su evaluación en 0 no arrojen warnings ni errores. e.g. los cálculos de los logaritmos
- pytc2.general.s
Variable compleja de Laplace s = σ + j.ω En caso de necesitar usarla, importar el símbolo desde este módulo.
- pytc2.general.w
Fourier real variable ω En caso de necesitar usarla, importar el símbolo desde este módulo.
- pytc2.general.pp(z1, z2)[source]
Asocia en paralelo dos impedancias o en serie dos admitancias.
- Parameters:
z1 (Symbolic o float) – Inmitancia 1.
z2 (Symbolic o float) – Inmitancia 2.
- Returns:
zp – Inmitancia resultante.
- Return type:
Symbolic o float
- Raises:
ValueError – Si alguno de los argumentos no es de tipo Symbolic.:
See also
Examples
>>> import sympy as sp >>> from pytc2.general import pp >>> # Asociación en paralelo de dos impedancias >>> z1 = sp.symbols('z1') >>> z2 = sp.symbols('z2') >>> zp = pp(z1, z2) >>> print(zp) z1*z2/(z1 + z2) >>> # Asociación en serie de dos admitancias >>> y1 = 1/z1 >>> y2 = 1/z2 >>> yp = pp(y1, y2) >>> print(yp) 1/(z1*z2*(1/z2 + 1/z1))
- pytc2.general.factorSOS(ratfunc, decimals=4)[source]
Factoriza una función racional simbólica, en polinomios de segundo y primer orden.
- Parameters:
ratfunc (Expr. simbólica) – Función racional simbólica.
decimals (entero) – Cantidad de decimales para la evaluación simbólica.
- Returns:
Función racional simbólica factorizada.
- Return type:
Expr. simbólica
- Raises:
ValueError – Si la entrada no es una expresión simbólica.
See also
Examples
>>> import sympy as sp >>> from pytc2.general import s, factorSOS >>> tt = (s**4 + 8*s**3 + 18*s**2 + 11*s + 2)/(s**3 + 16*s**2 + 65*s + 14) >>> factorized_tt, _, _ = factorSOS(tt) >>> print(factorized_tt) (s + 0.382)*(s + 0.438)*(s + 2.62)*(s + 4.56)/((s + 0.228)*(s + 7.0)*(s + 8.77))
- pytc2.general.symbfunc2tf(tt)[source]
Convierte una función racional simbólica, con coeficientes numéricos (convertibles a flotante), en un objeto transfer function.
- Parameters:
tt (Expr. simbólica) – Función racional simbólica.
- Returns:
TransferFunction que representa numéricamente la función.
- Return type:
TransferFunction
- Raises:
ValueError – Si la entrada no es una expresión simbólica.
See also
Examples
>>> import sympy as sp >>> from pytc2.general import s, symbfunc2tf >>> tt = (s**2 + 3*s + 2) / (2*s**2 + 5*s + 3) >>> simplified_tt = symbfunc2tf(tt) >>> print(simplified_tt) TransferFunctionContinuous( array([0.5, 1.5, 1. ]), array([1. , 2.5, 1.5]), dt: None )
- pytc2.general.simplify_n_monic(tt, poly_val=s)[source]
Factoriza una función racional tt, en polinmios numerador y denominador mónicos multiplicados por un escalar k.
- Parameters:
tt (Expr) – Polinomio de fracciones a simplificar.
- Returns:
k – escala o factor de la función tt.
num – Polinomio numerador simplificado en forma monica.
den – Polinomio denominador simplificado en forma monica.
- Raises:
ValueError – Si la entrada no es una expresión simbólica.
See also
Examples
>>> import sympy as sp >>> from pytc2.general import s, simplify_n_monic >>> tt = (s**2 + 3*s + 2) / (2*s**2 + 5*s + 3) >>> k, num, den = simplify_n_monic(tt) >>> simplified_tt = k * num / den >>> print(simplified_tt) (s + 2)/(2*s + 3)
- pytc2.general._symbolic_gt(a, b)
Intenta decidir si a > b (para exponentes simbólicos) con fallback numérico y lexicográfico.
- pytc2.general.flatten_pow(expr)
Convierte potencias anidadas (a**b)**c -> a**(b*c) Repite la transformación hasta que ya no cambie la expresión.
- pytc2.general.simplify_symbolic_exponents(expr, poly_var)
Simplifica expresiones con exponentes simbólicos en la variable polinómica. Intenta reescribir la expresión en términos de potencias enteras de poly_var.
- Parameters:
expr (Expr) – Expresión a simplificar
poly_var (Symbol) – Variable del polinomio (ej: z)
- Returns:
Expresión simplificada
- Return type:
Expr
- pytc2.general.sort_poly_descending(poly_expr, poly_var, max_power, max_coef)
Reordenar el orden un polinomio. Especialmente para polinomios en la var. compleja ‘z’.
- Parameters:
poly_expr (Expr) – Polinomio a reordenar
poly_var (Symbol) – Variable del polinomio
max_power (Expr) – Máximo exponente del polinomio
max_coef (Expr) – Máximo coeficiente del término ‘max_power’ del polinomio
- Returns:
Polinomio reordenado
- Return type:
reorder_expr
- pytc2.general.simplify_n_monic_z(tt, poly_var, bSortAscending=True)
Versión mejorada de simplify_n_monic que maneja exponentes simbólicos.
- Parameters:
tt (Expr) – Función racional a simplificar
poly_var (Symbol) – Variable del polinomio
bSortAscending (bool) – Ordenar polinomio de forma ascendente. Default: True.
- Returns:
k – Factor de escala
num – Numerador simplificado (no necesariamente mónico)
den – Denominador simplificado (no necesariamente mónico)
- pytc2.general.Chebyshev_polynomials(nn)[source]
Calcula el polinomio de Chebyshev de grado nn.
- Parameters:
nn (int) – Grado del polinomio de Chebyshev.
- Returns:
Ts – Matriz de parámetros de transferencia scattering.
- Return type:
Symbolic Matrix
- Raises:
ValueError – Si nn no es un entero positivo.
See also
Examples
>>> from pytc2.general import Chebyshev_polynomials >>> Ts = Chebyshev_polynomials(3) >>> print(Ts) w*(4*w**2 - 3)
- pytc2.general.a_equal_b_latex_s(a, b)[source]
A partir de un string o expresión de SymPy (a), y otra expresión de SymPy (b):
\[a = b\]en un nuevo string formateado para visualizarse en LaTeX.
- Parameters:
a (Symbolic or str) – Símbolo o cadena para el lado izquierdo de la igualdad.
b (Symbolic, str o lista de ambas) – Símbolo o cadena para el lado derecho de la igualdad.
- Returns:
str – String formateado en LaTeX representando la igualdad.
- Return type:
string
- Raises:
ValueError – Si a no es un símbolo ni una cadena. Si b no es un símbolo.
See also
Examples
>>> import sympy as sp >>> from pytc2.general import a_equal_b_latex_s, print_latex >>> s = sp.symbols('s') >>> tt = (s**2 + 3*s + 2) / (2*s**2 + 5*s + 3) >>> print(a_equal_b_latex_s(sp.symbols('tt'), tt)) 'tt=\frac{s^{2} + 3 s + 2}{2 s^{2} + 5 s + 3}$' >>> print_latex(a_equal_b_latex_s(sp.symbols('tt'), tt)) [LaTex formated equation]
- pytc2.general.expr_simb_expr(a, b, symbol='=')[source]
A partir de un string o expresión de SymPy (a), y otra expresión de SymPy (b):
a symbol b
en un nuevo string formateado para visualizarse en LaTeX.
- Parameters:
a (Symbolic or str) – Símbolo o cadena para el lado izquierdo de la expresión.
b (Symbolic or str) – Símbolo o cadena para el lado derecho de la expresión.
symbol (str, optional) – Símbolo de operación entre a y b (por defecto es ‘=’).
- Returns:
String formateado en LaTeX representando la expresión.
- Return type:
str
- Raises:
ValueError – Si a no es un símbolo ni una cadena. Si b no es un símbolo.
See also
Examples
>>> import sympy as sp >>> from pytc2.general import expr_simb_expr, print_latex >>> s = sp.symbols('s') >>> tt = (s**2 + 3*s + 2) / (2*s**2 + 5*s + 3) >>> tt1 = (s**2 + 4*s + 7) / (2*s**2 + 5*s + 3) >>> print_latex(expr_simb_expr('tt', tt1, '\neq')) [LaTex formated equation] >>> print_latex(expr_simb_expr('tt', tt)) [LaTex formated equation]
- pytc2.general.to_latex(unsimbolo)[source]
Convierte un símbolo en un string formateado para visualizarse en LaTeX.
- Parameters:
unsimbolo (Symbolic or str) – Símbolo o cadena a convertir a formato LaTeX.
- Returns:
String formateado en LaTeX.
- Return type:
str
- Raises:
ValueError – Si unsimbolo no es un símbolo ni una cadena.
See also
Examples
>>> import sympy as sp >>> from pytc2.general import to_latex, print_latex >>> print(to_latex(sp.symbols('x'))) $x$ >>> print_latex(to_latex(sp.symbols('x'))) [LaTex formated equation]
- pytc2.general.print_latex(unstr)[source]
Muestra una expresión LaTeX en formato matemático.
- Parameters:
unstr (str) – Cadena que representa la expresión LaTeX.
- Returns:
Esta función no devuelve nada, simplemente muestra la expresión en formato LaTeX.
- Return type:
None
- Raises:
ValueError – Si unstr no es una cadena.
See also
Examples
>>> import sympy as sp >>> from pytc2.general import to_latex, print_latex >>> print(to_latex('x')) $x$ >>> print_latex(to_latex('x')) [LaTex formated equation]
- pytc2.general.print_console_alert(unstr)[source]
Imprime una cadena rodeada por símbolos de alerta en la consola.
- Parameters:
unstr (str) – Cadena a imprimir.
- Returns:
Esta función no devuelve nada, simplemente imprime la cadena en la consola.
- Return type:
None
- Raises:
ValueError – Si unstr no es una cadena.
See also
print_subtitle(),print_latex(),print_alert()Examples
>>> from pytc2.general import print_console_alert >>> print_console_alert('Advertencia: Datos incompletos') ################################## # Advertencia: Datos incompletos # ##################################
- pytc2.general.print_console_subtitle(unstr)[source]
Imprime un subtítulo en la consola.
- Parameters:
unstr (str) – Cadena que representa el subtítulo.
- Returns:
Esta función no devuelve nada, simplemente imprime el subtítulo en la consola.
- Return type:
None
- Raises:
ValueError – Si unstr no es una cadena.
See also
Examples
>>> from pytc2.general import print_console_subtitle >>> print_console_subtitle('Subtítulo') Subtítulo ---------
- pytc2.general.running_in_spyder()
- pytc2.general.running_in_jupyter()
- pytc2.general.print_subtitle(unstr)[source]
Imprime un subtítulo.
- Parameters:
unstr (str) – Cadena que representa el subtítulo.
- Returns:
Esta función no devuelve nada, simplemente imprime el subtítulo.
- Return type:
None
- Raises:
ValueError – Si unstr no es una cadena.
Examples
>>> from pytc2.general import print_subtitle >>> print_subtitle('Subtítulo') <IPython.core.display.Markdown object>
- pytc2.general.db2nepper(at_en_db)[source]
Convierte una magnitud en decibels a su equivalente en nepers.
- Parameters:
at_en_db (float or numpy.ndarray) – Magnitud en decibelios a convertir.
- Returns:
Equivalente en nepers.
- Return type:
float or numpy.ndarray
- Raises:
ValueError – Si at_en_db no es de tipo float.:
See also
Examples
>>> from pytc2.general import db2nepper >>> db2nepper(20.) 2.3025850929940455 >>> db2nepper(1.) 0.11512925464970228
- pytc2.general.nepper2db(at_en_np)[source]
Convierte una magnitud en neperios a su equivalente en decibelios.
- Parameters:
at_en_np (float or numpy.ndarray) – Magnitud en neperios a convertir.
- Returns:
Equivalente en decibelios.
- Return type:
float or numpy.ndarray
- Raises:
ValueError – Si at_en_db no es de tipo float.:
See also
Examples
>>> from pytc2.general import nepper2db >>> nepper2db(1.) 8.685889638065037 >>> nepper2db(2.3025850929940455) 20.