Ask Your Question

Solve fails

asked 2019-10-18 06:50:09 +0100

Cyrille gravatar image

updated 2019-10-18 06:52:26 +0100

I wonder why the Variable 'x_0' not found

x_0, x_1 = var('x_0 x_1')
p2=plot(lin, (x,8,14))
edit retag flag offensive close merge delete


because there is an infinity of solutions x_0,x_1 in R

show("lin : ",lin)
show("lin : ",lin)
ortollj gravatar imageortollj ( 2019-10-18 10:43:17 +0100 )edit

I was expecting thant $x_0$ will be taken as a parameter.

Cyrille gravatar imageCyrille ( 2019-10-18 10:58:50 +0100 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2019-10-18 13:34:51 +0100

tmonteil gravatar image

updated 2019-10-18 15:29:41 +0100

This is very unclear. For p2, if you want an implicit plot where x_0 is a parameter that belongs to the interval $[8,14]$, you can do:

sage: p2 = implicit_plot(70==6*x_0+18*x_1,(8,14),(-3,3))

You can also have a look to the parametric_plot function.

But without more details about your actual goal, there is not much to say.

edit flag offensive delete link more

answered 2019-10-18 18:11:54 +0100

dsejas gravatar image

Hello, @Cyrille! Try the following:

gr = Polyhedron(ieqs=[(10,-1,0), (-12,0,1)])
p1 = gr.plot()
x_0, x_1 = var('x_0 x_1')
lin = solve([70==6*x_0+18*x_1], x_1, solution_dict=True)
p2 = plot(lin[0][x_1], (x_0,8,14))
p1 + p2

Notice I have added solution_dict=True, which makes lin a list of dictionaries of solutions:

[{x_1: -1/3*x_0 + 35/9}]

In order to plot it, first extract the dictionary from the list (that is done with lin[0]); we get

{x_1: -1/3*x_0 + 35/9}

Finally, we extract the equation you want to plot (that is done with lin[0][x_1]); we get

-1/3*x_0 + 35/9

That is what I used in the plot command.

Note: It is not necessary to use (x_0, 8, 14) in the plot command; you can use (x, 8, 14). I did that to be consistent with notation.

There are a couple of things that bother me:

  1. The polyhedron is too small in the plot, because the line is too far. Is this a problem for you?
  2. This won't work if x_1 has more than one solution.

Problem 2 is solved using tmontiel's suggestion.

There may be an alternative way to achieve the same thing. May I ask: what are you trying to achieve?

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


Asked: 2019-10-18 06:50:09 +0100

Seen: 52 times

Last updated: Oct 18 '19