Ask Your Question
1

assignment vs. subs()

asked 2020-11-11 16:49:34 +0100

rrogers gravatar image

updated 2020-11-11 16:51:08 +0100

What am I missing? I can assign "t=H" but subs(t=H) errors out.

reset('t')
I4=4*identity_matrix(5)
t=3
var('t')
t2 = t^2  #random formula example
t=I4
display(t2,t^2)
a1=t2.subs(t=I4)
edit retag flag offensive close merge delete

Comments

The assignment t=I4 overwrites the variable t so that it no longer refers to a symbolic variable but rather to the concrete matrix I4, hence t^2 does give the squared matrix (and no symbolic variables are used in this computation).

rburing gravatar imagerburing ( 2020-11-11 17:44:13 +0100 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2020-11-11 17:33:57 +0100

rburing gravatar image

There is no implementation for substituting a matrix into a symbolic expression, because the operation is not well-defined in general. (For example, what should happen when you substitute a matrix into exp(-1/t)?)

Of course it is well-defined for polynomials. This substitution is implemented, but only for polynomials as members of a polynomial ring (rather than symbolic expressions), so you have to do a conversion:

sage: t2.polynomial(QQ).subs(t=I4)
[16  0  0  0  0]
[ 0 16  0  0  0]
[ 0  0 16  0  0]
[ 0  0  0 16  0]
[ 0  0  0  0 16]

It is easier (in life in general) to avoid symbolic expressions altogether, and to define t as a generator of a polynomial ring (instead of a symbolic variable), so that substitutions into polynomials in t work immediately:

sage: t = polygen(QQ, name='t')
sage: t^2
t^2
sage: (t^2).subs(t=I4)
[16  0  0  0  0]
[ 0 16  0  0  0]
[ 0  0 16  0  0]
[ 0  0  0 16  0]
[ 0  0  0  0 16]
edit flag offensive delete link more

Comments

Okay, but I am doing things that I don't know will fit in QQ. For instance:

gp_tmp=logM(identity_matrix(dimM)-H)
gp_tmp.jordan_form(transformation=True)

Where H is lower triangular singular; (i.e.) the creation matrix. Substituting H for t in a variety of formulas; in particular "Scheffer sequence" generating functions.

rrogers gravatar imagerrogers ( 2020-11-11 23:22:14 +0100 )edit

I should add that Jordan_form transforms of polynomials are not Taylor/polynomial representable. Which, to me, is still a mystery.

rrogers gravatar imagerrogers ( 2020-11-12 14:27:12 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2020-11-11 16:49:34 +0100

Seen: 388 times

Last updated: Nov 11 '20