O comando para gerar uma matriz NxN de elementos ai,j é:
Table[Table[ai, j, {j, N}], {i,N}]
quarta-feira, 6 de abril de 2011
Matriz de Permutação Cíclica
A testemunha de discórdia que estou estudando vai precisar de uma dessas:
qiPermutation[dimension_] :=
Module[{retorno = IdentityMatrix[dimension]},
For[
i = 1, i < dimension, i++,
retorno = retorno.qiRowSwap[dimension, i, i + 1]
];
retorno]
qiPermutation[dimension_] :=
Module[{retorno = IdentityMatrix[dimension]},
For[
i = 1, i < dimension, i++,
retorno = retorno.qiRowSwap[dimension, i, i + 1]
];
retorno]
terça-feira, 5 de abril de 2011
Module
O mathematica define um operador apenas para criar variáveis locais:
Module[{x=x0,y,...},expr1;expr2;...;exprRetorno]
Aonde x e y são variáveis locais, x0 é um valor com o qual x será inicializado, expr# são as linhas de código para as quais as variáveis locais são visíveis e exprRetorno é a linha de código cujo valor é retornado por Module.
Module[{x=x0,y,...},expr1;expr2;...;exprRetorno]
Aonde x e y são variáveis locais, x0 é um valor com o qual x será inicializado, expr# são as linhas de código para as quais as variáveis locais são visíveis e exprRetorno é a linha de código cujo valor é retornado por Module.
Bras e Kets
O Mathematica oferece um suporte mínimo à notação de dirac:
ESC+bra+ESC, ESC+ket+ESC e ESC+braket+ESC
Foi tudo que encontrei a respeito.
ESC+bra+ESC, ESC+ket+ESC e ESC+braket+ESC
Foi tudo que encontrei a respeito.
quarta-feira, 30 de março de 2011
For e IF
O for no Mathematica tem a cara:
For[i=0,i<n,i++,f[i]]
Sendo que f[i] é o "corpo" do for.
Obviamente, o inicializador, o teste de finalização e o incrementador podem ser personalizados:
For[i=2,g[i]<1,i=2*i+1,f[i]]
O if segue a mesma linha:
If[teste,f[],g[]]
Sendo que teste é uma condição qualquer, f[] é a função executada (e o valor retornado) se a condição for verdadeira, g[] se a condição for falsa.
Matrizes Unitárias
Uma parametrização para matrizes unitárias:
qiUnitary[α_, β_, ω_] :=
{{Exp[i*α], 0}, {0, Exp[-i*α]}} .
{{Cos[ω], Sin[ω]}, {-Sin[ω], Cos[ω]}} .
{{Exp[i*β], 0}, {0, Exp[-i*β]}}
terça-feira, 29 de março de 2011
Site interessante
Achei este PDF, tem explicações sobre criação de funções complexas e sobre como exportá-las/importá-las.
Combinações de Matrizes de Pauli
Preciso também gerar matrizes que são combinações lineares de matrizes de Pauli:
qiPauli[coeficientes_] := coeficientes[[1]]*PauliMatrix[1] + coeficientes[[2]]*PauliMatrix[2] + coeficientes[[3]]*PauliMatrix[3]
qiPauli[coeficientes_] := coeficientes[[1]]*PauliMatrix[1] + coeficientes[[2]]*PauliMatrix[2] + coeficientes[[3]]*PauliMatrix[3]
quinta-feira, 24 de março de 2011
Matrizes de SWAP
Bom, estou trabalhando com um zilhão dessas, então preciso de uma função para criá-las.
qiRowSwap[dimension_, i_, j_] :=
IdentityMatrix[dimension] -
qiOrthoMatrix[dimension, i] -
qiOrthoMatrix[dimension, j] +
KroneckerProduct[UnitVector[dimension, i],
UnitVector[dimension, j]] +
KroneckerProduct[UnitVector[dimension, j], UnitVector[dimension, i]]
qiRowSwap[dimension_, i_, j_] :=
IdentityMatrix[dimension] -
qiOrthoMatrix[dimension, i] -
qiOrthoMatrix[dimension, j] +
KroneckerProduct[UnitVector[dimension, i],
UnitVector[dimension, j]] +
KroneckerProduct[UnitVector[dimension, j], UnitVector[dimension, i]]
função para criar matrizes ortogonais
Bom, para começar uma coisa simples: uma função para criar matrizes de densidade dos estados-base:
qiOrthoMatrix[dimension_, i_] := KroneckerProduct[UnitVector[dimension, i], UnitVector[dimension, i]]
Criar funções no Mathematica parece ser bem simples. A _ depois dos argumentos e o := são as únicas coisas "novas" aqui.
qiOrthoMatrix[dimension_, i_] := KroneckerProduct[UnitVector[dimension, i], UnitVector[dimension, i]]
Criar funções no Mathematica parece ser bem simples. A _ depois dos argumentos e o := são as únicas coisas "novas" aqui.
Declaração de Intenções
Pretendo publicar aqui informações gerais relacionadas à Informação Quântica.
No momento, estou verificando o uso do Mathematica como ferramenta de auxílio à pesquisa nesta área.
No momento, estou verificando o uso do Mathematica como ferramenta de auxílio à pesquisa nesta área.
Assinar:
Postagens (Atom)