Witam,
Mam pewien problem z automatem komórkowym. Chcę zrobić symulację wrzucania przedmiotów do wody, która polegać będzie na tym, że powstają fale (2d, widok z góry) i moja koncepcja jest taka, żeby zrobić to na automacie komórkowym w 2 częściach: propagacja fazy, propagacja energii (wraz z rozprzestrzenianiem, energia, a co za tym idzie amplituda spada) i jako wynik amplituda: a=sin(faza)*energia.

Problem jest następujący:
Używam wzoru a_new[IX(i+1,j)]] = (a[IX(i+1,j)]+a[IX(i-1,j)]+a[IX(i,j-1)]+a[IX(i,j+1)])/4.f;
Niestety dzielenie tego przez 4 powoduje, że komórka rozprasza swoje wartości w bardzo niewielkim promieniu, a potem te wartości zamierają.
Gdy mianownik zostanie zmniejszony do dajmy na to 3.9 to wszystko jest niby ok, bo od komórki z niezerową wartością zaczyna się propagować kółko, którego promień przyrasta liniowo, ale problem jest w tym, że WARTOŚCI komórek wzrastają wykładniczo wraz ze wzrostem promienia tego kółka. Ja chciałbym, żeby wartości też miały przyrost liniowy i wówczas dałoby się sensownie wyliczyć symulację.
Ma ktoś jakiś pomysł jak to rozwiązać? Myślałem żeby robić relaksację gaussa-seidla ale niestety również ona nie rozwiązuje tego problemu.