GSOC 2013 Linear Algebra proposal

43 views
Skip to first unread message

Ben Fishbein

unread,
Apr 8, 2013, 6:49:32 PM4/8/13
to sy...@googlegroups.com

Hello, my name is Benjamin Fishbein. I am currently an undergraduate student at the University of Illinois at Champaign-Urbana scheduled for a double major in both Computer Science and Mathematics. I am very interested in working on SymPy as it combines two of my greatest passions. I have already published code currently being used in SymPy and hope to continue my contribution to this program over the Summer. While exploring SymPy’s code I observed that the matrices portion of the code was missing several crucial functions. Many of the missing function in SymPy's matrices class have to do with the Span of the group of vectors, however, SymPy does not have a Span class. My proposal for a Google Summer of Code project is as follows 1) Create a Span class capable of creating and modifying Spans. To begin I will make a class which has very simple functionality. Here is an example of the desired behavior of this class: x = Span([1,2,3],[4,5,6]) x /[1] [4]\ |[2] [5] | \[3],[6]/ x.dim() 2 x.add_column(2,[7,8,9]) x /[1] [4] [7]\ |[2] [5] [8] | \[3],[6], [9]/ x.dim() 3 y = x.basis() y /[1] [4]\ |[2] [5] | \[3],[6]/ 2) Next, I will implement in the matrices class simple functions which interact with the Span class. The functions I will initially focus on would be 'image', 'kernel', 'basis image', and 'basis kernel'. Here is an example of the desired behavior of this addition: x = Matrix([1,2,3],[4,5,6]) y = x.image() y #Span([1,2,3],[4,5,6]) /[1] [4]\ |[2] [5] | \[3],[6]/ 3) Finally, I will spend the remainder of my time expanding on both the Matrices and the Span class. I will add more complex functions and improve on the existing ones. This may also involve adding functions to other classes such as Physics and Statistics. Matrices are essential for many crucial aspects of Physics, Computer Science, Mathematics, Chemistry, Biology, Electrical Engineering, Industrial Engineering and many more fields. I feel that the additions which I have suggested will make SymPy a better resource for its users. Adding a Span class and improving on the Matrices class will make SymPy a more dynamic and versatile tool. Thank you for your consideration, if you have any ideas suggestions comments or critiques I would love to hear them so I may improve my submission. 

Thank you - Ben Fishbein

David Joyner

unread,
Apr 8, 2013, 6:57:42 PM4/8/13
to sy...@googlegroups.com
I would like all this *and* I'd ike this to work over finite fields:-)


On Mon, Apr 8, 2013 at 6:49 PM, Ben Fishbein <fish...@gmail.com> wrote:

Hello, my name is Benjamin Fishbein. I am currently an undergraduate student at the University of Illinois at Champaign-Urbana scheduled for a double major in both Computer Science and Mathematics. I am very interested in working on SymPy as it combines two of my greatest passions. I have already published code currently being used in SymPy and hope to continue my contribution to this program over the Summer. While exploring SymPy’s code I observed that the matrices portion of the code was missing several crucial functions. Many of the missing function in SymPy's matrices class have to do with the Span of the group of vectors, however, SymPy does not have a Span class. My proposal for a Google Summer of Code project is as follows 1) Create a Span class capable of creating and modifying Spans. To begin I will make a class which has very simple functionality. Here is an example of the desired behavior of this class: x = Span([1,2,3],[4,5,6]) x /[1] [4]\ |[2] [5] | \[3],[6]/ x.dim() 2 x.add_column(2,[7,8,9]) x /[1] [4] [7]\ |[2] [5] [8] | \[3],[6], [9]/ x.dim() 3 y = x.basis() y /[1] [4]\ |[2] [5] | \[3],[6]/ 2) Next, I will implement in the matrices class simple functions which interact with the Span class. The functions I will initially focus on would be 'image', 'kernel', 'basis image', and 'basis kernel'. Here is an example of the desired behavior of this addition: x = Matrix([1,2,3],[4,5,6]) y = x.image() y #Span([1,2,3],[4,5,6]) /[1] [4]\ |[2] [5] | \[3],[6]/ 3) Finally, I will spend the remainder of my time expanding on both the Matrices and the Span class. I will add more complex functions and improve on the existing ones. This may also involve adding functions to other classes such as Physics and Statistics. Matrices are essential for many crucial aspects of Physics, Computer Science, Mathematics, Chemistry, Biology, Electrical Engineering, Industrial Engineering and many more fields. I feel that the additions which I have suggested will make SymPy a better resource for its users. Adding a Span class and improving on the Matrices class will make SymPy a more dynamic and versatile tool. Thank you for your consideration, if you have any ideas suggestions comments or critiques I would love to hear them so I may improve my submission. 

Thank you - Ben Fishbein

--
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+un...@googlegroups.com.
To post to this group, send email to sy...@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.
 
 

Ben Fishbein

unread,
Apr 8, 2013, 9:10:01 PM4/8/13
to sy...@googlegroups.com
I'm sure this could be added. I'll note it in my final proposal.
Reply all
Reply to author
Forward
0 new messages