首页 > 解决方案 > 方程中 x 值的迭代

问题描述

我已经设置了一项任务来迭代计算给定公式的 x 值:x 3 - 3x + 4 = 0** 使用反复试验。代码将首先插入 -1.5 作为其第一次猜测,然后从那里向上或向下工作以尝试得到答案 0。每次将数字插入等式时,代码应输出“答案 ## 太大/太小"

我已经启动了代码,但我有点卡住了,因为它只执行了两次然后停止。我使用了一个while循环,但我认为我没有正确使用它,或者它可能是解决这个问题的错误方法。任何建议/代码片段将不胜感激。

import cmath
end = ''

num = 0
guess = -1.5
calculation = (guess**3 - guess * 3 + 4)
print(calculation)
while calculation < 0:
    print("Guess is too small")
else:
    print("Guess is too large")

while calculation != 0 and calculation < 0:
    guess = guess + 0.1 
    calculation = (guess**3 - guess * 3 + 4)
else:
    guess = guess-0.1
    calculation = ((guess**3)-3*guess+4)
    print(calculation)

标签: pythoniterationpython-3.4equationequation-solving

解决方案


您混淆了while和的概念if。你需要两者......好吧,对于我认为你正在尝试做的事情,请尝试以下大纲。

while calculation != 0:
    if calculation < 0:
        # Guess is too small; print message and adjust guess
    else:
        # Guess is too large; print message and adjust guess

我认为您可以为“if”的每个分支填写逻辑。特别注意,只有当您得到准确的答案时,这才会终止。如果你想在一点容忍度下工作,你必须调整退出条件calculation != 0以获得一点“回旋余地”。


推荐阅读