Returns the sympy expression 'expr' in which variables, except the Laplace variable, have been redefined as positive. :param expr: Sympy expression :type expr: sympy.Expr, sympy.Symbol :param params: List with variable names (*str*), or 'all' or a variable name (*str*). :
(expr, params='all')
| 695 | return expr |
| 696 | |
| 697 | def assumePosParams(expr, params='all'): |
| 698 | """ |
| 699 | Returns the sympy expression 'expr' in which variables, except the |
| 700 | Laplace variable, have been redefined as positive. |
| 701 | |
| 702 | :param expr: Sympy expression |
| 703 | :type expr: sympy.Expr, sympy.Symbol |
| 704 | |
| 705 | :param params: List with variable names (*str*), or 'all' or a variable name (*str*). |
| 706 | :type params: list, str |
| 707 | |
| 708 | :return: Expression with redefined variables. |
| 709 | :rtype: sympy.Expr, sympy.Symbol |
| 710 | """ |
| 711 | if type(params) == list: |
| 712 | for i in range(len(params)): |
| 713 | if params[i] == 't': |
| 714 | expr = expr.replace(sp.Heaviside(sp.Symbol('t')), 1) |
| 715 | expr = expr.xreplace( |
| 716 | {sp.Symbol(params[i]): sp.Symbol(params[i], positive=True)}) |
| 717 | elif type(params) == str: |
| 718 | if params == 'all': |
| 719 | params = list(expr.atoms(sp.Symbol)) |
| 720 | for param in params: |
| 721 | if param != ini.laplace and param != ini.frequency: |
| 722 | if param == sp.Symbol('t'): |
| 723 | expr = expr.replace(sp.Heaviside(sp.Symbol('t')), 1) |
| 724 | expr = expr.xreplace( |
| 725 | {param: sp.Symbol(str(param), positive=True)}) |
| 726 | elif params == 't': |
| 727 | expr = expr.replace(sp.Heaviside(sp.Symbol('t')), 1) |
| 728 | else: |
| 729 | expr = expr.xreplace( |
| 730 | {sp.Symbol(params): sp.Symbol(params, positive=True)}) |
| 731 | else: |
| 732 | print("Error: expected type 'str' or 'lst', got '{0}'.".format( |
| 733 | type(params))) |
| 734 | return expr |
| 735 | |
| 736 | def clearAssumptions(expr, params='all'): |
| 737 | """ |
no test coverage detected