Ask Your Question

# functions of variables with matrices

I am trying to make a function of a variable with sage for example:

f(x) = sin(x)
f(x+y)


yields:

sin(x+y)


However if It is in a matrix this no longer works:

f(x) = matrix([[sin(x)],[cos(x)]])
f(x+y)


yields:

sin(x)
cos(x)


Is this not possible or am I missing something to make this work?

I am using sage 7.3 on Ubuntu 16.04 with the aims ppa.

edit retag close merge delete

## 1 answer

Sort by Β» oldest newest most voted

If you ask for the type of $f$, you get <ππ’ππ'ππππ.ππ’ππππππ.ππ‘ππππππππ.π΄π‘ππππππππ'>: apparently the substitution into symbolic expressions is not overloaded to matrix-valued functions. However, with

var('x y')
f = matrix(SR, [[sin(x)],[cos(x)]])
type(f)


you get <ππ’ππ'ππππ.ππππππ‘.ππππππ‘β―ππ’ππππππβ―πππππ.πΌπππππ‘β―ππ’ππππππβ―πππππ'>, and

f(x=x+y)


gives the expected result.

Alternatively, try with:

def f(x): return matrix(SR, [[sin(x)],[cos(x)]])


to obtain an object $f$ of type 'function'.

more

## Comments

Thanks that answers my question. Is the substitution not being overloaded to matrix valued functions a bug? or a feature that hasn't been implemented? or something that is done on purpose?

( 2016-10-10 16:44:54 -0600 )edit

i think this is a feature that hasn't been implemented. for the moment, i can just point you to the discussion here #12075.

( 2017-04-09 04:39:46 -0600 )edit

## Your Answer

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

Add Answer

## Stats

Asked: 2016-10-09 20:19:04 -0600

Seen: 181 times

Last updated: Oct 10 '16