我有一个 â,它以下列方式对ket执行操作:
|n>=√n |n−1>
|n>=√(n+1) |n+1>
我想使用这些关系来简化更复杂的表达式,例如â⁺â²|n〉。这是我的Python代码:
import sympy
from sympy import *
from sympy.physics.quantum import *
n = symbols('n')
a = Operator('a')
ad = Dagger(a)
down = Eq( a *Ket(n), sqrt(n )*Ket(n-1) )
up =
我完全迷路了。
我尝试将两个可选参数传递给fortran中的函数,而这两个参数是长度未知的数组。代码可以很好地编译,但是当程序运行时,它会在当前(Arg)函数的求值过程中崩溃。命令行中没有错误消息,而只是弹出windows错误通知,并告诉我"main.exe已停止工作“。有什么想法可以解决这个问题吗?
这是代码,我删除了所有不必要的东西。
MODULE types
! Underlying data types: Bra, Ket, and Oper
type bra
complex*8, dimension(:,:), allocatable :: dat
如果我跑了
python -m manimlib scene.py ket_bra
我的场景在交互式查看器中呈现得很好,但是我没有得到任何输出文件,终端会打印以下内容
ManimGL v1.6.1
[13:55:48] INFO Using the default configuration file, which you can modify in `c:\users\miika\manim\manimlib\default_config.yml`
我试着用qutip来定义一个胸罩。胸罩是行向量,而胸罩是列向量。胸罩可以定义为ket共轭转置。但是,如果我在qutip中使用这个定义直接指定一个胸罩,总是会出现一个警告,并且胸罩向量无法形成。
下面是我的代码:
import qutip
from math import sqrt
import numpy as np
#probability amplitude of two dice rolled 12 times
probability_amplitudes = np.array(
[[1/6],
[sqrt(2)/6],
[sqrt(3)/6],
[2/
我一直试图使用f2py将优化后的fortran代码与python连接起来,用于向量和矩阵乘法。为了获得对我的目的有用的性能比较,我在循环中执行了100000次相同的产品。使用完整的fortran代码,该产品需要2.4秒(ifort),而使用f2py则需要大约11秒。仅供参考,numpy大约需要20秒。我要求fortran和python部分在循环前后编写时间差,使用f2py,它们都编写11秒,因此代码在传递数组时不会浪费时间。我试着去理解numpy数组的存储方式,但是我不能理解这个问题。你有什么想法吗?提前感谢
fortran Main
program Main
implicit non
我有一组特殊的循环来构建矩阵,我想知道是否有人知道一种融合它们的方法,这样我就可以使用OpenMP parallel作为杂注。
for( int i = 0; i < nbas*nchannels; ++i){
int ket_r = i / nchannels;
int ket_l = i % nchannels;
for( int j = 0; j < nbas*nchannels; ++j){
int bra_r = j / nchannels;
int bra_l = j % nchannels;
...stuff_calculated.
我正在DSEL上工作,并希望有以下内容:
Bra ij;
Ket kl, cd;
(ij||kl); // initialize some array
(ij||cd); // ditto
....
T(i,j,k,l)*(ij||kl); // do some math without recomputing (ij||kl)
所以从本质上讲,我想让表达式充当变量。有可能吗?
到目前为止,我的想法是有一个“单例”工厂,它使用expression (ij|kl)生成/查找数组。还要别的吗?
我定义了一个抽象运算符A和标识运算符I。正如预期的那样,A*I = I*A =*A。但是,如果我考虑A的伴随项,似乎身份运算符不能正常工作,即Dagger(A)*I没有简化为Dagger(A) (参见下面的代码)。如何定义既作用于运算符又作用于其伴随项的标识运算符? from sympy.physics.quantum.dagger import Dagger
from sympy.physics.quantum.operator import Operator
from sympy.physics.quantum import IdentityOperator
A = Operators(
我遇到了,它从来没有移植到计算科学,所以我希望在这里得到一个答案。问题是如何简化涉及这些矩阵的乘积和交换子的表达式,即
使用SymPy,我可以取得一些进展,例如
from sympy import *
from sympy.physics.paulialgebra import Pauli, evaluate_pauli_product
from sympy import I
from sympy.physics.quantum import TensorProduct as tp
from sympy.physics.quantum import Commutator as cm
fr
我正在尝试用bison构建一个解析器,并且已经将我的所有错误缩小到一个困难的错误。
下面是bison的调试输出,以及错误所在的状态:
state 120
12 statement_list: statement_list . SEMICOLON statement
24 if_statement: IF conditional THEN statement_lists ELSE statement_list .
SEMICOLON shift, and go to state 50
SEMICOLON [reduce using rule 24 (if_s
正在尝试导入与tensorflow_quantum相关的初始库:
import tensorflow as tf
import tensorflow_quantum as tfq
import cirq
import sympy
import numpy as np
Getting error in 2nd line:
File "Path_to_anaconda_site_packages\tensorflow_core\python\framework\load_library.py", line 61, in load_op_library
lib_han
我想在向量模块中计算内积。如果可能的话,请让我知道如何做到这一点,而不用i或j。
from sympy import *
from sympy.vector import CoordSys3D
var('ABx ABy ACx ACy')
N =CoordSys3D('N')
AB=ABx*N.i+ABy*N.j
AC=ACx*N.i+ACy*N.j
BCx2y2=(AC-AB).components[N.i]**2+(AC-AB).components[N.j]**2
B2DtC2=AB.components[N.i]**2+AB.components[N.j
我想找出一些换向器操作,并发现这个工具的渐近性。它看起来像预期的那样工作(但是文档实际上是不存在的,或者至少我没有发现什么,但是请看下面Dalton的评论),但是我遇到了下面的问题。
from sympy.physics.quantum import Commutator as Comm
from sympy.physics.quantum import Operator
A = Operator('A')
B = Operator('B')
C = Comm(Comm(Comm(A,B),A),B)
D = Comm(Comm(Comm(A,B),B),A)
假设我有这样的东西:
from sympy.physics.quantum import *
from sympy import symbols, Function, Derivative, var
m = symbols('mu', positive=True)
var('x')
var('t')
f = Function('psi')
T = DifferentialOperator(-1 / (2 * m) * Derivative('psi(x,t)', x, x))
V = Operator('V
我知道这个网站上有很多类似的问题。我非常喜欢下面的链接中提到的解决方案:
经过一些修改,您可以在编译时包含文本文件,例如:
constexpr const char* s =
#include "file.txt"
但是要完成这项工作,您必须在原始文件中添加字符串文字前缀和后缀,例如
R"(
This is the original content,
and I don't want this file to be modified. but i
don't know how to do it.
)";
我的问题是:是否有一种方法可以使此工
只是想用SympPy来找这个系列的系数,但是我得到了一个AttributeError。
from pip import main
from sympy import series, Symbol, sympify, Poly, cos, sin, tan, oo
from sympy.abc import a, n, s, x, y, z
import numpy as np
f = tan(x)
print("\nExample Series:")
series_f1 = series(f, x, 2, 6, "+")
print(series_
我想用渐近简化涉及玻色子交换子的表达式。问题是,利用二阶渐近性,玻色子交换子b_0,b^\dagger_=1和b_0,b^\dagger_1=0的数值永远不会被符号表达式所代替。换句话说,我想让SymPy知道换向器的身份。
以下代码
from sympy import simplify
from sympy.physics.secondquant import Bd, B
from sympy.physics.quantum import *
comm1=simplify(Commutator(B(0),Bd(0)).doit())
print(comm1)
comm2=simplify(C