您可以使用SymPy 1.0版中引入的新张量数组模块。在

我假设您的K和M参数是数字,而不是符号(否则我建议使用symphy.tensor.索引)。在

考虑两个向量的长度。因此,X是秩2和形(2,3)的张量。

我还选择了一个简单的向量:In [1]: from sympy import *

In [2]: from sympy.tensor.array import *

In [3]: var("a,b,c,d,e,f")

Out[3]: (a, b, c, d, e, f)

In [4]: X = Array([[a, b, c], [d, e, f]])

In [5]: var("w1,w2,w3")

Out[5]: (w1, w2, w3)

In [6]: W = Array([w1, w2, w3])

现在创建一个有三个指数的乘积张量(2来自X,1来自W):

^{pr2}$

让我们对第二和第三个索引求和(Python表示法中的索引1和2,因为索引从零开始),这相当于您所称的dot乘积:

^{3}$

同样的表达式可以归纳为:In [12]: stc = sum(tensorcontraction(tp, (1, 2)))

In [13]: stc

Out[13]: a*w1 + b*w2 + c*w3 + d*w1 + e*w2 + f*w3

对于数组的导数,您可以使用derive_by_array(…)。它将创建一个更高阶的张量,其每个分量都由后一个变元的一个分量导出:In [14]: derive_by_array(stc, W)

Out[14]: [a + d, b + e, c + f]

编辑

因为现在已经指定参数M和K是符号,所以我将添加这个部分。在

将X和W声明为索引库:In [1]: X = IndexedBase("X")

In [2]: W = IndexedBase("W")

In [3]: var("i,j,M,K", integer=True)

Out[3]: (i, j, M, K)

您的表达式是指数i和j乘积的和,表达式如下:In [4]: s = Sum(X[i, j]*W[j], (i, 1, M), (j, 1, K))

In [5]: s

Out[5]:

K M

___ ___

╲ ╲

╲ ╲ W[j]⋅X[i, j]

╱ ╱

╱ ╱

‾‾‾ ‾‾‾

j = 1 i = 1

现在,我们将得到s.diff(W[j])或使用不同的索引s.diff(W[k]),不幸的是,这还没有在SymPy中实现。

github上有一个PR,它将增加对索引对象派生的支持,但到目前为止还没有合并:

https://github.com/sympy/sympy/pull/9314

python中求和符号怎么打_参数siz向量的python符号求和与微分相关推荐

  1. python中静态变量和静态方法_【开发者笔记】python中的类方法(@classmethod)和静态方法(@staticmethod)...

    在java.c#等高级语言中我们用static来定义静态方法和静态变量,那么在python中如何定义静态方法和静态变量呢. python提供了@classmethod和@staticmethod来定义 ...

  2. python中常用的序列化模块_使用pickle模块对python对象进行序列化

    pickle模块是Python自带的一个标准模块,专用于Python各种对象的序列化和反序列化,可用于Python内置的各种数据对象(Python中一切都是对象),也可用于程序员自定义的类和对象. p ...

  3. python中如何实现复制粘贴_复制粘贴功能的Python程序 python 中如何实现

    python 中如何实现对文件的复制.粘贴虽然小编心有不甘,可是小编也明白,这辈子就只能陪你到这了. 比如说:小编想将"c:\123\1.txt"复制到"d:\新建文件夹 ...

  4. python中again函数怎么用_《“笨方法”学python 》 once again 20170729

    习题1 第一个程序 ## 问题 怎么让脚本只打印一行 管道!| head -n 1 --求助rd攀攀 习题4 变量和命名 =是等于,作用是为东西取名,==检查左右两边是否相等 下划线字符 在变量中被用 ...

  5. python中浮点数的表示方法_很好地在python中表示浮点数

    我想将浮点数表示为四舍五入到一定位数的字符串,并且从不使用指数格式. 本质上,我想显示任何浮点数并确保它看起来不错. 这个问题有几个部分: 我需要能够指定 有效位数. 有效位数 需要是可变的,不能是 ...

  6. python中栈的描述是_数据结构与算法:Python语言描述 栈和队列.ppt

    数据结构与算法:Python语言描述 栈和队列 迷宫问题 迷宫问题的特点: 存在一集可能位置,一些位置相互连通,一步可达 一个位置可能连通若干位置,出现向前探查的多种可能(有分支) 目标是找到一条路径 ...

  7. python中的pandas怎么安装_如何优雅的安装Python的pandas?

    本文是我<量化小讲堂>系列文章中的一篇,正好可以解决楼主的问题,转帖如下,其他系列文章可见:[量化小讲堂 - Python&Pandas系列]目录汇总 - 量化小讲堂 开发环境的搭 ...

  8. python中不属于整数类型_哪个选项不是Python语言的整数类型?

    [单选题]下面不属于Python保留字的是: [单选题]关于Python的元组类型,以下选项错误的是: [单选题]关于整数类型的4种进制表示,哪个选项的描述是正确的? [简答题]阅读以下冒泡法排序代码 ...

  9. python中倒着输出输入值_十五、深入Python输入和输出

    「@Author:By Runsen」 在很多时候,你会想要让你的程序与用户(可能是你自己)交互.你会从用户那里得到输入,然后打印一些结果.我们可以使用input和print语句来完成这些功能. in ...

最新文章

  1. 类加载器的分类及关系
  2. c语言编程软件出现问号,【C语言】if语句和问号表达式
  3. nginx 超时时间_我眼中的 Nginx(四):是什么让你的 Nginx 服务退出这么慢?
  4. VTK:八叉树可视化用法实战
  5. python基础语法-三大内建数据结构之集合(set)
  6. listview频繁刷新报错
  7. 【学习笔记】在storyboard中给TabViewController添加tab页面
  8. java数组 规定数量_java – 如何在数组中保持不同事物的数量?
  9. tomcat之 JDK8.0安装、tomcat-8.5.15安装
  10. WCF技术剖析之十七:消息(Message)详解(下篇)
  11. LeetCode二分法---C语言
  12. Oracle使用ODBC连接配置
  13. 模型保存的方法-----仅保存架构
  14. ArrayList实现原理及源码分析之JDK8
  15. RocketMQ(四)Linux搭建RocketMQ集群
  16. 仿抖音视频详情页点赞红心动效
  17. 会计学基础期末考试试题及答案
  18. 今天开始学java(十五)内部类与匿名内部类
  19. python自动化测试selenium(四)切换页面、切换窗口
  20. 插入排序(动图理解)

热门文章

  1. 奔梦向前-代码实现表白男生女生-2020-06-15
  2. c++ 中关于引用(1)
  3. react 在JXL中嵌入JS表达式
  4. 使用Python按时间顺序批量重命名文件
  5. hexo(sakura)给博客增添侧边栏(回到顶部,跳转评论,深色模式,播放音乐)Valine-1.4.4新版本尝鲜+个性制定(表情包、qq头像、UI样式)
  6. 在法国读计算机研究生的日子开始了
  7. 13_Pinia组件库
  8. C++检测键盘大小写
  9. iOS获取WIFI配置信息,WIFI名称、网关(路由器地址)、本机IP地址、DNS
  10. 超级详细Window10安装Java JDK 和配置开发环境