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 <#13e55909abc26344_group_thread_0> [4 > Updates] > - GSoC 2013: Equation editor <#13e55909abc26344_group_thread_1> [4 > Updates] > - GSoC 2013: Univariate polynomials over algebraic > domains<#13e55909abc26344_group_thread_2>[5 Updates] > - Lie algebras GSOC application <#13e55909abc26344_group_thread_3> [4 > Updates] > - Introduction and a possible project<#13e55909abc26344_group_thread_4>[2 > Updates] > - GSoC 2013: Error-correcting codes <#13e55909abc26344_group_thread_5>[1 > Update] > - Diophantine Equations Module <#13e55909abc26344_group_thread_6> [1 > Update] > - sympy.nsolve seems to solve system of non linear equations > incorrectly <#13e55909abc26344_group_thread_7> [1 Update] > > Diophantine Equations > Module<http://groups.google.com/group/sympy/t/1fb97951a1ff753e> > > 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<http://groups.google.com/group/sympy/t/54fdeda4901a75e6> > > 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<http://groups.google.com/group/sympy/t/81dab0b278aaafeb> > > 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<http://groups.google.com/group/sympy/t/435638803f8e3295> > > 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<http://groups.google.com/group/sympy/t/14f75f2e9fb58b6e> > > 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<http://groups.google.com/group/sympy/t/55b7de825819314e> > > 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<http://groups.google.com/group/sympy/t/460ab0ee52ee1fae> > > 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<http://groups.google.com/group/sympy/t/d11478ec1d13d5d8> > > 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 <[email protected]>. > To unsubscribe from this group, send <[email protected]>an > empty message. > For more options, visit <http://groups.google.com/group/sympy/topics>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.
