Generic matrix

asked 2013-06-03 11:03:56 +0200

candide gravatar image

Does Sage provide by default a kind of generic matrix ? Maple does, for instance

matrix(2, symbol='x')

returns

a 2x2 matrix whose (i,j)-entry is the symbolic coefficient x_{i,j}

I can emulate a such matrix in Sage but this not very handy, for instance :

n=4
xij=var(' '.join(['x'+str(i)+'_'+str(j) for i in range(n) for j in range(n)]))
M=Matrix(SR, n, xij)
M

outputting:

[x0_0 x0_1 x0_2 x0_3]
[x1_0 x1_1 x1_2 x1_3]
[x2_0 x2_1 x2_2 x2_3]
[x3_0 x3_1 x3_2 x3_3]

Another suggestion ?

edit retag flag offensive close merge delete

Comments

Looks like this is something that you have to work around as best I can tell. See the following posts: http://ask.sagemath.org/question/152/symbolic-linear-algebra and http://ask.sagemath.org/question/505/symbolic-matrices

calc314 gravatar imagecalc314 ( 2013-06-03 11:25:31 +0200 )edit

Though perhaps something like this could be *added* to Sage as a shortcut. We do need to decide once and for all how to do indexed variables... but this could be solved at the same time.

kcrisman gravatar imagekcrisman ( 2013-06-03 11:55:12 +0200 )edit

According to the comments, I'm afraid that Sage doesn't offer any builtin feature allowing working with generic matrices without Python programming skills. From a pedagogical viewpoint this is unfortunate because generic matrices enable the learner to illustrate (or solve) easily some basic linear algebra questions such as Cayley-Hamilton theorem in low dimensions.

candide gravatar imagecandide ( 2013-06-03 13:57:07 +0200 )edit

In maple, there is a built-in data-type for this purpose, (that is, for being an element of a symbolic matrix,) called "indexed", and it is a rather low-level thing. I'm new in python/sage, so I don't know whether it's a trouble to implement this. But that would be very very useful. Until that point, tcfisher's answer in http://ask.sagemath.org/question/152/symbolic-linear-algebra offers a workaround.

Szilard SZALAY gravatar imageSzilard SZALAY ( 2013-09-17 11:11:42 +0200 )edit