Ich versuche, die Zeit, den Winkel und die Geschwindigkeit zu bestimmen, die etwas bewegen müsste, um sich mit einer sich bewegenden Ellipse zu kreuzen . Gerade jetzt minimale Zeit) ich habe versucht, Sympy zu verwenden, um mit diesem Abenteuer helfen Hier finden Sie den Code, die ich ausführen:.Get "TypeError: kann mph nicht erzeugen 'Bei Verwendung von sympy.nsolve()
import sympy as sp
sp.init_printing()
delta_x, delta_y, t = sp.symbols('delta_x delta_y t', real=True, positive=True)
V, V_s, x_0, y_0, theta_s, theta_t = sp.symbols('V V_s x_0 y_0 theta_s theta_t', real=True)
x, y = sp.symbols('x y', real=True)
EQ1 = sp.Eq(((x-(x_0+V*sp.cos(theta_t)*t))/(delta_x+V*sp.cos(theta_t)*t))**2+((y-(y_0+V*sp.sin(theta_t)*t))/(delta_y+V*sp.sin(theta_t)*t))**2-1, 0)
sx = sp.Eq(x, V_s*sp.cos(theta_s)*t)
sy = sp.Eq(y, V_s*sp.sin(theta_s)*t)
mysubs = [(V,5), (x_0, 10), (y_0, 10), (theta_t, 7*(sp.pi/4)), (delta_x, 0), (delta_y, 0)]
sp.nsolve((EQ1.subs(mysubs), sx.subs(mysubs), sy.subs(mysubs)), (V_s, theta_s, t), (5, 0.0, 1))
das Ergebnis dieser Operation ergibt:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sympy/mpmath/calculus/optimization.py in findroot(ctx, f, x0, solver, tol, verbose, verify, **kwargs)
927 try:
--> 928 fx = f(*x0)
929 multidimensional = isinstance(fx, (list, tuple, ctx.matrix))
<string> in <lambda>(_Dummy_75, _Dummy_76, _Dummy_77)
/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sympy/mpmath/matrices/matrices.py in __init__(self, *args, **kwargs)
300 for j, a in enumerate(row):
--> 301 self[i, j] = convert(a)
302 else:
/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sympy/mpmath/ctx_mp_python.py in convert(ctx, x, strings)
661 return ctx.convert(x._mpmath_(prec, rounding))
--> 662 return ctx._convert_fallback(x, strings)
663
/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sympy/mpmath/ctx_mp.py in _convert_fallback(ctx, x, strings)
613 raise ValueError("can only create mpf from zero-width interval")
--> 614 raise TypeError("cannot create mpf from " + repr(x))
615
TypeError: cannot create mpf from 0.08*(x - 13.535533905932737622)**2 + 0.08*(y - 6.464466094067262378)**2 - 1
ist Dies, weil das System nicht eingeschränkt genug ist? Es gibt eine Familie von Winkeln und Geschwindigkeit s, mit dem die bewegliche Ellipse abgefangen werden könnte. Dieser Fehler scheint dies nicht zu implizieren. (Ja, auch wenn ich versuche, V_s in diesem Problem einzuschränken, erscheint der gleiche Fehler).
ich die folgenden Versionen der Dinge bin mit:
| Software | Version |
|----------|-----------|
| python | 3.5.2 |
| sympy | 1.0 |
| mpmath | 0.19 |