極座標/直交座標からの変換を使用してヤコビ行列がどのように到着したかの例を準備しています。私の質問は二重です。まず、sympyに置換後の条件を打ち消すように強制する方法を知りたい。 二つの行列は、次のとおりです。極座標変換のヤコビアンにおける項をキャンセルする
J1 = Matrix([[(r*cos(theta)).diff(r), (r*cos(theta)).diff(theta)],[(r*sin(theta)).diff(r),(r*sin(theta)).diff(theta)]])
J2 = Matrix([[((x**2+y**2)**(1/2.)).diff(x),((x**2+y**2)**(1/2.)).diff(y)],[atan(y/x).diff(x),atan(y/x).diff(y)]])
#substitute for x,y to have same variables for J1 and J2
J2 = trigsimp(J2.subs({x:r*cos(theta), y:r*sin(theta)}))
J2
I)は(キャンセル使用していることを期待、あるいはevalf()は、R /(R^2)^ 1/2 = 1項を削除しているだろうが、それはしませんでした。
第2に、sympyが単純なアイデンティティを認識するためにはどのようにする必要がありますか?この場合、sin^2 + cos^2 = 1?これは結果がJ1 * J2から評価された単位行列になるようにするためです。
これは、ドキュメントごとに、動作します:
simplify(r/(r**2)**(1/2)*(sin(theta)**2+cos(theta)**2))
この等価(ISH)式はしていません。
J = J1*J2
simplify(J[0,0])
第2のエラーは最初のエラーの結果であると思われます。