Я не уверен, хотите ли вы произвольную точку для произвольной функции (в этом случае вы можете заменить все точки, кроме одной, произвольными точками)
>>> from random import randint
>>> xi = 1/randint(1, 10)
>>> yi = nsolve(eq.subs(x, xi), 0)
>>> (xi, yi)
(0.5, 2.95803989154981)
Или, если у вас есть второе отношение, которое Вы хотите удерживать значение от x
до y
, тогда вы можете использовать это с nsolve
, например, вы хотите, чтобы x
был в два раза больше y
:
>>> nsolve((eq, x - 2*y), (x, y), (0, 1))
Matrix([
[2.68328157299975],
[1.34164078649987]])
Или, может быть, вам нужна произвольная точка на окружности:
>>> from sympy.abc import t
>>> from sympy import Circle
>>> Circle(eq)
Circle(Point2D(0, 0), 3)
>>> _.arbitrary_point(t)
Point2D(3*cos(t), 3*sin(t))
>>> pt = _
Итак, pt
- произвольная однопараметрическая точка для этой окружности. Чтобы увидеть значения x, y для данного параметра, подставьте значение:
>>> ti = 1/randtint(1,100); ti
0.021739130434782608
>>> pt.subs(t, ti)
Point2D(299929114322911/100000000000000, 40757659112601/625000000000000)
>>> _.n()
Point2D(2.99929114322911, 0.0652122545801616)
>>> _.args
(2.99929114322911, 0.0652122545801616)