Newton method(正確版)
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
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章