Construa uma função usando Mathlink para comunicar com um programa em C que faça os cálculos de um sistema de funções iteradas baseado em transformações afins de , i.e. matrizes actuando em . Use o Mathematica para alterar os valores das matrizes e do ponto inicial, e para fazer o gráfico da imagem resultante. Inspire o seu programa na seguinte rotina:
Adapte o programa do Numerical Recipes in C para trabalhar com listas de números fornecidos pelo Mathematica através de MathLink. Use-o para calcular e devolver os valores médios e variâncias pedidos no Problema-3 da 7ª aula prática.
void avevar(data,n,ave,svar)
float data[],*ave,*svar;
int n;
{
int j;
float s;
*ave=(*svar)=0.0;
for (j=1;j<=n;j++) *ave += data[j];
*ave /= n;
for (j=1;j<=n;j++) {
s=data[j]-(*ave);
*svar += s*s;
}
*svar /= (n-1);
}
A análise de sistemas dinâmicos leva frequentemente a estudar atractores estranhos obtidos pela iteração das mesmas equações de transformação de um ou mais pontos iniciais. Tomando a seguinte função como exemplo, construa um rotina em C para calcular eficientemente o atractor, sendo os parâmetros definidos no Mathematica e transmitidos via MathLink. Construa uma representação do atractor en função do parâmetro .