The below code was posted by Matt Fig as a response in a thread last fall. I have a similar function that I need to find the first 50 roots. How would you modify the code to accommodate for the change?
function [z] = find_roots()x = 0.01:0.01:(20*pi/2)-0.01;plot(x,tan(x)+5.6*x),grid onf = @(x) tan(x)+5.6*x;N = 250; % Fineness of the search, bigger is finer
z = zeros(1,N);for jj = 1:30 for n=1:N try z(n) = fzero(f,jj+[(n-1)/N n/N]); if abs(f(z(n)))>1e-8 z(n) = 0; else fprintf('Found a root at: %.5f\n',z(n)) end catch end endendx = 0:pi/50:10*pi;y = f(x);plot(z,zeros(1,length(z)),'o',x,y,'-')line([0 10*pi],[0 0],'color','black')axis([0 10*pi -1000.0 3000.0])z = sort(z(z~=0)); % Return only the needed values
Best Answer