08.02.2015 Views

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

notas de aula - Jerônimo C. Pellegrini<br />

Ex. 52 — Faça um programa que multiplica matrizes. Se você conhece o algoritmo de<br />

Strassen, implemente tanto o algoritmo ingênuo <strong>com</strong>o o de Strassen.<br />

Ex. 53 — Refaça os métodos de criação e acesso a matrizes usando ordem column-major.<br />

Ex. 54 — Neste Capítulo descrevemos uma forma de implementação de matrizes usando<br />

um único vetor para representar uma matriz. Mostre <strong>com</strong>o generalizar este esquema de<br />

representaçãoo para um número arbitrário de dimensões e implemente o esquema para 3<br />

e 4 dimensões.<br />

Ex. 55 — Implemente um esquema alternativo para representar matrizes: ao invés de<br />

usar um único vetor para cada matriz, uma matriz pode ser representada <strong>com</strong>o um vetor<br />

de vetores.<br />

Ex. 56 — Implemente um procedimento que calcule o determinante de uma matriz.<br />

Inicialmente, use expansão por cofatores. Depois tente implementar um algoritmo mais<br />

rápido [24].<br />

Ex. 57 — Plote parte do conjunto de Julia para f(z) = csen(z), <strong>com</strong> c = 0.9 + 0.5i. Você<br />

terá que mudar a escala da imagem e decidir o valor a partir do qual pode dizer que a<br />

sequência diverge.<br />

Ex. 58 — As imagens de conjunto de Julia que geramos estão invertidas, porque nosso<br />

eixo dos <strong>com</strong>plexos (indexado pela linha na imagem) cresce para baixo. Conserte este pequeno<br />

problema e mude também o procedimento make-julia para aceitar um parâmetro<br />

opcional que determina se os eixos devem ser também plotados.<br />

Ex. 59 — Modifique o plotador de conjuntos de Julia para que ele plote pontos diferentes<br />

<strong>com</strong> cores diferentes, dependendo do quão rápido cada ponto diverge (use o número<br />

de iterações realizadas antes do valor da função passar de 2). Os conjuntos de Julia que<br />

geramos em preto e branco poderiam ficar, por exemplo, <strong>com</strong>o nas figuras a seguir.<br />

Versão Preliminar<br />

[ 27 de outubro de 2010 at 15:47 ]<br />

127

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!