zoukankan      html  css  js  c++  java
  • 克罗内克符号kronecker_delta

    Kronecker delta 克罗内克函数

    ### Wiki [维基百科](https://en.wikipedia.org/wiki/Kronecker_delta) ### Kronecker delta 定义 $$delta _{{ij}}={egin{cases}0&{ ext{if }}i eq j,\1&{ ext{if }}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库的知识。
  • 相关阅读:
    C#日期与时间
    使用IIS部署WebDAV
    永久有效,最新IntelliJ IDEA 2021.1.1激活破解教程,亲测有效
    LNC(宝元)机床的IP设置和数据采集
    KND(凯恩帝)机床的IP设置
    国密算法SM1-SM4简介
    WPF中根据数据展示不同UI控件的做法
    WPF中ListView滚动到当前行的几种方法
    WPF中对于异步返回的绑定
    .net类库名称空间冲突怎么办?
  • 原文地址:https://www.cnblogs.com/brightyuxl/p/9998403.html
Copyright © 2011-2022 走看看