Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 14:25
    NikhilSDate commented #22698
  • 14:24
    ThePauliPrinciple commented #22607
  • 14:21
    ThePauliPrinciple synchronize #22785
  • 14:21

    oscarbenjamin on master

    Get rid of error message in ima… Merge pull request #22879 from … (compare)

  • 14:21

    oscarbenjamin on Get-rid-of-error-message-in-image-conversion

    (compare)

  • 14:21
    oscarbenjamin closed #22879
  • 14:20
    oscarbenjamin commented #22737
  • 14:19
    piiskop opened #22880
  • 14:14
    me-t1me synchronize #22872
  • 14:07
    github-actions[bot] commented #22879
  • 14:01
    oscarbenjamin commented #22879
  • 13:58
    skieffer commented #22737
  • 13:38
    NikhilSDate commented #22698
  • 13:38
    NikhilSDate commented #22698
  • 13:38
    NikhilSDate commented #22698
  • 13:37
    NikhilSDate commented #22698
  • 13:36
    faze-geek commented #22698
  • 13:27
    me-t1me synchronize #22872
  • 13:25
    NikhilSDate commented #22698
  • 13:14
    sympy-bot commented #22831
Vishesh Mangla
@Teut2711
neither does f'({latex(self.symbol)})' work
Aaron Meurer
@asmeurer
"TypeError: sequence item 3: expected str instance, Quantity found"
"item 3" is the item at index 3, which is self.value. join requires that every item is converted to a string, so use latex(self.value).
Also I'm not sure, but I think _repr_latex should return a string, not call display().
Ayush Bisht
@ayushbisht2001

frameerror.PNG

With this command python3 -m doctest -v frame.py , I found these error , can anyone help me , why they are failing??

Sidharth Mundhra
@0sidharth
@ayushbisht2001 It looks like you do not have the development version setup properly. I think it is something like you are using sympy 1.7.1 version to run sympy 1.8-dev files
Ayush Bisht
@ayushbisht2001
@0sidharth , how can I update sympy 1.7.1 ?
because, It's not updating further from 1.7.1
! pip install sympy --upgrade
Sidharth Mundhra
@0sidharth
I think you have to go into sympy directory and do pip install -e . in the virtual environment
Ayush Bisht
@ayushbisht2001
Thanks @0sidharth , Now it's working fine ..
Harshit Yadav
@hyadav2k
Is there some way to return two equations in the same Piecewise condition, like Piecewise(((a, b), Eq(n, 0)), (nan, True)), though writing as Tuple doesn't work? Thanks.
laolux
@laolux:wolkendienst.dynv6.net
[m]
Minor point I just noticed: I don't think you need to check if a<=2, because it is checked already that a<b. But I think this detail also depends on sympy style guides, so somebody else should comment on that
Benoit Martin
@metabsd
Hi, How can I evaluate this in sympy ?
image.png
almighty123789
@almighty123789
@metabsd
b1, b2 = symbols('b1 b2')
f = (5b1 - 3b2)**2
@metabsd
f.expand()
stuzenz
@stuzenz

Hi, I am using sympy to help my daughter go through some IGCSE math (while exposing her to some coding) and I am trying to understand, is there a way to have the below expression displayed versus simplified/calculated out.

2**5

Craig Russell
@ctr26
sympify ("2**5", evaluate=False)
Pow(2,5, evaluate=False) also works
stuzenz
@stuzenz
Excellent - thank you. I had tried a few different things - just not the right combination.
Love the sympy library by the way - I am getting more familiar for the library - this group has some useful information which I have also been reading.
stuzenz
@stuzenz

sympify ("2**5", evaluate=False)

Interesting, simplify("2**5",evaluate=False) didn't work for me, but the Pow function did work with evaluate set to False.

Craig Russell
@ctr26
Sympify vs simplify
stuzenz
@stuzenz
Thanks Craig - that did work
almighty123789
@almighty123789
while running some tests, my code is getting some infinte recursion errors, is there a way t o exactly find which statement/test leads to the infinte recursion error?
Sidharth Mundhra
@0sidharth
The tests generally print the traceback, from where you can see the recurring statements
Bjorn Madsen
@root-11

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}

It's a knapsack problem.

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.

Bjorn Madsen
@root-11
Sorry if this is a dumb question. I'm just overwhelmed by the amount of documentation.
Bjorn Madsen
@root-11
Whilst reading on I'm drifting towards the conclusion that sympy isn't hot on Linear Programming / Simplex method type problems on its own.
Bjorn Madsen
@root-11
Ok. Nobody is burning my statements. PuLP seems to be what I need.
Sayandip Halder
@sayandip18
>>> solveset(tan(x), x)
Union(ImageSet(Lambda(_n, 2*_n*pi + pi), Integers), ImageSet(Lambda(_n, 2*_n*pi), Integers))
Shouldn't the answer be simply ImageSet(Lambda(_n, _n*pi))?
Sayandip Halder
@sayandip18

Also,

>>> solveset(sin(cos(x)), x)
ConditionSet(x, Eq(sin(cos(x)), 0), Complexes)

The answer should be something like ImageSet(Lambda(_n, 2*(n-1)*pi))

I guess this is an issue of improving solveset
Aaron Meurer
@asmeurer
@root-11 yeah, SymPy currently doesn't have algorithms to solve that sort of problem. Anyway, if you are looking for a numerical solution rather than an exact analytic one, then SymPy is generally not your best choice.
Bjorn Madsen
@root-11
Thanks Aaron.
Benoit Martin
@metabsd
Hi, I'm trying to find a way to convert a float/decimal to a fraction. As an example if I 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 ?
Isuru Fernando
@isuruf
@metabsd, once you do,-7/3 you've already lost precision. Decimal(-7)/3
can you share what you want to do exactly
your question is unclear
Sidharth Mundhra
@0sidharth
Currently sympy returns Order(oo) as O(1). Would a better alternative be returning oo (no order term)?
Aaron Meurer
@asmeurer
You can try nsimplify with the rational_conversion='base10' which tries to guess what short fraction a float came from.
Constantin Mateescu
@costica1234_twitter

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?

Aaron Meurer
@asmeurer
You would need to define a transformation that enables this and pass it to the transformations keyword
The transformers aren't really documented. We should fix that. You can look in sympy/parsing/sympy_parser.py to see how they are defined. Basically you need to mutate the tokens from tokenize
In this case, you probably want to take auto_symbol and modify it so that it allows NAME + ' tokens.
It looks like the extra quote is tokenized as an ERRORTOKEN
>>> 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='')]
Constantin Mateescu
@costica1234_twitter
Thanks a lot for the detailed response! Will take a closer look at those transformations and see if I can define one that suits my needs.
Aradhana Kund
@aradhana72
Hello, I am Aradhana Kund from ETC-2nd year IIIT Bhubaneswar, India. I am interested into contributing to this organization . It would be a great help if I am guided for the same. I am very efficient in data structure and algorithms in C,C++.Also I am efficient in Python and mathematics also and wish to collaborate with this community to contribute and resolve the issues.
Looking forward for further interaction.