Ask Your Question
1

Make program act on itself by entering certain areas of code (as a string) which it must itself execute

asked 2020-07-11 03:52:51 +0100

Pérez Broon gravatar image

updated 2020-07-12 02:25:57 +0100

slelievre gravatar image

My program must act on itself by entering certain areas of code (in the form of a string) which it must itself execute.

Take the ring K of polynomials with four unknowns x_00, x_10, x_01 and x_11.

K.<x_00, x_10, x_01, x_11> = QQ []
g = K.random_element()
for i in range(1):
    for j in range(1):
         2 + g.monomial_coefficient(x_ij)

The last command tries to add to 2 the coefficient of the monomial x_ij. This is where it blocks.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2020-07-12 02:30:17 +0100

slelievre gravatar image

updated 2020-07-12 02:34:05 +0100

Apply a map to all coefficients of a polynomial

To apply a map to all coefficients of a polynomial, use map_coefficients.

For example, say we want to add two to each coefficient.

The function $x \mapsto x + 2$ is denoted in Python by lambda x: x + 2.

sage: K.<x_00, x_10, x_01, x_11> = QQ []
sage: g = K.random_element()
sage: g
7/18*x_00*x_01 + 51*x_00*x_11 - 126*x_01*x_11 - x_10
sage: g.map_coefficients(lambda x: x + 2)
43/18*x_00*x_01 + 53*x_00*x_11 - 124*x_01*x_11 + x_10

In this case, 7/18 became 43/18, 51 became 53, -126 became -124, and -1 became +1.

Note that this works around the question.

Accessing monomial $x_{ij}$ for given $i$ and $j$

For this, use string formatting. For instance:

sage: i = 0
sage: j = 1
sage: K(f'x_{i}{j}')
x_01
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

1 follower

Stats

Asked: 2020-07-11 03:52:51 +0100

Seen: 444 times

Last updated: Jul 12 '20