domingo, 17 de agosto de 2014

Gerando números "aLeaTóRIos" com Scilab


Já faz um tempo que as tabelas de números aleatórios (na verdade pseudo-aleatórios) estão em desuso, embora ainda existam (um exemplo aqui). Essas tabelas eram criadas através de experimentos com dados, roletas ou cartas antes do advento da computação. Livros com centenas de páginas formado por tabelas de números "aleatórios" já foram produzidos (desconfio que a leitura não era muito empolgante). Esses números encontram muitas aplicações em estatística, matemática e engenharia, notadamente na simulação de sistemas de comunicação.

Hoje, é muito mais prático usar um software para gerar números pseudo-aleatórios. Uma das formas mais comuns para geração desses números é usando o Método da Congruência Multiplicativa: $X_{n+1} = k . X_n$ mod $m$. O Scilab possui um gerador comando "básico" para gerar números aleatórios: rand - gerador de números randômico. Exemplo:

x = rand(1,5)
 x  =

    0.2113249    0.7560439    0.0002211    0.3303271    0.6653811

No exemplo acima, são gerados números com uma distribuição uniforme entre 0 e 1. O Scilab, contudo, possui um comando muito mais sofisticado de gerar números aleatórios seguindo uma determinada distribuição (beta, uniforme, Laplace, geométrica, normal, ...), o grand.

Um trecho do "Help" do Scilab:

grand

Random numbers

Calling Sequence

Y = grand(m, n, "bet", A, B)
Y = grand(m, n, "bin", N, p)
Y = grand(m, n, "nbn", N, p)
Y = grand(m, n, "chi", Df)
Y = grand(m, n, "nch", Df, Xnon)
Y = grand(m, n, "exp", Av)
...

Arguments

m, n, o: integers, size of the wanted matrix / hypermatrix Y.
X: a matrix or hypermatrix whom only the dimensions (say m-by-n) are used.
Y: depending on the input, a matrix or hypermatrix, with random entries.
S: output of the action (a string or a real column vector).

Description

This function generates random numbers from various distributions.       
-------------------------------
----------------
-------
Alguns exemplos simples:
  • x = sign(rand(1,1000,'n'));   > gera 1000 números +1 ou -1 (50% de cada);
  • y = rand(1,200,'u'); > gera 200 números distribuídos entre 0 e 1, com distribuição uniforme;
  • z = grand(m, n, "unf", Low, High); > gera uma matriz m x n de números aleatórios (não inteiros) uniformemente distribuídos entre Low e High.
Um exemplo um pouco mais completo:

x = sign(rand(1,1000,'n')) + %i*sign(rand(1,1000,'n'));
n = rand(1,1000,'n') + %i*rand(1,1000,'n');
n = n - mean(n);
y = x + 0.1*n;
plot(real(y),imag(y),'.');  title('4-QAM com ruído');
xlabel('Eixo real');  ylabel('Eixo imaginário');

Resulta:


quinta-feira, 14 de agosto de 2014

Olimpíada de Xadrez - 2014 - resultado final.

De primeiro a 14 de agosto, um dos maiores eventos esportivos do mundo dos tabuleiros aconteceu em Tromsø, Noruega: a 41a. Olimpíada de Xadrez. Este é o evento mais importante no calendário de xadrez, ao lado do Campeonato do Mundo. O torneio envolveu cerca de 2.200 jogadores de 170 federações nacionais.

Na última rodada os resultados do Brasil foram:

 e

Aparentemente, no absoluto, os homens se "contentaram" com "simples" empates contra oponentes do mesmo nível. Nessa última rodada, o destaque vai para grande vitória de Joara Chaves frente a Elena Partac, posição final:


A brasileira com melhor desempenho foi Vanessa Feliciano (Performance de 2310 e FIDE rtg +26.0). A classificação final no feminino ficou assim:


E no absoluto o Brasil conseguiu uma excelente posição final:

terça-feira, 12 de agosto de 2014

Medalha Fields: um brasileiro e uma iraniana entre os vencedores!


Os vencedores deste ano foram: Artur Ávila (brasileiro - link aqui), Manjul Bhargava (link aqui), Martin Hairer (link aqui) e Maryam Mirzakhani (iraniana - link aqui), a primeira mulher a conseguir essa distinção.
É também  a primeira vez que um latinoamericano alcança essa premiação, ler mais aqui. Um breve resumo (sem equações) das contribuições dos laureados pode ser visto aqui.

Sobre a premiação:

The Fields Medal is awarded every four years on the occasion of the International Congress of Mathematicians to recognize outstanding mathematical achievement for existing work and for the promise of future achievement.

The Fields Medal Committee is chosen by the Executive Committee of the International Mathematical Union and is normally chaired by the IMU President. It is asked to choose at least two, with a strong preference for four, Fields Medallists, and to have regard in its choice to representing a diversity of mathematical fields. A candidate's 40th birthday must not occur before January 1st of the year of the Congress at which the Fields Medals are awarded.

The name of the Chair of the Committee is made public, but the names of other members of the Committee remain anonymous until the award of the prize at the Congress. If a former student (Ph.D. thesis only) of a Committee member is seriously considered, such a member shall not continue to serve on the Committee for its final decision.

Unifor - Encontro de Iniciação à Pesquisa e palestra "A Jornada para a Nuvem: Porque a nuvem é diferente e escala faz muita diferença"


Palestra - Recebi por e-mail:

Nesta segunda, 18/08/2014, o curso de Ciência da Computação traz à UNIFOR o Sr. Ângelo Carvalho, arquiteto de soluções da Amazon Brasil, que ministrará a palestra "A Jornada para a Nuvem: Porque a nuvem é diferente e escala faz muita diferença". O evento, que ocorrerá no auditório da Biblioteca Central da UNIFOR, terá início às 19hs e o encerramento está previsto para as 21hs.

Em seguida à palestra, teremos a presença de representantes da academia, governo e iniciativa privada, que comporão uma mesa de debates sobre o assunto.

Os interessados devem efetuar inscrições na página da UNIFOR em www.unifor.br > Eventos, em seguida, basta seguir o link do evento. A entrada é gratuita, porém solicita-se a doação de uma lata de leite em pó. As vagas são limitadas!

 
Encontro de Pesquisa (iniciação científica e pós-graduação) 

A Vice-Reitora de Pesquisa e Pós-Graduação da Universidade de Fortaleza, no uso de suas atribuições estatutárias e regimentais, torna pública a abertura das inscrições e estabelece normas relativas à participação no XX ENCONTRO DE INICIAÇÃO À PESQUISA DA UNIFOR, que será realizado no período de 20 a 24 de outubro de 2014, no Campus da Universidade de Fortaleza.

INSCRIÇÕES: as inscrições dos trabalhos serão realizadas no período de 14/07/2014 a 24/08/2014 31/08/2014, através do seguinte endereço eletrônico: http://www.unifor.br/encontros

Editais aqui e aqui.

segunda-feira, 11 de agosto de 2014

Mais Olimpíada de Xadrez: 9a. rodada.

9a. rodada.
Segue hoje a 9a. rodada da Olimpíada de Xadrez que está ocorrendo na cidade de Tromso - Noruega. A equipe masculina (acredito) tem uma boa chance de conseguir um placar 2 x 2 ou melhor, já a equipe feminina terá um jogo mais difícil.
Entre as brasileiras, a Vanessa Feliciano está tendo um excelente desempenho (6 pontos em 8 possíveis e Rp = 2364). Já no absoluto, os brasileiros não estão, até o momento, conseguindo se destacar. Até o momento, o destaque masculino é o ("desconhecido") GM Norte Americano Samuel L. Shankland, que conseguiu 7 ponto em 7 possíveis (Rp = 3196!), vencendo Judit Polgar na última rodada.

sábado, 9 de agosto de 2014

Brasil nas Olimpíadas de Xadrez

Fonte aqui.

"Poucos" sabem, mas o Brasil está participando das Olimpíadas de Xadrez que estão ocorrendo na Noruega. Os resultados da última rodada (7a.):

Brasil 2,5 x 1,5 Letônia 

Brasil 3 x 1 Sri Lanka
No chess-results: absoluto, feminino. Para ler mais: Revista Meio Jogo.


sexta-feira, 8 de agosto de 2014

Cálculo de taxa de erro quando a probabilidade dos bits 0's e 1's são diferentes


Quando um sinal binário é transmitido e o número de bits '0's e '1's possuem probabilidade de ocorrência diferente (ex: 60% e 40%), o cálculo da taxa de erro é um pouco mais complicado que na situação mais simples de bits equiprováveis.
Se o sinal binário for mapeado nos símbolos "+1" e "-1" distribuídos com igual probabilidade, a taxa de erro, considerando um ruído do tipo gaussiano e de média nula e variância $\sigma_x^2$, pode ser calculada por:
$$ P_e = Q\left( \frac{1}{\sigma_x}\right) = \frac{1}{2} erfc\left( \frac{1}{\sqrt{2}\sigma_x}\right) $$
se for usado um limiar de comparação $\lambda = 0$.
Se os símbolos "+1" e "-1" não forem igualmente prováveis, é necessário se calcular primeiro o limiar de comparação. Esse limiar vai depender do ruído (variância do ruído) e da probabilidade de ocorrência ($P_0$ para o símbolo "-1" e $P_1$ para o símbolo "+1") dos símbolos:
$$ \lambda_0 = -\frac{\sigma_x^2}{2}\ln\left(\frac{P_1}{P_0}\right) $$
Com esse valor de limiar, a taxa de erro pode ser calculada por:
$$ P_e = P_0 Q(\lambda_u) + P_1 Q(-\lambda_t)$$
sendo $\lambda_u = (\lambda_0 + 1)/\sigma_x$ e $\lambda_t = (\lambda_0 - 1)/\sigma_x$. Os detalhes dessas deduções foram, naturalmente, omitidos.

O programa Scilab abaixo faz uma simulação e o cálculo do valor ótimo de comparação quando os símbolos apresentam uma probabilidade de 60% (+1) e 40% (-1) e ruído apresenta uma variância de 0,50. O resultado gráfico é:


----------------------------------
--------------
----
clear; clc; 
close; close; close;
N = 1e5;
pv = 1;

for mm=1:5
    disp(mm);
// gerando +1 (60%), -1 (40%)
b = ones(1,N);
for k=1:N
    x= rand(1,1,'u');
    if x>0.6 then b(k)=-1;
    end
end

// corrigindo o numero de +1, -1:
mmb = mean(b);
pos = 100;
while mmb<0.199999
    b(pos) = 1;
    pos = pos + 10;
    mmb = mean(b);
end
disp([1, pos]);
while mmb>0.200001
    b(pos) = -1;
    pos = pos + 10;
    mmb = mean(b);
end
disp([2 pos]);

// ruido:
vn = sqrt(0.5);
n = rand(1,N,'n');
n = n - mean(n);
n = n/sqrt(variance(n));
n = vn*n;

bn = b + n;
bd = sign(bn);
erros = sum(abs(bd - b))/2;

vcomp = -vn*vn*log(0.6/0.4)/2; // valor ótimo de comp.

emm = 0.1;
vc1 = vcomp - 4*0.02;
vc2 = vcomp + 4*0.02;
pv=1; er = 0.00001;
vlamb = vc1:0.02:vc2;
verrosm = 0*vlamb;
verros = verrosm;
for lamb = (vc1):0.02:(vc2+0.0001)
for k=1:N
    if bn(k) > lamb then bd(k) = 1;
        else bd(k) = -1;
    end
end
erros2 = sum(abs(bd - b))/2;
verros(pv) = erros2/N;
// disp([pv, lamb])
pv = pv + 1;
end;
if mm==1 then verrosm = verros;
    else verrosm = verrosm + verros; 
end
end;
verrosm = verrosm/mm;
plot(vlamb, verrosm); xgrid; 
title('Taxa de erros em função do limiar');

figure;
subplot(2,2,1); bar([-1  1],[0.4 0.6],0.1);

x=-3:0.001:3;
g1 = (0.4/(sqrt(2*%pi)*vn))*exp(-(x+1).*(x+1)/(2*vn*vn));
g2 = (0.6/(sqrt(2*%pi)*vn))*exp(-(x-1).*(x-1)/(2*vn*vn));
gn = (1/(sqrt(2*%pi)*vn))*exp(-(x).*(x)/(2*vn*vn));

subplot(2,2,2); plot(x,gn); title('Ruído');
subplot(2,1,2); histplot(50,bn); 
plot(x,g1,x,g2,x,g1+g2); title('Sinal com ruido');
plot([vcomp vcomp],[0 0.4],'m');

quarta-feira, 6 de agosto de 2014

Uma questão de limite

"Limite Circular I" - Escher.
O cálculo de limite é muito importante na matemática. Alguns são bem fáceis de calcular, outros podem requerer alguma astúcia. Por exemplo, o limite
\begin{equation*}
    \lim_{x \rightarrow a} \frac{\sqrt[n]{x} - \sqrt[n]{a}}{\sqrt[m]{x} - \sqrt[m]{a}}
\end{equation*}   
é da forma $0/0$, ou seja, temos uma indeterminação. Essa indeterminação pode ser removida e o limite calculado pelo uso de uma estratégia adequada. Inicialmente, devemos notar que

\[ (\sqrt{x} - \sqrt{a})(\sqrt{x} + \sqrt{a}) = x - a \]

e de forma semelhante

\[ (\sqrt[3]{x} - \sqrt[3]{a})(\sqrt[3]{x^2} + \sqrt[3]{xa} + \sqrt[3]{a^2}) = x - a \]

e de forma mais geral

\[ (\sqrt[n]{x} - \sqrt[n]{a})\underbrace{(\sqrt[n]{x^{n-1}} + \sqrt[n]{x^{n-2}a} + \ldots + \sqrt[n]{a^{n-1}})}_{n \text{ vezes}} = x - a\]

Logo, aplicando esse conhecimento ao limite acima

\begin{align*}
    \lim_{x \rightarrow a} & \frac{(x - a)}{(x - a)}
    \frac{\sqrt[m]{x^{m-1}} + \sqrt[m]{x^{m-2}a} + \ldots + \sqrt[m]{a^{m-1}}}
    {\sqrt[n]{x^{n-1}} + \sqrt[n]{x^{n-2}a} + \ldots + \sqrt[n]{a^{n-1}}} \\
    \lim_{x \rightarrow a} & \frac{\sqrt[m]{x^{m-1}} + \sqrt[m]{x^{m-2}a} + \ldots + \sqrt[m]{a^{m-1}}}
    {\sqrt[n]{x^{n-1}} + \sqrt[n]{x^{n-2}a} + \ldots + \sqrt[n]{a^{n-1}}} \\   
    & = \frac{\overbrace{\sqrt[m]{a^{m-1}} + \sqrt[m]{a^{m-1}} + \ldots + \sqrt[m]{a^{m-1}}}^{m \text{ vezes}}}
    {\underbrace{\sqrt[n]{a^{n-1}} + \sqrt[n]{a^{n-1}} + \ldots + \sqrt[n]{a^{n-1}}}_{n \text{ vezes}}}\\
    & = \frac{m \sqrt[m]{a^{m-1}}}{n \sqrt[n]{a^{n-1}}} = \frac{m}{n} a^{(m-1)/m - (n-1)/n}\\
    & = \frac{m}{n} a^{1/m - 1/n} = \frac{m}{n} \sqrt[mn]{a^{n-m}}
\end{align*}
Claro, existem formas mais simples e diretas de calcular esse tipo de limite. Por exemplo, sabendo que $\sqrt[p]{1+h} \cong 1 + h/p$, sendo $h$ um valor pequeno, podemos escreve o limite inicial como:
\begin{align*}
    \lim_{h \rightarrow 0} & \frac{\sqrt[n]{a+h} - \sqrt[n]{a}}{\sqrt[m]{a+h} - \sqrt[m]{a}} \\
    \lim_{h \rightarrow 0} & \frac{\sqrt[n]{a}}{\sqrt[m]{a}}\frac{\sqrt[n]{1+h/a} - 1}{\sqrt[m]{1+h/a} - 1} \\
    \lim_{h \rightarrow 0} & \frac{\sqrt[n]{a}}{\sqrt[m]{a}}\frac{h/na}{h/ma} \\
    \lim_{h \rightarrow 0} & \frac{\sqrt[n]{a}}{\sqrt[m]{a}}\frac{m}{n} \\
    = & \frac{m}{n} \sqrt[mn]{a^{n-m}}
\end{align*}
O que é bem mais rápido de ser feito.

sábado, 2 de agosto de 2014

Para 2MASS J0523-1403 e outras estrelas anãs vermelhas a eternidade é o limite!

Fonte aqui.
O nome 2MASS J0523-1403, que mais parece uma sigla geográfica (e de certa forma é isso mesmo), identifica a menor estrela conhecida até o momento. O seu raio ($0.086 \pm 0.003$ em relação ao raio do Sol) é equivalente ao raio do planeta Saturno! Isso mesmo, ela é menor (em diâmetro) que o planeta Júpiter. 2MASS J0523-1403 é uma pequena estrela do tipo anã-vermelha. Uma das menores desse tipo de estrela.

E o que essas pequenas estrelas têm de especial? Uma vida muito, muito longa! Muito longa mesmo! Quanto? Trilhões de anos na sequência principal, isto é, brilhando com uma débil cor vermelha por quase todo esse tempo. Antes do fim, porém, com o fim do combustível (hidrogênio), ela deverá brilhar um pouco mais forte e deve chegar a ficar alaranjada. Depois vem um lento esfriamento. Essas pequenas estrelas anãs serão as últimas estrelas do Universo a se apagarem (lentamente).

O artigo de Sergio B. Dieterich el al. (2013) apresenta uma análise sobre 63 "objetos" próximos a nós que são pequenas estrelas ou anãs marrons - "The Solar Neighborhood XXXII. The Hydrogen Burning Limit".

Estrelas "verdadeiras" e anãs marrons.
Para ler mais sobre essa estrela: A Star at the Edge of Eternity  - A Saturn-size star just 40 light-years away will outlive nearly all of its peers, by Ken Croswell. Para saber mais sobre anãs vermelhas no Wikipedia, click aqui. Aqui mesmo no blog: alfanumericus - super-jupiteres-anas-marrons.

sexta-feira, 1 de agosto de 2014

Divulgando: Programa de Pós-Graduação em Engenharia de Telecomunicações oferta vaga para bolsista de Pós-Doutorado


O Programa de Pós-Graduação em Engenharia de Telecomunicações (PPGET) do Instituto Federal de Educação, Ciência e Tecnologia do Ceará (IFCE) esta ofertando 01 vaga para bolsista de Pós-Doutorado.

Requisito para inscrição: título de doutor e produção científica qualificada nas linhas de pesquisa do PPGET.

Calendário:
  • 25/07 a 08/08/2014: inscrições;
  • 11/08/2014: resultado do deferimento das inscrições;
  • 12/08 a 13/08/2014: recurso do deferimento das inscrições;
  • 18/08/2014: resultado dos recursos;
  • 20/08/2014: resultado da seleção;
  • 21/08 e 22/08/2014: recurso do resultado;
  • 22/08/2014: Resultado final.
Para mais informações e edital completo, clique aqui.