我的问题如下:

import sympy as sp

p = sp.symbols('p')
I_p = sp.Identity(p)
C = sp.BlockMatrix([[I_p, I_p], [I_p, -I_p]])
Sigma_1 = sp.MatrixSymbol('Sigma_1', p, p)
Sigma_2 = sp.MatrixSymbol('Sigma_2', p, p)
Sigma = sp.BlockMatrix([[Sigma_1, Sigma_2], [Sigma_2, Sigma_1]])

C_Sigma_C_transpose = C * Sigma * C.T

print(C_Sigma_C_transpose)

## Matrix([
## [I,  I],
## [I, -I]])*Matrix([
## [Sigma_1, Sigma_2],
## [Sigma_2, Sigma_1]])*Matrix([
## [I,  I],
## [I, -I]])

结果与预期输出不匹配.我该如何纠正它?

推荐答案

而不是使用BlockMatrix使它们成为正则矩阵.然后将进行手术.

C = sp.Matrix([[I_p, I_p], [I_p, -I_p]])
Sigma = sp.Matrix([[Sigma_1, Sigma_2], [Sigma_2, Sigma_1]])

# the @ symbol is for matrix multiplication, but * will work
C_Sigma_C_transpose = C@Sigma@C.T

print(C_Sigma_C_transpose )
# Matrix([[2*Sigma_1 + 2*Sigma_2, 0], [0, 2*Sigma_1 - 2*Sigma_2]])

在LaTeX中找到的(来自The Alumyter Notebook):

enter image description here

Python相关问答推荐

在Python中为变量的缺失值创建虚拟值

配置Sweetviz以分析对象类型列,而无需转换

Polars比较了两个预设-有没有方法在第一次不匹配时立即失败

大Pandas 胚胎中产生组合

如何从具有不同len的列表字典中创建摘要表?

通过Selenium从页面获取所有H2元素

如何找到满足各组口罩条件的第一行?

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

有没有一种方法可以从python的pussompy比较结果中提取文本?

对象的`__call__`方法的setattr在Python中不起作用'

海上重叠直方图

如何从列表框中 Select 而不出错?

Polars将相同的自定义函数应用于组中的多个列,

跳过嵌套JSON中的级别并转换为Pandas Rame

如何使用OpenGL使球体遵循Python中的八样路径?

pysnmp—lextudio使用next()和getCmd()生成器导致TypeError:tuple对象不是迭代器''

Pandas 数据帧中的枚举,不能在枚举列上执行GROUP BY吗?

如何在Pandas中用迭代器求一个序列的平均值?

如何在Python中创建仅包含完整天数的月份的列表

两个名称相同但值不同的 Select 都会产生相同的值(discord.py)