Newtonbad.m -- Example of cycle
Cf. Moler: NCM Ch. 4.3 A perverse example
Condition for cycle: x(n+1) - a = -(x(n) -a) Holds if f'(x)/f(x) = 1/(2(x-a)), integrating: f(x) = sign(x-a)sqrt(abs(x-a))
close all newt1=@(f,df,x) x-f(x)/df(x) a=2; f=@(x) sign(x-a).*sqrt(abs(x-a)) ezplot(f,[0 4]) grid on; hold on df=@(x) 1/2/sqrt(abs(x-a)) disp('Choose starting point') [x0,y0]=ginput(1) xcurr=x0; X=[]; N=5; for k=1:N X=[X xcurr]; xcurr=newt1(f,df,xcurr) disp('ENTER continues') text(1,1.5,'ENTER continues') pause() plot([X(end) X(end) xcurr],[0 f(X(end)) 0],'-.r') % old xcurr new xcurr shg if k <=3 text(X(end),-0.1,num2str(k-1)) end end
newt1 = function_handle with value: @(f,df,x)x-f(x)/df(x) f = function_handle with value: @(x)sign(x-a).*sqrt(abs(x-a)) df = function_handle with value: @(x)1/2/sqrt(abs(x-a)) Choose starting point x0 = 0.8710 y0 = -1.1336 xcurr = 3.1290 ENTER continues xcurr = 0.8710 ENTER continues xcurr = 3.1290 ENTER continues xcurr = 0.8710 ENTER continues xcurr = 3.1290 ENTER continues