On Mon, Apr 1, 2013 at 5:15 PM, someone <someb...@bluewin.ch> wrote: > > a) Line integrals - For this I need some notion of a path. Right now, > > the integrate function in SymPy takes only straight paths (that is we > > can only provide end points and the path is just one of the > > coordinate axes). But, I need support for three dimensional paths. > > One solution I thought of is to have a class called Path that would > > contain the parametric definitions for the path. The methods in this > > class can further be used as helpers to evaluate the integral. This > > can be done by reducing the line integral into simple integral in one > > variable which SymPy can already evaluate. > > I considered doing this for contour integrals in the complex plane > some long time ago. If you do it the "right" way, then the code could > maybe be reused for that case too. Although the typical paths in contour > integrals are somewhat specific combinations of circles and lines. > (I hoped that I could parametrize this all with the usual epsilons.) >
That would be neat. Of course, the real work there would be getting the residue() function working better, so that you could actually compute such integrals. But this is a GSoC idea onto itself. > > > b) Surface Integrals - Again, I need some way to represent an area. > > So, perhaps a Surface class will do the job? Implementation will be > > similar as mentioned above. > > > > c) Volume Integrals - Needs a Volume class. Similar implementation. > > > > The implementation of a Path, Surface and a Volume class seems to be > > the solution to this problem at this point. If anyone else has a > > better idea, please do tell. Otherwise, I think I'll go ahead with > > this. > > I have the hope that one could get away with just a single parametric > object depending on as many parameters as necessary: > > L(u) := L(u_1, u_2, ..., u_n) > > would then represent an integral over an N-dimensional hypervolume > (path: n=1, surface: n=2, volume: n=3 and so on) and the integral > > Int(f , L) --> Int( f(L(u)) |J L| du > --> Int(...Int( f(L(u_1, ..., u_n)) |J L| du_1, ..., du_n > > It is for sure not easy to do this all the correct way such > that all fits well together. But I think it's worth thinking > about it! > Manifolds in general have to be parameterized in patches (any manifold that is not diffeomorphic to R^n will by definition require more than one patch of differential parametrization to describe). The diffgeom module should take care of this sort of stuff, though. Aaron Meurer > There is the most general version of the Stoke's theorem: > > http://upload.wikimedia.org/math/8/e/4/8e4e3b1cd7d06acf2438e40509c4f4e7.png > > in this notation independent on dimension of the "volume" Omega > and its border dOmega. From this we can get all others, and that > is the point why I think it should be possible to do this in a > mostly dimension agnostic way. > > -- > 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 post to this group, send email to sympy@googlegroups.com. > 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 sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.