sympy与numpy混合使用

写在前面:符号计算与矩阵运算结合是十分常见的!这就需要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就是普通数值矩阵!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容