作者bluetbj (慢靈魂)
看板MATLAB
標題[討論] 逼近法求解
時間Mon Sep 17 11:57:46 2012
關於二分逼近法已爬文找解
程式碼如下
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
1F:→ MOONY135:那如果K沒有滿足條件會怎樣 09/17 12:44
2F:→ MOONY135:當你滿足條件以後 你下一次的K就是你設定的這樣了阿 09/17 12:46
3F:→ MOONY135:你的需要條件可能要再講清楚一點 09/17 12:47
4F:推 LittleMarten:可能是指, 現在是執行N次, 要改成執行無限次 09/17 13:16
5F:→ LittleMarten:直到k<=0.001為止, 我的理解有錯誤嗎? 09/17 13:16
6F:→ bluetbj:原本設定if k<=0.001; break; else k=(K+Kb)/2; 09/17 13:28
7F:→ bluetbj:結果跑到break就停了...對了用break的時候有把for改while 09/17 13:29
8F:→ bluetbj:先感謝MO大和Li大的協助 09/17 13:30
9F:推 MOONY135: 所以是當k<0.001時停止嗎 那你就把for 改成while 就好 09/17 18:48