python求雅可比矩阵_用Python计算雅可比矩阵

Jacobian仅为向量值函数定义。不能使用填充有常数的数组来计算雅可比;必须知道基本函数及其偏导数,或它们的数值近似值。当你认为一个常数(关于某事物)的(偏)导数是0时,这是显而易见的。

在Python中,可以使用符号数学模块(如SymPy或SymEngine)计算函数的jacobian。以下是维基百科的一个简单示例:

使用SymEngine模块:Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:40:30) [MSC v.1500 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>>

>>> import symengine

>>>

>>>

>>> vars = symengine.symbols('x y') # Define x and y variables

>>> f = symengine.sympify(['y*x**2', '5*x + sin(y)']) # Define function

>>> J = symengine.zeros(len(f),len(vars)) # Initialise Jacobian matrix

>>>

>>> # Fill Jacobian matrix with entries

... for i, fi in enumerate(f):

... for j, s in enumerate(vars):

... J[i,j] = symengine.diff(fi, s)

...

>>> print J

[2*x*y, x**2]

[5, cos(y)]

>>>

>>> print symengine.Matrix.det(J)

2*x*y*cos(y) - 5*x**2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>