domingo, 7 de octubre de 2007

Inestabilitats numèriques: un senzill exemple

Html5

Fa molts anys, vaig trobar en un llibre del conegut matemàtic i divulgador Ian Stewart (¿Juega Dios a los dados?, Crítica, colección Drakontos, Barcelona, 1991, pàgina 25), un senzill programa escrit en llengutage Basic —aquí podeu fer un cop d'ull a les característiques d'aquest popular i ja molt vellet llenguatge de programació— el breu programa que podeu llegir a sota, amb el qual hom pot comprovar fàcilment la generació d'inestabilitats numériques en un exemple ben simple, depenent del valor que donem al paràmetre $k$. He decidit reproduir-lo i incloure'l com una proposta més d'activitats de programació i càlcul. Va, proveu-ho! I no cal que l'escrigueu en Basic: podeu transcriure'l fàcilment (l'algorisme s'entén prou bé) al vostre llenguatge favorit (Python, Scratch, C, ...)

input k 
  x=0.54321 
  for n=1 to 50  
    x=k*x*x-1 
  next n 
  for n=1 to 100  
    x=k*x*x-1 
    print x 
  next n 
end
] 
$\square$