I have some code which runs this inner loop a LOT of times for different values of Ri and Ii:
z = complex(Ri,Ii);for (k=1:50)e1 = eval(formula);e2 = eval(derivative);z = z - e1/e2 / (1 - (e1*eval(derivative2))/(2*power(e2,2.0)));g = power(real(z),2)+power(imag(z),2);if (k>1 && abs(g-gprev)<epsilon)break;endgprev = g;end
Formula is a string expression involving "z" (input by user at run-time, so can't be hardcoded) and derivative is it's symbolic derivative. I know eval() is supposed to be subs() but that seems to make it way slower. Is there anything I should be doing in terms of choosing better functions or notation that would help speed this up?