用 R 寫二分法的問題
delta0=0
delta1=1
while(abs(L(delta0,B)$Ld-delta0)>0.00001) 黃色是我寫好的fun.
{
phi1=delta0
phi2=delta1
phim=(phi1+phi2)/2
if((L(phi1,B)$Ld-phi1)*(L(phim,B)$Ld-phim)<0)
{
delta0=phi1
delta1=phim
}
else
{
delta0=phim
delta1=phi2
}
if (abs( L(phim,B)$Ld-phim )<0.0001)
break
}
delta0
delta1
---------------- 以上是我的code --------------------------------
我的問題是...
> delta0
[1] 0.9972603
> delta1
[1] 0.9972603
(delta0,delta1是我按stop才停止程式得到的值)
怎麼會 delta0 = delta1 呢??
都是一直 相加除以2 下去~ 怎麼會出現相等呢??
是不是 R 只取到小數點以下第七位~ 要怎麼修改呢?
謝謝
--
夫兵者不祥之器物或惡之故有道者不處君子居則貴左用兵則貴右兵者不祥之器非君子
之器不得已而用之恬淡為上勝而不美而美之者是樂殺人夫樂殺人者則不可得志於天下
矣吉事尚左凶事尚右偏將軍居左上將軍居右言以喪禮處之殺人之眾以哀悲泣之戰勝以
喪禮處之道常無名樸雖小天下莫能臣侯王若能守之萬物將自賓天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦將知止知止59-115-229-233.dynamic.hinet.net海
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):