Kronecker delta 克罗内克函数

### Wiki
[维基百科](https://en.wikipedia.org/wiki/Kronecker_delta)
### Kronecker delta 定义
$$\delta _{{ij}}={\begin{cases}0}i\neq j,\\1}i=j.\end{cases}}$$
### Python3 代码实现
**函数设计**
```python
kronecker_delta_ij = lambda i, j: 1 if i==j else 0
```
**函数使用**
```
kronecker_delta_ij(1, 1) # 结果为 1
kronecker_delta_ij(1, 3) # 结果为 0
```
$\delta_{ij}$**张量定义**
```python
def delta_ij(n):
Delta_ij = []
for i in range(n):
for j in range(n):
Delta_ij.append(kronecker_delta_ij(i, j))
return [Delta_ij[:3], Delta_ij[3:6], Delta_ij[-3:]]
```
example:
```
deltaij = delta_ij(3)
print(deltaij)

结果:

[[1, 0, 0], [0, 1, 0], [0, 0, 1]]

## 关于克罗内克符号的补充
### 构造方法1

import numpy as np

n = 3

i, k = np.ogrid[:n, :n]

res = np.zeros((n, n, n, n), int)

res[i, i, k, k] = 1

print(res)

Result:

[[[[1 0 0]

[0 1 0]

[0 0 1]]

[[0 0 0]

[0 0 0]

[0 0 0]]

[[0 0 0]

[0 0 0]

[0 0 0]]]

[[[0 0 0]

[0 0 0]

[0 0 0]]

[[1 0 0]

[0 1 0]

[0 0 1]]

[[0 0 0]

[0 0 0]

[0 0 0]]]

[[[0 0 0]

[0 0 0]

[0 0 0]]

[[0 0 0]

[0 0 0]

[0 0 0]]

[[1 0 0]

[0 1 0]

[0 0 1]]]]

### 构造方法2

import numpy as np

n = 3

i = np.aragne(3)

res = np.zeros((3,3,3), int)

res[i, i, i] = 1

print(res)

<img width="320" height="500" src="https://img2018.cnblogs.com/blog/1372901/201811/1372901-20181121224458867-535758943.jpg">

## 总结
本次分享的知识虽小,但是五脏皆全。涉及到了lambda表达式,三元表达式,for循环,函数定义,以及numpy库的知识。

克罗内克符号kronecker_delta的更多相关文章

  1. Differential Geometry之第一章欧式空间

    书籍:<微分几何>彭家贵 局部微分几何 第一章.欧式空间 1.1向量空间 (1)向量空间 a.向量空间是集合,集合中的元素需要定义加法和乘法运算.向量空间和n维数组空间R^n不是同一个概念 ...

  2. 微信公众号开发之VS远程调试

    目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...

  3. 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题

    千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...

  4. 微信应用号(小程序)开发IDE配置(第一篇)

    2016年9月22日凌晨,微信宣布“小程序”问世,当然只是开始内测了,微信公众平台对200个服务号发送了小程序内测邀请.那么什么是“小程序”呢,来看微信之父怎么说 看完之后,相信大家大概都有些明白了吧 ...

  5. SQLSERVER走起微信公众帐号已经开通搜狗微信搜索

    SQLSERVER走起微信公众帐号已经开通搜狗微信搜索 请打开下面链接 http://weixin.sogou.com/gzh?openid=oIWsFt-hiIb_oYqQHaBMoNwRB2wM ...

  6. SQLSERVER走起微信公众帐号全新改版 全新首页

    SQLSERVER走起微信公众帐号全新改版 全新首页 今天,SQLSERVER走起微信公众帐号增加了首页功能 虽然还是订阅号,不过已经对版面做了比较大的修改,希望各位亲用得放心.用得安心O(∩_∩)O ...

  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统(71)-微信公众平台开发-公众号管理

    系列目录 思维导图 下面我们来看一个思维导图,这样就可以更快了解所需要的功能: 上一节我们利用了一个简单的代码例子,完成了与微信公众号的对话(给公众号发一条信息,并得到回复) 这一节将讲解公众号如何设 ...

  8. 【原创分享·微信支付】 C# MVC 微信支付教程系列之公众号支付

    微信支付教程系列之公众号支付         今天,我们接着讲微信支付的系列教程,前面,我们讲了这个微信红包和扫码支付.现在,我们讲讲这个公众号支付.公众号支付的应用环境常见的用户通过公众号,然后再通 ...

  9. 快递Api接口 & 微信公众号开发流程

    之前的文章,已经分析过快递Api接口可能被使用的需求及场景:今天呢,简单给大家介绍一下微信公众号中怎么来使用快递Api接口,来完成我们的需求和业务场景. 开发语言:Nodejs,其中用到了Neo4j图 ...

随机推荐

  1. python进行进制转换

    # 10进制转为2进制 print(bin(10)) # 结果:0b1010 # 2进制转为10进制 print(int("1001", 2)) # 结果:9 # 10进制转为16 ...

  2. du命令

    选项 例1:显示单个文件的大小(默认单位K) [root@zabbix alertscripts]# du -h sendim.py 4.0k sendim.py 例2:显示某个目录的总大小 例3:输 ...

  3. linux:安装并使用mongo

    1.下载mongo:  curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 2.解压: tar -zxvf ...

  4. python练习册0004题

    在任意一个英文文档中,统计单词出现的次数, 分析: 本题不是很难,单词通常以空格隔开,但是有些单词后面跟一些特殊符号,只需把这些特殊符号替换掉就可以了, 代码一 import re file_name ...

  5. python no module named builtins

    使用python2时出现此错误. 解决办法: pip install future

  6. KnockoutJs学习笔记(五)

    作为一名初学者来说,一篇篇的按顺序看官网上的文档的确是一件很痛苦的事情,毕竟它的排列也并非是由浅及深的排列,其中的顺序也颇耐人寻味,于是这篇文章我又跳过了Reference部分,进而进入到具体的bin ...

  7. HDU 1384 Intervals【差分约束-SPFA】

    类型:给出一些形如a−b<=k的不等式(或a−b>=k或a−b<k或a−b>k等),问是否有解[是否有负环]或求差的极值[最短/长路径].例子:b−a<=k1,c−b&l ...

  8. form表单总结

    form表单是一个基础的表单控件,最近做扫码登陆使用到,在这里记录一下 <form action="url" method="get" target=&q ...

  9. youDao

    2018-09-22Journeys end in lovers' meeting.漂泊止于爱人的相遇. All extremes of feeling are allied with madness ...

  10. sql语句start with connect by prior语法解析

    prior分两种放法: 1 放在子节点端 表示start with 指定的节点作为根节点,按照从上到下的顺序遍历 2 放在父节点端 表示start with指定的节点作为最底层节点,按照从下到上的顺序 ...