this works (A)(although takes awfully long)
a,b,x,y,l1,l2=symbols('a b x y l1 l2')
eq = [l1*cos(a)+l2*cos(b)-x,l1*sin(a)+l2*sin(b)-y]
res = solve(eq,[a,b])
this does not (B):
a,b,x,y,l1,l2=symbols('a b x y l1 l2')
eq = [l1*cos(a)+l2*cos(a+b)-x,l1*sin(a)+l2*sin(a+b)-y]
res = solve(eq,[a,b])
solution from (A) could be used to find solution for (B) by a simple
substitution, so, analytic solution exists, sympy, however, produces error
python 3.11.13
sympy 1.14.0
---------------------------------------------------------------------------
TypeError Traceback (most recent call last) Cell In[11], line 1 ----> 1
res2 = solve(eq,[a,b]) File
~\Documents\FH\Python\venv\control\Lib\site-packages\sympy\solvers\solvers.py:1170
<http://localhost:8888/lab/tree/Teaching/RobReg/R2D/~/Documents/FH/Python/venv/control/Lib/site-packages/sympy/solvers/solvers.py#line=1169>,
in solve(f, *symbols, **flags) 1168 solution = _solve(f[0], *symbols, **flags)
1169 else: -> 1170 linear, solution = _solve_system(f, symbols, **flags)
1171 assert type(solution) is list 1172 assert not solution or type
(solution[0]) is dict, solution File
~\Documents\FH\Python\venv\control\Lib\site-packages\sympy\solvers\solvers.py:1963
<http://localhost:8888/lab/tree/Teaching/RobReg/R2D/~/Documents/FH/Python/venv/control/Lib/site-packages/sympy/solvers/solvers.py#line=1962>,
in _solve_system(exprs, symbols, **flags) 1961 for s in ok_syms: 1962 try: ->
1963 soln = _vsolve(eq2, s, **flags) 1964 except NotImplementedError: 1965
continue File
~\Documents\FH\Python\venv\control\Lib\site-packages\sympy\solvers\solvers.py:2638
<http://localhost:8888/lab/tree/Teaching/RobReg/R2D/~/Documents/FH/Python/venv/control/Lib/site-packages/sympy/solvers/solvers.py#line=2637>,
in _vsolve(e, s, **flags) 2636 def _vsolve(e, s, **flags): 2637 """return
list of scalar values for the solution of e for symbol s""" -> 2638 return
[i[s] for i in _solve(e, s, **flags)] File
~\Documents\FH\Python\venv\control\Lib\site-packages\sympy\solvers\solvers.py:1743
<http://localhost:8888/lab/tree/Teaching/RobReg/R2D/~/Documents/FH/Python/venv/control/Lib/site-packages/sympy/solvers/solvers.py#line=1742>,
in _solve(f, *symbols, **flags) 1738 result = [r for r in result if 1739 not
any(checksol(d, r, **flags) 1740 for d in dens)] 1741 if check: 1742 # keep
only results if the check is not False -> 1743 result = [r for r in result
if 1744 checksol(f_num, r, **flags) is not False] 1745 return result File
~\Documents\FH\Python\venv\control\Lib\site-packages\sympy\solvers\solvers.py:1744
<http://localhost:8888/lab/tree/Teaching/RobReg/R2D/~/Documents/FH/Python/venv/control/Lib/site-packages/sympy/solvers/solvers.py#line=1743>,
in <listcomp>(.0) 1738 result = [r for r in result if 1739 not any(checksol(d,
r, **flags) 1740 for d in dens)] 1741 if check: 1742 # keep only results if
the check is not False 1743 result = [r for r in result if -> 1744 checksol(
f_num, r, **flags) is not False] 1745 return result File
~\Documents\FH\Python\venv\control\Lib\site-packages\sympy\solvers\solvers.py:354
<http://localhost:8888/lab/tree/Teaching/RobReg/R2D/~/Documents/FH/Python/venv/control/Lib/site-packages/sympy/solvers/solvers.py#line=353>,
in checksol(f, symbol, sol, **flags) 352 return val == 0 353 if numerical
and val.is_number: --> 354 return (abs(val.n(18).n(12, chop=True)) < 1e-9)
is S.true 356 if flags.get('warn', False): 357 warnings.warn("\n\tWarning:
could not verify solution %s." % sol) File
~\Documents\FH\Python\venv\control\Lib\site-packages\sympy\core\decorators.py:248
<http://localhost:8888/lab/tree/Teaching/RobReg/R2D/~/Documents/FH/Python/venv/control/Lib/site-packages/sympy/core/decorators.py#line=247>,
in _SympifyWrapper.make_wrapped.<locals>._func(self, other) 246 if not
isinstance(other, expectedcls): 247 return retval --> 248 return func(self,
other) File
~\Documents\FH\Python\venv\control\Lib\site-packages\sympy\core\expr.py:400
<http://localhost:8888/lab/tree/Teaching/RobReg/R2D/~/Documents/FH/Python/venv/control/Lib/site-packages/sympy/core/expr.py#line=399>,
in Expr.__lt__(self, other) 397 @sympify_return([('other', 'Expr')],
NotImplemented) 398 def __lt__(self, other): 399 from .relational import
StrictLessThan --> 400 return StrictLessThan(self, other) File
~\Documents\FH\Python\venv\control\Lib\site-packages\sympy\core\relational.py:850
<http://localhost:8888/lab/tree/Teaching/RobReg/R2D/~/Documents/FH/Python/venv/control/Lib/site-packages/sympy/core/relational.py#line=849>,
in _Inequality.__new__(cls, lhs, rhs, **options) 848 raise TypeError("Invalid
comparison of non-real %s" % me) 849 if me is S.NaN: --> 850 raise TypeError
("Invalid NaN comparison") 851 # First we invoke the appropriate inequality
method of `lhs` 852 # (e.g., `lhs.__lt__`). That method will try to reduce
to 853 # boolean or raise an exception. It may keep calling (...) 857 #
exception). In that case, it must call us with 858 # `evaluate=False` to
prevent infinite recursion. 859 return cls._eval_relation(lhs, rhs, **options)
TypeError: Invalid NaN comparison
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/sympy/f5d782b5-14e2-466a-85b1-26d48f5a0eeen%40googlegroups.com.