Ask Your Question

Sum of two vectors

asked 2014-12-23 10:42:05 +0200

this post is marked as community wiki

This post is a wiki. Anyone with karma >750 is welcome to improve it.

Hi everybody, i've got this functions and variables:

v = function('v',t)
a_V_ra = function('a_V_ra',t)
g = var('g')

r_V_ra = vector([v,0,0])
a_V_ra = R_ra*r_V_ra.column()

where R is a matrix and a_V_ra is the vector [cos(psi(t))v(t), sin(psi(t))v(t),0].

But when i do this:

a_a_ra = diff(a_V_ra)+vector([0,0,-g])

it says: TypeError: unsupported operand parent(s) for '+': 'Full MatrixSpace of 3 by 1 dense matrices over Symbolic Ring' and 'Vector space of dimension 3 over Symbolic Ring'

I guess it's saying that i'm summing a matrix and a vector, but they're both vectors! What can I do to make it work?

Thank you.

edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted

answered 2014-12-23 19:15:17 +0200

calc314 gravatar image

The problem is that diff(a_V_ra,t) is giving you a column vector and vector([0,0,-g]) is giving you a row vector. Further, Sage sees the first as a matrix and the second as a vector. You can fix this using .column() as you did earlier in your code.

a_a_ra = diff(a_V_ra,t)+vector([0,0,-g]).column()


[ cos(psi)*D[0](v)(t)]
[                  -g]

My full code is:

var('psi t g')
v = function('v',t)


r_V_ra = vector([v,0,0])
a_V_ra = R_ra*r_V_ra.column()
a_a_ra = diff(a_V_ra,t)+vector([0,0,-g]).column()
edit flag offensive delete link more

answered 2014-12-23 15:17:08 +0200

FrédéricC gravatar image

Maybe you can try something like that:

sage: m=matrix([[1],[0],[0]])
sage: v=vector([0,5,6])
sage: m.column(0)+v
(1, 5, 6)
edit flag offensive delete link more

Your Answer

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

Add Answer

Question Tools


Asked: 2014-12-23 10:42:05 +0200

Seen: 1,767 times

Last updated: Dec 23 '14