Sutiã quântico e notas de cet

Sep 29 2020

Existe uma maneira de definir a expressão quântica acima no Mathematica. Estou usando um pacote adicional neste link.http://homepage.cem.itesm.mx/lgomez/quantum/

O que tentei é:

a = 2;

b = SqrtBox["3"] // DisplayForm;

h1[a_, b_] := Subscript[a, b];

Ket[\[Psi]] := (a*(h1[Ket[u], 1])*(h1[Ket[d], 2])) + (b*(h1[Ket[d], 
      1])*(h1[Ket[u], 2]))

Mas não consigo criar as setas para baixo e para cima, pois está exibindo um erro. Também posso usar a multiplicação usual para kets?

Respostas

2 yosimitsukodanuri Sep 29 2020 at 15:20

Tenho a certeza que você não está olhando para isso, porque isso vai precisar de algum trabalho antes que você pode realmente fazer algo de útil com ele.

Não estou familiarizado com o pacote vinculado nem estou familiarizado com a mecânica quântica em qualquer extensão da imaginação.

Caso você esteja interessado em uma forma rápida de escrever alguma expressão e não esteja tentando fazer algo muito complicado, por favor, continue lendo.

Usando Formatvocê pode especificar como certas expressões são compostas pelo front end.

Para replicar a equação na pergunta, precisamos definir o seguinte:

(* an expression to represent subscripted expressions *)
Format[subs[body_, sub_]] := Subscript[body, sub]

Avaliar o primeiro e depois avaliar, por exemplo subs[x,1], produzirá em um caderno um subscrito xcom o ser subscrito 1.

A avaliação, por sua vez subs[x,1] // FullForm, revelará o que realmente está acontecendo. O front end exibe a expressão usando a regra definida com, Formatmas a expressão real permanece subs[x,1]. Grosso modo, isso significa que é possível definir regras para objetos com Head subse exibi-los em uma forma subscrita.

De maneira semelhante, podemos definir uma regra de exibição para a notação do Ket :

Format[ket[body_]] := Row[{"\[LeftBracketingBar]", body, "\[RightAngleBracket]"}]

Depois de avaliar a linha acima, pode-se demonstrar como, por exemplo, é ket[x]exibido em um notebook . Além disso, pode-se verificar que, por exemplo, subs[ket[x],1]produz o resultado esperado, ou seja, uma notação de ket subscrita para xe um subscrito de 1.

Novamente, usando FullFormirá mostrar que as expressões subjacentes permanecem inalteradas, isto é, FullForm[subs[ket[x], 1]]devem exibir a expressão digitada.

Continuando de maneira semelhante, podemos definir regras de exibição para a notação do Ket com setas duplas para cima e para baixo:

Format[upket[]] := Row[{"\[LeftBracketingBar]", "\[DoubleUpArrow]", 
  "\[RightAngleBracket]"}]
Format[downket[]] := Row[{"\[LeftBracketingBar]", "\[DoubleDownArrow]", 
  "\[RightAngleBracket]"}]

Verifique se a avaliação de expressões como eq subs[upket[], 1]ou subs[downket[], 2]produz os resultados esperados.

Tendo definido as regras para exibir as expressões subscritas e a notação do Ket , é trivial reproduzir a equação na questão:

a = 2;
b = Sqrt[3];
expr = subs[ket[ψ], subs[t, 2]] == a subs[upket[], 1] subs[downket[], 2] + 
  b subs[downket[], 1] subs[upket[], 2];

É assim que expré exibido:

e este é o FullForm:

Editar:

A fim de abordar questões de não comutatividade, uma solução rápida é adicionar a seguinte Formatregra:

Format[nonCommutativeTimes[x__subs]] := Star[x]

e modifique o em exprconformidade:

expr = subs[ket[ψ], subs[t, 2]] == a nonCommutativeTimes[subs[upket[], 1], 
  subs[downket[], 2]] + b nonCommutativeTimes[subs[downket[], 1], subs[upket[], 2]]

A avaliação, como antes, produz o seguinte:

Como disse na introdução, não se pretende substituir nenhum pacote especializado ou outra funcionalidade, mas apenas apresentado aqui como uma forma rápida de obter o resultado desejado.

Se alguém pretende trabalhar com, por exemplo, expressões algébricas envolvendo subse, ketentão, eles devem definir a funcionalidade relevante do zero , ou quase do zero. Por exemplo, no que diz respeito à multiplicação não comutativa, existe um símbolo embutido NonCommutativeMultiplyque pode ser usado em vez do nonCommutativeTimes Headque usei acima.