2009/6/12 Rob Beezer <goo...@beezer.cotse.net>:
>
> Hi John,
>
> Thanks for the reply, the suggestions and the examples.  I've seen the
> Factorization object and briefly thought of building a Spectrum
> object, but thought it sounded like overkill.  But maybe I can just
> subclass Factorization and override the _repr_ method (or similar) to
> print the spectrum without the multiplication symbols, etc.

I think there's a case for having a more basic class for holding
"things with multiplicities";  the the spectrum could be one of these
(or a class derived from it) and Factorization would also be a derived
class.

For example, I believe that the Factorization class is used to hold
direct sum decompositions of modular symbol spaces (i.e. direct
summands of some module) where some of the class makes sense but not
all of it (not the unit factor, for a start);  this could be instead
an element of our more basic class, or of another derived class
specifically for DirectSumDecompositions.

John

>
> Rob
>
> On Jun 11, 1:09 am, John Cremona <john.crem...@gmail.com> wrote:
>> 2009/6/11 Rob Beezer <goo...@beezer.cotse.net>:
>>
>>
>>
>>
>>
>> > On Jun 8, 7:47 pm, Jason Grout <jason-s...@creativetrax.com> wrote:
>> >> I've never had to use the left eigenvectors of a graph.
>>
>> > And I've never needed a directed graph so my matrices are always
>> > symmetric.  (Just kidding.)  ;-)
>>
>> > The above is now:  http://trac.sagemath.org/sage_trac/ticket/6258
>>
>> > A related question:  matrices and graphs have eigenspaces() methods,
>> > but matrices have eigenvalues() and graphs have spectrum().  The
>> > spectrum() method seems identical in the style of its output to the
>> > eigenvalues() method - a list of eigenvalues repeated according to
>> > multiplicity.  Furthermore, in algebraic graph theory the term
>> > "spectrum" is closely tied to both the values of the eigenvalues and
>> > their multiplicities.
>>
>> > For example, graphs.HoffmanSingletonGraph() has 50 eigenvalues but
>> > just three are distinct.  The usual shorthand is to list the
>> > eigenvalues with their multiplicities as an exponent - for the Hoffman-
>> > Singleton graph this would look like
>>
>> > 7^1  2^28 (-3)^21
>>
>> > Yes, you can count the multiple eigenvalues, or write a routine to do
>> > it for you, but I think this is something that should be built into
>> > Sage.
>>
>> > So a proposal for graphs:
>>
>> > 1.  Add a new eigenvalues() method for a graph,  identical to the
>> > current spectrum(), more in line with the use for matrices.
>>
>> > 2.  Have  spectrum() return something like a list of pairs (e_i, m_i)
>> > with m_i being the multiplicity of eigenvalue e_i, more in line with
>> > expectations for the term.  For example, "Algebraic Graph
>> > Theory" (Godsil and Royle) says the spectrum is the "list of the
>> > eigenvalues together with their multiplicities."  Biggs' "Algebraic
>> > Graph Theory" says the spectrum "is the set of numbers which are
>> > eigenvalues, together with their multiplicities."
>>
>> Two quick comments:  (1) I would be happy for matrices to have a
>> spectrum() method too as a synonym for
>> eigenvalues-with-multiplicities;  (2)  The Factorization class could
>> be used to hold the lists of eigenvalues with multiplicities, like
>> this:
>>
>> sage: I3 = identity_matrix(QQ,3)
>> sage: M = I3.block_sum(2*I3)
>> sage: M.eigenvalues()
>> [2, 2, 2, 1, 1, 1]
>> sage: Factorization(M.charpoly().roots())
>> 1^3 * 2^3
>>
>> or
>>
>> sage: Factorization([(a,1) for a in M.eigenvalues()])
>> 1^3 * 2^3
>>
>> John
>>
>>
>>
>> > Rob
> >
>

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

Reply via email to