I can't find your response in here, if there is one. Can you reply to
the specific thread in the Google Groups interface?  Switch away from
the digest mode if you want to respond by email.

Aaron Meurer

On Mon, Apr 29, 2013 at 11:53 AM, Aniket Anvit <[email protected]> wrote:
>
>
>
> On Mon, Apr 29, 2013 at 5:02 PM, <[email protected]> wrote:
>>
>>   Today's Topic Summary
>>
>> Group: http://groups.google.com/group/sympy/topics
>>
>> Diophantine Equations Module [4 Updates]
>> GSoC 2013: Equation editor [4 Updates]
>> GSoC 2013: Univariate polynomials over algebraic domains [5 Updates]
>> Lie algebras GSOC application [4 Updates]
>> Introduction and a possible project [2 Updates]
>> GSoC 2013: Error-correcting codes [1 Update]
>> Diophantine Equations Module [1 Update]
>> sympy.nsolve seems to solve system of non linear equations incorrectly [1
>> Update]
>>
>>  Diophantine Equations Module
>>
>> Thilina Rathnayake <[email protected]> Apr 28 01:07PM -0700
>>
>> Hi, I would like to implement a Diophantine equations module for Sympy.
>> You can find my pull request here
>> <https://github.com/sympy/sympy/pull/2024>.
>> It's still not merged.
>>
>> I hope to solve following classical Diophantine equations. All the
>> variables and constants
>> used here are integers.
>>
>> 1)* **a1x1 + a2x2 + a3x3 + ...+ anxn = b* (Linear diophantine equation)
>> Here *a1, **a2, ... **an* and b are constants.If solvable (there is a
>> condition to determine this),
>> solving this equation means expressing any two variables using other
>> variables and an
>> arbitrary integer* *n. i.e. solution is given by
>> x1 = x1, x2 = x2, ... xn-2 = xn-2 , xn-1 = f( x1, x2, ... xn-2, n), xn-1 =
>> g( x1, x2, ... xn-2, n)
>> f and g are functions to be determined.
>>
>> 2) x12 + x22 + x32 + ... xn2 = k
>> Here k is a non-negative constant. There will be a number of solutions
>> depending on
>> n and k. Solving this means assigning constants *a1, **a2, ... **an* to
>> x*i
>> *'s respectively.
>>
>> 3) x12 + x22 + x32 + ... xn2 = xn+12 (extension of Pythogorean equation)
>> Solving this is pretty standard. There is a general primitive solution set
>> using n relatively
>> prime integers. All other solutions can be obtained by multiplying those
>> equations by
>> an arbitrary integer.
>>
>> 4) x2 + axy + y2 = z2
>> Here a is a constant. If z is a variable, a general solution can be given
>> to this equation
>> using a and three arbitrary integers. If z is a constant actual solutions
>> can be given.
>>
>> 5) x2 - Dy2 = m2 (Pell's equation)
>> Here D and m are constants. This has either no solution or infinitely many
>> solutions.
>> ax2 - by2 = 1 and ax2 + bxy + cy2 + dx + ey + f = 0 can also be solved
>> with the
>> light
>> of Pell's equation.
>>
>> Lot of Diophantine equations can be converted to one of these forms.
>> Addition
>> of this kind
>> a module will be a huge enhancement for Sympy. I would like to know how I
>> can improve
>> this. Thanks in advance.
>>
>>
>>
>> References
>> [1] An Introduction to Diophantine Equations*, Andreescu*, Titu,
>> *Andrica*,
>> Dorin, *Cucurezeanu*, Ion
>> [2] http://mathworld.wolfram.com/DiophantineEquation.html
>> [3] http://en.wikipedia.org/wiki/Diophantine_equation
>>
>> Regards,
>> Thilina Rathnayake.
>>
>>
>>
>> Aaron Meurer <[email protected]> Apr 28 02:22PM -0600
>>
>> Just to be clear, is this for GSoC, or is this just something that you
>> want to implement on your own?
>>
>> On Sun, Apr 28, 2013 at 2:07 PM, Thilina Rathnayake
>> > x1 = x1, x2 = x2, ... xn-2 = xn-2 , xn-1 = f( x1, x2, ... xn-2, n), xn-1
>> > =
>> > g( x1, x2, ... xn-2, n)
>> > f and g are functions to be determined.
>>
>> The n in the indices is different from the other n, right?
>>
>> Is the rank of the system always 2 in this case?
>>
>> > a module will be a huge enhancement for Sympy. I would like to know how
>> > I
>> > can improve
>> > this. Thanks in advance.
>>
>> It sounds like a good start. If this is for GSoC, I'd like to see more
>> details.
>>
>> One thing to be aware of is that you will probably spend more time
>> worrying about how to pattern match these things than writing the
>> algorithms to solve them. SymPy has .match, but it can be limited.
>> For example, you can easily write a pattern to match
>>
>> x1**2 + x2**2 = k
>>
>> But if you can solve that, then you can also solve
>>
>> (x1 - 1)**2 + (x2 - 1)**2 = k
>>
>> or
>>
>> x1**2 - 2*x1 + x2**2 - 2*x2 = k
>>
>> by a simple shift. But the same simple pattern won't match either of
>> these. I ran into this kind of issue all the time when I wrote the ODE
>> module, which works very similarly (by the way, you should take a look
>> at the design there, as I think the design of this module can be very
>> similar). We should extend the pattern matcher's abilities to be able
>> to still succulently write patterns, but to allow them to match more
>> advanced things like shifts automatically.
>>
>> Of course, the worst case scenario is that it won't recognize a given
>> equation as being in a certain form, so it just won't be able to solve
>> as much as it could. So if you want, you could focus on this, or you
>> could leave it to someone else.
>>
>> Aaron Meurer
>>
>>
>>
>>
>> Thilina Rathnayake <[email protected]> Apr 29 11:21AM +0530
>>
>> Thanks Aaron for your reply. I am proposing this as a GSoC project.
>> Sorry, I didn't mention it earlier. However, even if this is not accepted
>> as a
>> GSoC project, I would like to work on this.
>>
>> The two n's are different. I should have used distinct letters instead of
>> the n's.
>> Sorry for the confusion.
>>
>> I have assumed that all ai's are nonzero and the above linear Diophantine
>> equation (DE) satisfies the condition for the existence of solutions. If
>> n>=3,
>> then solutions to the above linear equation can always be given using n-1
>> parameters. If we define first n-2 xi's as parameters, then with another
>> parameter m, we can express the solutions for the other two. For n=2,
>> solutions
>> can be determined using only one parameter, m. For n=1, If a solution
>> exists,
>> it can be computed by dividing b by a1. I guess I answered your question.
>> If not please let me know.
>>
>> I checked the ODE module and indeed it can be used as a reference model
>> for this project. I hope to implement a method DiophantineSolve(), which
>> would
>> take DE to be solved in the form f(x1*,* x2*,* x3*,* ...xn) = 0 or f(x, y,
>> z) = 0 as an
>> argument. All of the proposed equations can be expressed in such a way by
>> a
>> simple
>> rearrangement. It will return the solutions/solution if they/one exist(s).
>>
>> For inner computations a classification function would be needed as in ODE
>> module.
>> That can be used to determine whether the DE is linear, quadratic,
>> Pythogrean, .. etc.
>> Algorithm used for the solution will depend on the result of this
>> classification.
>>
>> I am still studying the ODE module. I am not familiar with pattern matcher
>> either.
>> I would take a look at that also. Comments and suggestions are
>> appreciated.
>>
>> Thanks in advance.
>>
>> Regards,
>> Thilina Rathnayake.
>>
>>
>>
>>
>>
>> Aaron Meurer <[email protected]> Apr 29 12:02AM -0600
>>
>> On Sun, Apr 28, 2013 at 11:51 PM, Thilina Rathnayake
>> > Sorry, I didn't mention it earlier. However, even if this is not
>> > accepted
>> > as a
>> > GSoC project, I would like to work on this.
>>
>> OK. In that case, you should get writing on your application, as the
>> deadline is Friday. What you wrote here is a good start. You will also
>> need to delineate it into a timeline, think (a lot) about the
>> interface (my personal opinion is that you should mimic the ODE module
>> exactly, but your application should demonstrate that you understand
>> that structure), and give more details to demonstrate that you really
>> do understand the theory (maybe show how to solve an example problem).
>>
>> > Pythogrean, .. etc.
>> > Algorithm used for the solution will depend on the result of this
>> > classification.
>>
>> Yes, I believe the structure can match the ODE module almost exactly,
>> at least as far as matching having various hints goes. You might also
>> want to look at the constantsimp stuff if your solutions will result
>> in a dependence in new, arbitrary parameters. I wouldn't worry about
>> that for the outset, though, even if that is the case.
>>
>>
>> > I am still studying the ODE module. I am not familiar with pattern
>> > matcher
>> > either.
>>
>> The pattern matcher is very simple. Just set up the variables you want
>> to match as Wild, create the pattern expresion, and use matches. The
>> issue is that it is very stupid in that it matches almost nothing
>> beyond what you explicitly tell it to. You also need to be careful to
>> always set the exclude parameter on the Wild objects to exclude your
>> variables. Otherwise, if you do something like try to match a*x + b*y
>> against 3*x + 2*y (here a and b are the Wilds and x and y are the
>> Symbols), you will expect to get {a: 3, b:2}, but you might instead
>> get {a:0, b:3*x/y + 2}.
>>
>> Aaron Meurer
>>
>>
>>
>>
>>  GSoC 2013: Equation editor
>>
>> Alexander Gudulin <[email protected]> Apr 28 01:40PM -0700
>>
>> Hi everybody,
>>
>> My name is Alexander Gudulin, I am a second year student at Saint
>> Petersburg State University, Russia.
>> I'm interested in solving "Equation editor" problem. Wiki says it would be
>> great to discuss this idea with you guys.
>>
>> Have you got any additional thoughts about the problem or should I suggest
>> any ideas?
>>
>>
>>
>> Aaron Meurer <[email protected]> Apr 28 09:38PM -0600
>>
>> It's fairly open ended, in that you'll need to come up with most of it
>> yourself (we haven't thought too hard about it). You should probably
>> focus on the IPython notebook.
>>
>> Aaron Meurer
>>
>> On Sun, Apr 28, 2013 at 2:40 PM, Alexander Gudulin
>>
>>
>>
>> Chris Smith <[email protected]> Apr 29 10:14AM +0545
>>
>> I wonder if the desmos editor could be used to do this. Perhaps code that
>> communicates between sympy and a web page?
>>
>> https://www.desmos.com/frontpage?utm_expid=43664205-2
>>
>>
>>
>> Aaron Meurer <[email protected]> Apr 28 11:53PM -0600
>>
>> Maybe I missed it, but can that even be used as a library? It looks
>> like it is all closed source, and stuck within its own ecosystem.
>>
>> But I agree that if you can find an already existing equation editor
>> that can be hooked up to SymPy that that would be a good alternative
>> to writing one from scratch.
>>
>> Also, I don't think it would be too much work to extend the Unicode
>> pretty printer to get a curses based equation editor. If you search
>> the list, I've explained the idea in a little more depth in the past.
>>
>> Aaron Meurer
>>
>>
>>
>>
>>
>>  GSoC 2013: Univariate polynomials over algebraic domains
>>
>> Katja Sophie Hotz <[email protected]> Apr 28 01:27PM
>> -0700
>>
>> I just finished a first version of my GSoC application. As it turned out,
>> some of the stuff I wanted to do is already implemented, so I changed the
>> direction of my proposal a bit.
>> The new title is Faster Algorithms for Polynomials over Algebraic Number
>>
>> Fields<https://github.com/sympy/sympy/wiki/GSoC-2013-Application-Katja-Sophie-Hotz:-Faster-Algorithms-for-Polynomials-over-Algebraic-Number-Fields>
>> . As far as I can see these algorithms would be new to SymPy.
>>
>> I would be very grateful for any feedback.
>>
>> Thank you in advance,
>> Katja Sophie
>>
>>
>>
>> Aaron Meurer <[email protected]> Apr 28 03:05PM -0600
>>
>> Don't forget to submit this in Melange.
>>
>> Aaron Meurer
>>
>> On Sun, Apr 28, 2013 at 2:27 PM, Katja Sophie Hotz
>>
>>
>>
>> David Joyner <[email protected]> Apr 28 05:30PM -0400
>>
>> On Sun, Apr 28, 2013 at 4:27 PM, Katja Sophie Hotz <
>> >
>> > Fields<https://github.com/sympy/sympy/wiki/GSoC-2013-Application-Katja-Sophie-Hotz:-Faster-Algorithms-for-Polynomials-over-Algebraic-Number-Fields>
>> > . As far as I can see these algorithms would be new to SymPy.
>>
>> > I would be very grateful for any feedback.
>>
>>
>>
>> I realize that this is not your fault, but the fact that the Sympy
>> documentation [1] lacks
>> examples of algebraic numbers will make it more difficult to evaluate the
>> feasibility of
>> your proposal.
>>
>>
>> [1]
>>
>> http://docs.sympy.org/dev/modules/polys/reference.html#algebraic-number-fields
>>
>>
>>
>>
>>
>> Aaron Meurer <[email protected]> Apr 28 04:04PM -0600
>>
>> Algorithms like factor can handle algebraic numbers using the extension
>> flag
>>
>> In [182]: factor(x**2 + 1, extension=[I])
>> Out[182]: (x - ⅈ)⋅(x + ⅈ)
>>
>> In general, algebraic numbers can be slow, because minpoly is slow
>> (this is being fixed at https://github.com/sympy/sympy/pull/2038). I
>> think multiple extensions are also slow for other reasons.
>>
>> Currently, only algebraic numbers are supported, but it would be great
>> to support algebraic functions (like sqrt(x) instead of sqrt(2)).
>>
>> Aaron Meurer
>>
>>
>>
>>
>> Katja Sophie Hotz <[email protected]> Apr 28 03:55PM
>> -0700
>>
>> As far as I know, the modular gcd algorithm and the factorization
>> algorithm
>> from my proposal
>> can be extended to algebraic function fields, but I don't think there will
>> be enough time to go that far in one summer.
>>
>>
>>
>>  Lie algebras GSOC application
>>
>> Mary Clark <[email protected]> Apr 28 01:38PM -0700
>>
>> Hi all, I've written up a preliminary version of my application:
>>
>> https://github.com/sympy/sympy/wiki/GSOC-2013-Application-Mary-Clark:-Lie-Algebras
>> Any comments/suggestions/etc would be welcome.
>>
>> Mary
>>
>>
>>
>> Aaron Meurer <[email protected]> Apr 28 03:05PM -0600
>>
>> Don't forget to submit it in Melange.
>>
>> Aaron Meurer
>>
>>
>>
>>
>> Alan Bromborsky <[email protected]> Apr 28 06:04PM -0400
>>
>> On 04/28/2013 04:38 PM, Mary Clark wrote:
>> > To post to this group, send email to [email protected].
>> > Visit this group at http://groups.google.com/group/sympy?hl=en-US.
>> > For more options, visit https://groups.google.com/groups/opt_out.
>>
>> You might find the attachment of interest -
>>
>>
>>
>> Prasoon Shukla <[email protected]> Apr 28 03:33PM -0700
>>
>> You should also add a link to your application here:
>> https://github.com/sympy/sympy/wiki/GSoC-2013-Current-Applications
>>
>>
>>
>>  Introduction and a possible project
>>
>> Stefan Krastanov <[email protected]> Apr 28 10:30PM +0200
>>
>> Hi,
>>
>> Check our github wiki pages for GSoC 2013 information. Be aware that
>> we require all applicants to submit a patch on github (to gauge their
>> abilities with python and git).
>>
>>
>>
>>
>> Saurabh Jha <[email protected]> Apr 28 01:34PM -0700
>>
>> Hi Saurav,
>>
>> You may find this discussion helpful
>>
>>
>> http://groups.google.com/group/sympy/browse_thread/thread/fbbb7effcaf92fe4/c6f6d9c1a4543507?lnk=gst&q=Karr+algorithm+Saurabh+Jha#c6f6d9c1a4543507
>>
>> Also, I would advice to get started with fulfilling patch requirement,
>> check application template on wiki pages
>>
>> -Saurabh Jha
>>
>>
>>
>>
>>  GSoC 2013: Error-correcting codes
>>
>> Aaron Meurer <[email protected]> Apr 28 02:06PM -0600
>>
>> I don't know (it depends on how much work Matuesz does). A contingency
>> would be to find suitable work-arounds.
>>
>> Note that even the cyclic finite fields also need a lot of work. For
>> example, they are currently not instances of Basic, meaning that just
>> doing Matrix([[FF(2)(1)]]) does not work because of
>> https://code.google.com/p/sympy/issues/detail?id=3784. So I would
>> plan on doing a good chunk of work on just fixing those.
>>
>> If those objects are Basic, then I think that they should just work if
>> you dump them into the matrices. It won't be as fast as it will be
>> when the matrices get proper domains, but at least it will work, and
>> as soon as the matrices are rewritten, it will automatically become
>> faster.
>>
>> Aaron Meurer
>>
>>
>>
>>
>>  Diophantine Equations Module
>>
>> Thilina Rathnayake <[email protected]> Apr 28 01:04PM -0700
>>
>> Hi, I would like to implement a Diophantine equations module for Sympy.
>> You can find my pull request here
>> <https://github.com/sympy/sympy/pull/2024>.
>> It's still not merged.
>>
>> I hope to solve following classical Diophantine equations. All the
>> variables used
>> here are integers unless otherwise stated.
>>
>> 1)* **a1x1 + a2x2 + a3x3 + ...+ anxn = b* (Linear diophantine equation)
>> Here *a1, **a2, ... **an* and b are constants.If solvable (there is a
>> condition to determine this),
>> solving this equation means expressing any two variables using other
>> variables and an
>> arbitrary integer* *n. i.e. solution is given by
>> x1 = x1, x2 = x2, ... xn-2 = xn-2 , xn-1 = f( x1, x2, ... xn-2, n), xn-1 =
>> g( x1, x2, ... xn-2, n)
>> f and g are functions to be determined.
>>
>> 2) x12 + x22 + x32 + ... xn2 = k
>> Here k is a non-negative constant. There will be a number of solutions
>> depending on
>> n and k. Solving this means assigning constants *a1, **a2, ... **an* to
>> x*i
>> *'s respectively.
>>
>> 3) x12 + x22 + x32 + ... xn2 = xn+12 (extension of Pythogorean equation)
>> Solving this is pretty standard. There is a general primitive solution set
>> using n relatively
>> prime integers. All other solutions can be obtained by multiplying those
>> equations by
>> an arbitrary integer.
>>
>> 4) x2 + axy + y2 = z2
>> Here a is a constant. If z is a variable, a general solution can be given
>> to this equation
>> using a and three arbitrary integers. If z is a constant actual solutions
>> can be given.
>>
>> 5) x2 - Dy2 = m2 (Pell's equation)
>> Here D and m are constants. This has either no solution or infinitely many
>> solutions.
>> ax2 - by2 = 1 and ax2 + bxy + cy2 + dx + ey + f = 0 can also be solved
>> with the
>> light
>> of Pell's equation.
>>
>> Lot of Diophantine equations can be converted to one of these forms.
>> Addition
>> of this kind
>> a module will be a huge enhancement for Sympy. I would like to know how I
>> can improve
>> this. Thanks in advance.
>>
>>
>> References
>> [1] An Introduction to Diophantine Equations*, Andreescu*, Titu,
>> *Andrica*,
>> Dorin, *Cucurezeanu*, Ion
>> [2] http://mathworld.wolfram.com/DiophantineEquation.html
>> [3] http://en.wikipedia.org/wiki/Diophantine_equation
>>
>> Regards,
>> Thilina Rathnayake.
>>
>>
>>
>>  sympy.nsolve seems to solve system of non linear equations incorrectly
>>
>> Pushpak Dagade <[email protected]> Apr 28 09:08AM -0700
>>
>> Thanks a lot chris for your timely help!
>> I hope this helps me out in my work ahead.
>>
>> On Friday, 26 April 2013 01:44:21 UTC+5:30, smichr wrote:
>>
>>
>>
>> You received this message because you are subscribed to the Google Group
>> sympy.
>> You can post via email.
>> To unsubscribe from this group, send an empty message.
>> For more options, visit this group.
>>
>> --
>> 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 [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/sympy?hl=en-US.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>
>
> --
> 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 [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sympy?hl=en-US.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to