ok I forgot variables declaration ...
Le vendredi 31 juillet 2020 23:06:01 UTC+2, Oscar a écrit : > > On Fri, 31 Jul 2020 at 21:06, Mikhael Myara > <mikhae...@umontpellier.fr <javascript:>> wrote: > > > > Le vendredi 31 juillet 2020 20:46:08 UTC+2, Oscar a écrit : > >> > >> On Fri, 31 Jul 2020 at 17:26, Mikhael Myara > >> <mikhae...@umontpellier.fr> wrote: > >> > > >> > Thanks for your answer. > >> > > >> > I don’t do it « for sport » ;-) My example is a reduced example > coming from a practical situation I encountered. > >> > >> I understand that you have reduced this but it is a lot better if the > >> reduction is self-contained so that others can literally copy-paste > >> the code to test what is happening with an expression that > >> demonstrates the issue. I could probably tell you exactly what the > >> problem is in a given example if you provided minimal code for that > >> example. > >> > > That's what I did in my first post + screen copies : > >> > >> import sympy as sp > >> > >> H=-(-CB*Ve*s*(-CA*s - 1/RA)**2/(RB*(CB*s + 1/RB)*(CA*s - (-CA*s - > 1/RA)**2/(CA*s - CB**2*s**2/(CB*s + 1/RB) + CB*s + 1/RA) + 2/RA)*(CA*s - > CB**2*s**2/(CB*s + 1/RB) + CB*s + 1/RA)) - CB*Ve*s/(RB*(CB*s + > 1/RB)))/(Ve*(CA*s - CB**2*s**2/(CB*s + 1/RB) + CB*s + 1/RA)) > > Have you tried copy-pasting that? I get this: > > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > NameError: name 'CB' is not defined > > Of course I'm being pedantic because I can guess that all of those are > supposed to be symbols but it takes some time for me to figure out > what symbols they are and write the small piece of code that defines > them (presumably that's what Aaron did). More importantly there are > multiple ways to define a symbol (real, positive, ...) and some > simplifications depend on that so even if I do fill in the missing > code then I won't know if I'm seeing the same behaviour as you. > > >> > I developed a small software that solves the voltages and currents of > an electronic circuit described by means of a standard format (« netlist > »). This file is parsed, equations are solved. In this netlist file, the > values of the components are given. > >> > >> How exactly are they given in the file (e.g. to how many digits)? > >> > >> If the file has something like 0.12 then you can read that in directly > >> as Rational('0.12') rather than converting the string to a float. Then > >> you will have an object that represents the value from the file > >> exactly with no rounding error. Alternatively you can use nsimplify to > >> convert the floats to an approximate rational representation (direct > >> string to Rational is better though). > > > > Values can change a lot, from 1é-10 to 1e10 typically. In most cases 2 > to 3 significant numbers, but can be much more. > > It sounds like these would be fine to parse directly as Rational when > reading the file: > > >>> from sympy import * > >>> Rational('1e-10') > 1/10000000000 > >>> Rational('0.112345e-10') > 22469/2000000000000000 > > If you want to display the result with decimal dot notation then you > can convert the Rationals in any expression to Float at the end for > printing using the nfloat function: > > >>> nfloat(_) > 1.12345000000000e-11 > > > -- > Oscar > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/f59cd52d-b72e-4d17-aef2-5585445829e8o%40googlegroups.com.