First time here? Check out the FAQ!

Ask Your Question
1

How to create a symbolic arbitrary dimensional zero vector?

asked 11 years ago

gundamlh gravatar image

updated 11 years ago

one way:

sage: symbolic_expression(list(zero_vector(k))) 
# k, dim. of vector, k is some fixed integer, e.g. k = 10, 
# many thanks to @tmonteil 

but it is too long!!

Preview: (hide)

Comments

Can you make your wish more explicit ? Is k a fixed number ? Wich order of magnitude ?

tmonteil gravatar imagetmonteil ( 11 years ago )

Sorry, it is some fixed integer, e.g. k = 10

gundamlh gravatar imagegundamlh ( 11 years ago )

what do you mean by "it is too long" ?

tmonteil gravatar imagetmonteil ( 11 years ago )

the length of the string "symbolic_expression(list(zero_vector(k)))", can we use some command like "zero_list(k)"?

gundamlh gravatar imagegundamlh ( 11 years ago )

4 Answers

Sort by » oldest newest most voted
2

answered 11 years ago

tmonteil gravatar image

You can make your expression shorter by typing:

sage: w = zero_vector(SR, 10) ; w
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

You can check that it is the same object:

sage: v = symbolic_expression(list(zero_vector(10)))
sage: v
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
sage: v == w
True
Preview: (hide)
link

Comments

Thanks! Yes, that is what I want! SR = Symbolic Ring, super.

gundamlh gravatar imagegundamlh ( 11 years ago )

Can we create a list whose entries are all 1, using a similar method?

gundamlh gravatar imagegundamlh ( 11 years ago )
2

answered 5 years ago

nbruin gravatar image

updated 5 years ago

slelievre gravatar image

For the follow-up question posted as a comment to @tmonteil's answer:

vector(SR, [1]*10)

is worth mentioning as well. Here, [1]*10 is just the Python way of constructing a list with 10 repeats of 1.

Preview: (hide)
link
1

answered 5 years ago

vdelecroix gravatar image

updated 5 years ago

A version with 14 characters

sage: (SR^10).zero()
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

that could even be shorten to 9

sage: (SR^10)()
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
Preview: (hide)
link
0

answered 5 years ago

slelievre gravatar image

This is an answer to the follow-up question posted as a comment to @tmonteil's answer.

There is no function ones_vector but we can define a vector of ones as the first row of a matrix of ones:

sage: v = matrix.ones(SR, 1, 10)[0]
sage: v
(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
sage: v.parent()
Vector space of dimension 10 over Symbolic Ring

It lives in the same space as the zero vector:

sage: u = zero_vector(SR, 10)
sage: u
(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
sage: u.parent()
Vector space of dimension 10 over Symbolic Ring
Preview: (hide)
link

Your Answer

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

Add Answer

Question Tools

Stats

Asked: 11 years ago

Seen: 5,055 times

Last updated: Apr 20 '19