2010-04-26 21:26, John Cremona skrev:

In number theory it is very useful to have this norm-alisation, as
well as the square root one also called abs.  It's a special case of
the algebraic concept of norm(a) = product of conjugates of a.

If this was really a problem to non-number-theorists, we could
possibly  live with it (possibly by defining a new function for this).

Other opinions may differ...



[Note: I come from physics, and do not use sage very much, but I would like to replace my usage of mathematica/maple with sage.]


Short version:

I am surprised by

sage: norm(1+I)
2
sage: norm(vector([1+I]))
sqrt(2)

and I think sage should choose to change the definition of norm used on complex numbers, as it wants to grow a broader user base.

The definition of norm on vectors is consistent with definitions of norm according to wikipedia [0] and the springer encyclopedia of mathematics [1], and (I believe) any book I have ever used. Those did not even mention that there is an alternative definition of norm used in number theory.

The norm on complex numbers is not consistent with viewing the complex numbers as a two-dimensional real vector space, according to the definitions mentioned above.





Long version:

I am very surprised by the current terminology. I think that many users coming from physics and engineering would be surprised, and the mission statement of sage, "Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab", certainly seems to aim at a much broader user community than number-theorists.

I would be very surprised if any of mathematica, maple and matlab used the same convention as sage does, and given the mission statement, I think that common terminology is a good thing.

The concept of a norm, as I have always encountered it, is well defined, as in e.g. wikipedia[0] and other mathematics encyclopedias [1], [2], as well as (I belive) any book I have used. This refers to vector spaces, and I expect that most people use norms on vector spaces.

One property a norm is required to have is that for any vector v and scalar a:

norm(a*v) == abs(a) * norm(v)

this holds for vectors

sage: norm( (1+I) * vector([1+I]) )
2
sage: abs(1+I) * norm( vector([1+I]) )
2

but not for complex numbers seen as 2-dimensional real vectors:

sage: norm( 2 *  (1+I) )
8
sage: abs(2) * norm(1+I)
4


Regardless of that part, I think many people would, like me, be surprised by the following results:

sage: norm(1+I)
2
sage: norm(vector([1+I]))
sqrt(2)

I find it very strange that the one element vector does not have the same norm as the element it contains.

My suggestion is to change the definition of norm on complex numbers.

If that is not changed, I think that the docstring should clearly state that sage deviates from the definitions of norm used by wikipedia, springer, mathematica, maple and matlab, as I expect most people from physics and engineering expect sage to follow the same definition as those.


Regards

Johan



[0]: <http://en.wikipedia.org/wiki/Norm_%28mathematics%29#Definition>
[1]: <http://eom.springer.de/N/n067340.htm>
[2]: <http://www.mathacademy.com/pr/prime/browse.asp?LT=F&PRE=norm&LEV=B&TBM=Y&TAL=Y&TAN=Y&TBI=Y&TCA=Y&TCS=Y&TDI=Y&TEC=Y&TGE=Y&TGR=Y&THI=Y&TFO=Y&TNT=Y&TPH=Y&TST=Y&TTO=Y&TTR=Y>

--
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to