鍍金池/ 問(wèn)答/Python  數(shù)據(jù)庫(kù)  網(wǎng)絡(luò)安全/ 怎樣用python符號(hào)計(jì)算計(jì)算出雅科比矩陣?

怎樣用python符號(hào)計(jì)算計(jì)算出雅科比矩陣?

import sympy
x,y,z,r,l,f=sympy.symbols("x y z r l f")
x=rsympy.cos(l)sympy.cos(f)
y=rsympy.cos(l)sympy.sin(f)
z=r*sympy.sin(l)
怎樣求出來(lái)雅科比矩陣?
J =
[ cos(l)cos(f), -rsin(l)cos(f), -rcos(l)*sin(f)]
[ cos(l)sin(f), -rsin(l)sin(f), rcos(l)*cos(f)]
[ sin(l), r*cos(l), 0 ]

參考資料:
MATLAB中jacobian是用來(lái)計(jì)算Jacobi矩陣的函數(shù)。
syms r l f
x=rcos(l)cos(f);
y=rcos(l)sin(f);
z=r*sin(l);
J=jacobian([x;y;z],[r l f])

回答
編輯回答
紓惘
funcs = sympy.Matrix([x, y, z])
args = sympy.Matrix([r, l, f])
res = funcs.jacobian(args)

輸出

Matrix([
[cos(f)*cos(l), -r*sin(l)*cos(f), -r*sin(f)*cos(l)],
[sin(f)*cos(l), -r*sin(f)*sin(l),  r*cos(f)*cos(l)],
[       sin(l),         r*cos(l),                0]])
2017年9月27日 02:42