A computer algebra system written in pure Python http://sympy.org/ . To get started to with contributing https://github.com/sympy/sympy/wiki/Introduction-to-contributing
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Fixed leading term for acos/ase… (compare)
anutosh491 on series_for_arg
Updated code (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Improved code quality (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Fixed code quality (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Added test for 21721 (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Fixed Failing tests (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Code Cleanup (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Fixed error in test_sums_produc… (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
Fixed all failing tests (compare)
anutosh491 on GSOC_Pr1_Refactoring_Log_leading_term_method
prevent unnecessary hashing add type hints to printing/late… Merge pull request #23588 from … and 34 more (compare)
_repr_latex
should return a string, not call display().
Hi - I'm learning and am looking for a hint for setting up an equation.
The problem is naturally expressed as:
# maximize:
# z = 100*x_1 + 60*x_2 + 70*x_3 + 15*x_4 + 15*x_5
# subject to limits:
# 52*x_1 + 23*x_2 + 35*x_3 + 15*x_4 + 7*x_5 <= 60
# X_1 in {0,1}
# x_2 in {0,1}
# x_3 in {0,1}
# x_4 in {0,1}
# x_5 in {0,1}
But I can't find a way to express "x_1 in the set containing {0,1}
My personal preference is to use the matrix representation
m = Matrix((
[52,23,35,15,7,-60],
[1,0,0,0,0,0],
[0,1,0,0,0,0],
[0,0,1,0,0,0],
[0,0,0,1,0,0],
[0,0,0,0,1,0]
))
...but I'm not sure how to package the variables for the nonlinsolve
function.
decimal(-7/3)
I got -2.333333333333333481363069950020872056484222412109375
I increased the decimal precision. Now I want to convert back to a fraction but each time I got something else that -7/3. Any advice ?
Using x'
as a variable inside parse_expr(...)
(https://docs.sympy.org/latest/modules/parsing.html?highlight=transformations#sympy.parsing.sympy_parser.parse_expr) doesn't seem to work:
>>> from sympy import Symbol
>>> from sympy.parsing.sympy_parser import (parse_expr, standard_transformations, implicit_multiplication_application, convert_xor)
>>>
>>> def parse_plain_text(e, local_dict=None):
... return parse_expr(
... e,
... local_dict=local_dict,
... transformations=(standard_transformations + (implicit_multiplication_application, convert_xor)),
... evaluate=False)
...
>>> parse_plain_text("x_", {"x_": Symbol("x_")})
x_
>>> parse_plain_text("x'", {"x'": Symbol("x'")})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in parse_plain_text
File "REDACTED/sympy/sympy/parsing/sympy_parser.py", line 1005, in parse_expr
code = compile(evaluateFalse(code), '<string>', 'eval')
File "REDACTED/sympy/sympy/parsing/sympy_parser.py", line 1014, in evaluateFalse
node = ast.parse(s)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ast.py", line 47, in parse
return compile(source, filename, mode, flags,
File "<unknown>", line 1
Symbol ('x' )'
^
SyntaxError: EOL while scanning string literal
I could remap this variable to something like x_
(which doesn't throw an error), but is there a way to avoid this workaround?
tokenize
auto_symbol
and modify it so that it allows NAME + '
tokens.
>>> list(tokenize.tokenize(io.BytesIO(b"x'").readline))
[TokenInfo(type=57 (ENCODING), string='utf-8', start=(0, 0), end=(0, 0), line=''), TokenInfo(type=1 (NAME), string='x', start=(1, 0), end=(1, 1), line="x'"), TokenInfo(type=54 (ERRORTOKEN), string="'", start=(1, 1), end=(1, 2), line="x'"), TokenInfo(type=4 (NEWLINE), string='', start=(1, 2), end=(1, 3), line=''), TokenInfo(type=0 (ENDMARKER), string='', start=(2, 0), end=(2, 0), line='')]