Ich versuche, einen längeren Ausdruck von Mathematica in Python zu importieren. Ich kopierte die FortranForm des Mathematica-Ausdrucks in Python und setzte alle Zeilen so, dass sie den gleichen Einzug haben. Aber ich bekomme einen Fehler, den ich nicht verstehe. Ich vermute, dass dies ein Problem mit der Einrückung ist, aber ich bin mir nicht sicher. Bitte helfen Sie.Mathematica-Ausdruck korrekt in Python importieren
Dies ist der Code in Python, mit Vertiefung:
def f2(x,y,z,x1,y1,z1,x2,y2,z2,x3,y3,z3):
return ((x2*(y - y1) + x*(y1 - y2) + x1*(-y + y2))*(y2 - y3) + (-y1 + y2)*(x3*(-y + y2) + x2*(y - y3) + x*(-y2 + y3)) +
(x2*(z - z1) + x*(z1 - z2) + x1*(-z + z2))*(z2 - z3) + (-z1 + z2)*(x3*(-z + z2) + x2*(z - z3) + x*(-z2 + z3)))/
(np.sqrt((x - x1)**2 + (y - y1)**2 + (z - z1)**2)*((x - x2)**2 + (y - y2)**2 + (z - z2)**2)*np.sqrt((x - x3)**2 + (y - y3)**2 + (z - z3)**2)) -
((x - x3)*((x2*(-y + y1) + x1*(y - y2) + x*(-y1 + y2))*(x3*(-y + y2) + x2*(y - y3) + x*(-y2 + y3)) +
(x2*(-z + z1) + x1*(z - z2) + x*(-z1 + z2))*(x3*(-z + z2) + x2*(z - z3) + x*(-z2 + z3)) +
(y2*(-z + z1) + y1*(z - z2) + y*(-z1 + z2))*(y3*(-z + z2) + y2*(z - z3) + y*(-z2 + z3))))/
(np.sqrt((x - x1)**2 + (y - y1)**2 + (z - z1)**2)*((x - x2)**2 + (y - y2)**2 + (z - z2)**2)*((x - x3)**2 + (y - y3)**2 + (z - z3)**2)**1.5) -
(2*(x - x2)*((x2*(-y + y1) + x1*(y - y2) + x*(-y1 + y2))*(x3*(-y + y2) + x2*(y - y3) + x*(-y2 + y3)) +
(x2*(-z + z1) + x1*(z - z2) + x*(-z1 + z2))*(x3*(-z + z2) + x2*(z - z3) + x*(-z2 + z3)) +
(y2*(-z + z1) + y1*(z - z2) + y*(-z1 + z2))*(y3*(-z + z2) + y2*(z - z3) + y*(-z2 + z3))))/
(np.sqrt((x - x1)**2 + (y - y1)**2 + (z - z1)**2)*((x - x2)**2 + (y - y2)**2 + (z - z2)**2)**2*np.sqrt((x - x3)**2 + (y - y3)**2 + (z - z3)**2)) -
((x - x1)*((x2*(-y + y1) + x1*(y - y2) + x*(-y1 + y2))*(x3*(-y + y2) + x2*(y - y3) + x*(-y2 + y3)) +
(x2*(-z + z1) + x1*(z - z2) + x*(-z1 + z2))*(x3*(-z + z2) + x2*(z - z3) + x*(-z2 + z3)) +
(y2*(-z + z1) + y1*(z - z2) + y*(-z1 + z2))*(y3*(-z + z2) + y2*(z - z3) + y*(-z2 + z3))))/
(((x - x1)**2 + (y - y1)**2 + (z - z1)**2)**1.5*((x - x2)**2 + (y - y2)**2 + (z - z2)**2)*np.sqrt((x - x3)**2 + (y - y3)**2 + (z - z3)**2))
Dies ist der Fehler, die ich bekomme:
File "<ipython-input-87-f30bebfee3b2>", line 4
x2*(z - z1) + x*(z1 - z2) + x1*(-z + z2))*(z2 - z3) + (-z1 + z2)*(x3*(-z + z2) + x2*(z - z3) + x*(-z2 + z3)))/
SyntaxError: invalid syntax
Was ist das? Irgendeine Art von Erweiterung? Hast du überprüft, ob es von 'numpy' /' scipy' unterstützt wird? – roganjosh
Der Code ist ziemlich hässlich. Versuchen Sie es zu bearbeiten, indem Sie [PEP 8] (https://www.python.org/dev/peps/pep-0008/#maximum-line-length) betrachten – Lucas