科学计算numpy与sympy联用

写在前面:符号计算与矩阵运算结合是十分常见的!这就需要sympy与numpy混合使用!此时存在一个问题:sympy有自己“独有的”的数据类型,在混合使用时需要把sympy数据类型统一成numpy和python中的普通数值

说明:numpy数组/矩阵中是可以有sympy的“符号元素”的!这点已亲测!

 


(1)在numpy中进行符号赋值:

需要用float和int等进行类型转换:float(f.eval())

示例:

x,y = sympy.symbols('x y')

f = (x+y)**2 + (x+1)**2 + (y+3)**2

# 一阶导数:

fx = sympy.diff(f,x)

fy = sympy.diff(f,y)

grad_f1 = np.array([[fx],[fy]])    # numpy矩阵存入sympy字符元素

# 赋值:

x_tmp = 10

y_tmp = -1.5 

grad_f1 = np.array([[float(fx.evalf(subs={x:x_tmp,y:y_tmp}))],

                               [float(fy.evalf(subs={x:x_tmp,y:y_tmp}))]])     

# 用float进行类型转换!方便后面numpy进行普通数值计算!现在grad_f1就是普通数值矩阵!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值