quarta-feira, 6 de abril de 2011

Gerando matrizes com Table

O comando para gerar uma matriz NxN de elementos ai,j é:


Table[Table[ai, j, {j, N}], {i,N}]

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]

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.

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.

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.