回 帖 发 新 帖 刷新版面

主题:[讨论]参与都得分,解决得50分!有机会日后再加分!

在一本很有权威的书上有这样的一道题目:
    写出用二分法求方程x^3-x-1=0在区间[1,1.5]上的一个解的程序(误差不超过0.001).
     书上带上答案是:

a=1
b=1.5
c=0.001
do
x=(a+b)/2
f(a)=a^3-a-1
f(x)=x^3-x-1
if f(x)=0 then
print "x=";x
else
if f(a)*f(x)<0 then
b=x
else
a=x
end if 
end if
loop until abs(a-b)<=0
print "方程的一个近似解x=";x
end



以上程序运行结果是:x=1.499023,
1.499023显然不满足方程x^3-x-1=0,但从算法上来看又找不出什么错误,请问到底怎么回事呢?
参与都得分,解决得50分!有机会日后再加分!

回复列表 (共4个回复)

沙发

正确答案:

1.324718.

(误差:0.000000182335474232)

板凳

00000000000000000000

3 楼

楼上的还真不耻下问!

这个二分法如果用到这里来必须改一下:

首先:low=1,high=1.5
SS1:mid=(low+high)/2
SS2:IF mid 符合条件 THEN PRINT mid:GOTO SS5 ELSE GOTO SS3
SS3:IF mid 小于正常值 THEN low=mid
SS4:IF mid 大于正常值 THEN high=mid
SS5:END

这里我解释一下小于正常值和大于正常值:
小于正常值:mid^3-mid-1<-0.001
大于正常值:mid^3-mid-1>0.001

4 楼

这帖子结束了!
我会了.

我来回复

您尚未登录,请登录后再回复。点此登录或注册