作者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