作者timche2 (CWALK)
看板MATLAB
标题[心得] 怎麽叫他停止ㄚㄚㄚㄚ~~
时间Tue Mar 27 21:48:34 2012
%---------------------- #1 (a)----------------
function [x, iter] = sqrtn(a , tol)
n = 1;
x = [];
x(1) = a;
while 1
x(n+1) = 0.5 * ( x(n) + a / x(n) );
rel = (abs( x(n+1) - x(n) )) / x(n+1);
while rel < tol
fprintf('x = ');
disp(x(n)) ;
iter = n
break;
end
n = n + 1;
end
%===============================================
这是我的code.
牛顿iteration法
我想输入 >>[x , iter] = sqrtn(2 , 0.01)
应当跑出 x = 1.4142 iter = 3 (蝶代三次中止)
可是那个break似乎不管用 执行一直跑出
x = 1.4142
x = 1.4142
x = 1.4142
x = 1.4142
x = 1.4142........跑不完
想请问要怎麽让它停下来?
感恩QAQ !
--
███████████◤█████ █ ██ █ ███ █ █ ██
███████麦面█◤█████ ‧–●–█ █◢███◣█◥◣█ ‧ ██
█████████◤█ ★██ ██ ███◢████ █ ██ ██
█████禾斗█◤ 吃了会科科 ▂≡▂ ▕ ◤‧ ██
███████◤ ‧ 快去买来吃! ▎ -⊙-⊙— ▍ ‧ ██
███禾斗█◤ ◣ █▏ /皿\ ▋ ██
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.7.214
※ 编辑: timche2 来自: 140.112.7.214 (03/27 21:53)
1F:推 Raymond0710:第二层while要改成if 03/27 22:21
2F:→ shomingchang:break 只会跳出一层回圈 03/28 00:55
3F:→ math99:ctrl+c 03/28 01:00
4F:推 maxxV3:if和while其实有很微妙的不同点 03/29 03:01