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