[討論] 逼近法求解

看板MATLAB作者 (慢靈魂)時間13年前 (2012/09/17 11:57), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串1/1
關於二分逼近法已爬文找解 程式碼如下 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

09/17 12:44, , 1F
那如果K沒有滿足條件會怎樣
09/17 12:44, 1F

09/17 12:46, , 2F
當你滿足條件以後 你下一次的K就是你設定的這樣了阿
09/17 12:46, 2F

09/17 12:47, , 3F
你的需要條件可能要再講清楚一點
09/17 12:47, 3F

09/17 13:16, , 4F
可能是指, 現在是執行N次, 要改成執行無限次
09/17 13:16, 4F

09/17 13:16, , 5F
直到k<=0.001為止, 我的理解有錯誤嗎?
09/17 13:16, 5F

09/17 13:28, , 6F
原本設定if k<=0.001; break; else k=(K+Kb)/2;
09/17 13:28, 6F

09/17 13:29, , 7F
結果跑到break就停了...對了用break的時候有把for改while
09/17 13:29, 7F

09/17 13:30, , 8F
先感謝MO大和Li大的協助
09/17 13:30, 8F

09/17 18:48, , 9F
所以是當k<0.001時停止嗎 那你就把for 改成while 就好
09/17 18:48, 9F
文章代碼(AID): #1GLf-zJ6 (MATLAB)