Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 精炼((a*E).T*(a*E))失败_Python_Sympy - Fatal编程技术网

Python 精炼((a*E).T*(a*E))失败

Python 精炼((a*E).T*(a*E))失败,python,sympy,Python,Sympy,下面是我们遇到问题的sympy代码。我们试图在正交矩阵上使用简单代数 from sympy import * from sympy.abc import a, l E = MatrixSymbol('E', l, l) aE = a * E with assuming(Q.orthogonal(E)): print(refine(E.T * E)) print(refine(aE.T * aE)) 第一个打印行成功完成,并按预期给出“I”。另一方面,最末端的print语句终

下面是我们遇到问题的
sympy
代码。我们试图在正交矩阵上使用简单代数

from sympy import *
from sympy.abc import a, l

E = MatrixSymbol('E', l, l)
aE = a * E

with assuming(Q.orthogonal(E)):
    print(refine(E.T * E))
    print(refine(aE.T * aE))
第一个打印行成功完成,并按预期给出“I”。另一方面,最末端的print语句终止于:

“AttributeError:'Symbol'对象没有属性'T'”错误

整个错误消息如下:

/Users/wakita/anaconda3/envs/pyqtgl/bin/python "/Users/wakita/Dropbox (smartnova)/work/pysandbox/testsympy/aE.py"
Traceback (most recent call last):
  File "/Users/wakita/Dropbox (smartnova)/work/pysandbox/testsympy/aE.py", line 9, in <module>
    print(refine(aE.T * aE))
  File "/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site-packages/sympy/assumptions/refine.py", line 29, in refine
    args = [refine(arg, assumptions) for arg in expr.args]
  File "/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site-packages/sympy/assumptions/refine.py", line 29, in <listcomp>
    args = [refine(arg, assumptions) for arg in expr.args]
  File "/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site-packages/sympy/assumptions/refine.py", line 29, in refine
    args = [refine(arg, assumptions) for arg in expr.args]
  File "/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site-packages/sympy/assumptions/refine.py", line 29, in <listcomp>
    args = [refine(arg, assumptions) for arg in expr.args]
  File "/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site-packages/sympy/assumptions/refine.py", line 40, in refine
    new_expr = handler(expr, assumptions)
  File "/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site-packages/sympy/matrices/expressions/matmul.py", line 265, in refine_MatMul
    if arg == last.T and ask(Q.orthogonal(arg), assumptions):
AttributeError: 'Symbol' object has no attribute 'T'
/Users/wakita/anaconda3/envs/pyqtgl/bin/python”/Users/wakita/Dropbox(smartnova)/work/pysandbox/testsympy/aE.py“
回溯(最近一次呼叫最后一次):
文件“/Users/wakita/Dropbox(smartnova)/work/pysandbox/testsympy/aE.py”,第9行,在
打印(细化(aE.T*aE))
文件“/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site packages/sympy/assessments/refine.py”,第29行,在refine中
args=[表达式args中arg的细化(arg,假设)]
文件“/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site packages/sympy/assessments/refine.py”,第29行,在
args=[表达式args中arg的细化(arg,假设)]
文件“/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site packages/sympy/assessments/refine.py”,第29行,在refine中
args=[表达式args中arg的细化(arg,假设)]
文件“/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site packages/sympy/assessments/refine.py”,第29行,在
args=[表达式args中arg的细化(arg,假设)]
文件“/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site packages/sympy/assessments/refine.py”,第40行,在refine中
new_expr=handler(expr,假设)
文件“/Users/wakita/anaconda3/envs/pyqtgl/lib/python3.5/site packages/sympy/matrix/expressions/matmul.py”,第265行,在refine_matmul中
如果arg==last.T和ask(Q.orthogonal(arg),假设):
AttributeError:“符号”对象没有属性“T”

您没有定义
t
。我假设它是被转置的?当它尝试转置
a
时失败了(AFAICT),它只是一个通用的
符号。我还没有找到任何方法使
sympy
将其视为标量,即使
.t
成为无操作而不是失败。我尝试了Symbol('a',real=True),但它不起作用。这肯定是sympy中的一个错误。我打开了一个问题。谢谢,我打开了
refine
分支,检查我的问题是否已解决。我希望分行尽快并入主分行。谢谢