看板 MATLAB 關於我們 聯絡資訊
關於二分逼近法已爬文找解 程式碼如下 K=2; for i=1:N; K1=(log(U(i)))*(U(i)^(K)); K2=U(i)^(K); K3=log(U(i)); S1=S1+K1; S2=S2+K2; S3=S3+K3; Kb=1/((S1/S2)-(S3/N)); k=abs(Kb-K); if k > 0.001; K=(K+Kb)/2; end end 請問如何讓新的K值重新代入迴圈去計算 求得滿足if條件 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.110.115.6
MOONY135:那如果K沒有滿足條件會怎樣 09/17 12:44
MOONY135:當你滿足條件以後 你下一次的K就是你設定的這樣了阿 09/17 12:46
MOONY135:你的需要條件可能要再講清楚一點 09/17 12:47
LittleMarten:可能是指, 現在是執行N次, 要改成執行無限次 09/17 13:16
LittleMarten:直到k<=0.001為止, 我的理解有錯誤嗎? 09/17 13:16
bluetbj:原本設定if k<=0.001; break; else k=(K+Kb)/2; 09/17 13:28
bluetbj:結果跑到break就停了...對了用break的時候有把for改while 09/17 13:29
bluetbj:先感謝MO大和Li大的協助 09/17 13:30
MOONY135: 所以是當k<0.001時停止嗎 那你就把for 改成while 就好 09/17 18:48