Not easy to say, it seems that the example you provided doesn’t generate the last picture.
As the last part of equation is Math.Pow(Math.Cos((pt[i].Y *att * noise[i] / 2) * a), 1) / 2.0 there is an effect of Y coordinate. You could add a variable say y0 to do Math.Pow(Math.Cos(((pt[i].Y-Y0) *att * noise[i] / 2) * a), 1) / 2.0
Try to deconstruct the equation to see what it outputs. I generate them a bit randomly. If it was OK I keep them but I didn’t document them (such a shame).
Power of 2
Power of 1