Когда я решаю параллельное ограничение, я получаю сложное решение, пока существует реальное решение.
Можно ли получить только настоящее решение?
код:
Код: Выделить всё
result = sp.solve(AllEquestions, AllVariables)
Код: Выделить всё
['x1- 0', 'y1- 0', 'z1- 0', ((-x1 + x2)*(-x3 + x4) + (-y1 + y2)*(-y3 + y4) + (-z1 + z2)*(-z3 + z4))**2/(((x1 - x2)**2 + (y1 - y2)**2 + (z1 - z2)**2)**1.0*((x3 - x4)**2 + (y3 - y4)**2 + (z3 - z4)**2)**1.0) - 1, 'x2- 100', 'y2- 25', 'z2- 0', ((-x1 + x2)*(-x3 + x4) + (-y1 + y2)*(-y3 + y4) + (-z1 + z2)*(-z3 + z4))**2/(((x1 - x2)**2 + (y1 - y2)**2 + (z1 - z2)**2)**1.0*((x3 - x4)**2 + (y3 - y4)**2 + (z3 - z4)**2)**1.0) - 1, 'x3- 10', 'y3- 10', 'z3- 0', ((-x1 + x2)*(-x3 + x4) + (-y1 + y2)*(-y3 + y4) + (-z1 + z2)*(-z3 + z4))**2/(((x1 - x2)**2 + (y1 - y2)**2 + (z1 - z2)**2)**1.0*((x3 - x4)**2 + (y3 - y4)**2 + (z3 - z4)**2)**1.0) - 1, 'x4- 35', ((-x1 + x2)*(-x3 + x4) + (-y1 + y2)*(-y3 + y4) + (-z1 + z2)*(-z3 + z4))**2/(((x1 - x2)**2 + (y1 - y2)**2 + (z1 - z2)**2)**1.0*((x3 - x4)**2 + (y3 - y4)**2 + (z3 - z4)**2)**1.0) - 1]
Код: Выделить всё
[x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4]
Код: Выделить всё
[(0.0, 0.0, 0.0, 100.000000000000, 25.0000000000000, 0.0, 10.0000000000000, 10.0000000000000, 0.0, 35.0000000000000, -1.03077640640442*I*z4 + 16.25, z4), (0.0, 0.0, 0.0, 100.000000000000, 25.0000000000000, 0.0, 10.0000000000000, 10.0000000000000, 0.0, 35.0000000000000, 1.03077640640442*I*z4 + 16.25, z4)]
Код: Выделить всё
[(0.0, 0.0, 0.0, 100.000000000000, 25.0000000000000, 0.0, 10.0000000000000, 10.0000000000000, 0.0, 35.0000000000000, 16.2500000000000, 0.0)]
Код: Выделить всё
self.x = sp.Symbol('x' + str(self.local_var))
когда я устанавливаю флаг real=True для своих точек
Код: Выделить всё
self.x = sp.Symbol('x' + str(self.local_var), real=True)
Файл "C:\Users\Achaibou
Karim\AppData \Roaming\FreeCAD\Macro\fpo\tube\GeoSolver\solver.py",
строка 25, в файлеsolve
result = sp.solve(AllEquestions, AllVariables) "c:\Program Files\FreeCAD 0.21\bin\lib\site-packages\sympy\solvers\solvers.py",
строка 1172, в решении
linear, решение = _solve_system(f, символы, **флаги) Файл "c:\Program Files\FreeCAD
0.21\bin\lib\site-packages\sympy\solvers\solvers.py", строка 1896, в _solve_system
raise NotImplementedError('не найдено допустимое подмножество') NotImplementedError: не найдено допустимое подмножество
Подробнее здесь: https://stackoverflow.com/questions/792 ... l-solution
Мобильная версия