作者sitting (臭小开吃屎)
看板MATLAB
标题Newton method(正确版)
时间Tue Mar 21 21:09:44 2006
x=input('请输入一整数值:'); % 输入一整数
if x>0 % x>0才能继续往下做
delta = 0.001; % set convergence tolerance=0.001
r=1;rold=2; % 设r和rold的初始值
it=0; %设定计数
maxit=30; %设定最大计数次数
while abs(rold-r)> delta & it<maxit
rold = r; %save old value for convergence test
r =0.5*(rold + x/rold); %牛顿近示式
it = it + 1;
if abs(rold-r)< delta %当abs(rold-r)< delta 则跳出程式,不再计算
break;
end
end
else
fprintf('你输入的数非正整数!');
return; %当输入负数,则return to calling function
end
fprintf('\n %d^(1/2)=%g,共计数=%d次',x,r,it);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.224.93