Versão 1.0 Objetivo: Expande o espaço de Hilbert de todo o sistema contendo n spins. Síntaxe: [S,b1,b2]=expansaoSs(spins,bit), onde spins=[s1, s2, s3, ..., sn] é um vetor contendo os n spins do sistema e S, resultado, é uma célula contento 4 colunas (Six, Siy, Siz e Si^2=Six^2+Siy^2+Siz^2) e n linhas. Para bit=1: As matrizes Sx, Sy e Sz são construídas em ordem decrescente de ms. |s,+s> |s,+s-1> ... |s,-s+1> |s,-s> Para bit=0: As matrizes Sx, Sy e Sz são construídas em ordem decrescente de valores absolutos de ms. |s,+|s|> |s,-|s|> |s,+|s-1|> |s,-|s-1|> ... |s,0>, para spins inteiros, ou |s,+|s|> |s,-|s|> ... |s,+1/2> |s,-1/2>, para spins semi-inteiros. Ainda, existem dois resultados opcionais: b1 e b2. O primeiro (b1) retorna uma célula contendo a base |ms> em que cada matriz Su é construída. O segundo (b2) retorna uma matriz com dimensões AxB, onde cada linha é a base expandida. A=size(spins) e B é a dimensão do espao de Hilbert total. Vale notar que, caso se queira somente b1, basta escrever: [S,b1]=expansaoSs(...), enquanto, caso se queira somente b2, é necessário também solicitar b1: [S,b1,b2]=expansaoSs(...). Exemplo: Modelo: H=S_1.S_2; s_1=1/2; s_2=1/2; >> spins=[1/2,1/2];S=expansaoSs(spins) S = [4x4 double] [4x4 double] [4x4 double] [4x4 double] [4x4 double] [4x4 double] [4x4 double] [4x4 double] onde: S{1,1}=S1x S{1,2}=S1y S{1,3}=S1z S{1,4}=S1^2=S1x^2+S1y^2+S1z^2 S{2,1}=S2x S{2,2}=S2y S{2,3}=S2z S{2,4}=S2^2=S2x^2+S2y^2+S2z^2 %%%%%%%%%%%%%%%%%% Rotina otimizada para MATLAB 7.1 Rotina elaborada por Mario Reis (marior@if.uff.br). Favor comunicar possíveis erros e/ou 'bugs'. Histórico de alterações: Versão 1.0 (julho 2009) *ORIGINAL*