Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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?