Blue的成长日记 2023-10-14 14:32 采纳率: 92.3%
浏览 2
已结题

关于我用python时出现的问题

问题是,用二分法在[0,1]内求e^x+10x-2=0的近似跟,要求误差不超过0.5×(10负三次幂)
对于误差这里,我不知道应该怎么处理,但是实验结果给的是0.09033,我想那只要算出来的结果比0.09033大,就都在循环内,所以循环的条件就设置成了0.09033
思路:用if语句判断将二分点代入,如果满足判断则输出二分点的值,如果不满足就判断0代入方程的值和第一个二分点代入方程的值是否满足小于0,如果满足就改变0为二分点,然后重新得出新的二分点。
错误:不知道为啥没有输出

img

  • 写回答

3条回答 默认 最新

  • 关注

    二分法求近似解,x=(a+b)/2,你都写成x = a+b/2了,逻辑完全错了。结果是你算出来的,不能直接写在代码中。
    代码如下:

    import math
    
    pd = 0.0005 # 偏差
    left = 0  #左侧起点
    right = 1 #右侧终点
    x = (left+right)/2 #中间点
    # 计算3个值
    f = math.exp(x)+10*x-2
    f1 = math.exp(left) + 10*left -2
    f2 = math.exp(right) + 10*right -2
    
    while math.fabs(f) >= pd:
        if (f1*f > 0) and (f2*f < 0):
            left = x
            x = (left+right)/2
            f = math.exp(x) + 10 * x - 2
            f1 = math.exp(left) + 10 * left - 2
            f2 = math.exp(right) + 10 * right - 2
        elif (f1*f < 0) and (f2*f > 0):
            right = x
            x = (left+right)/2
            f = math.exp(x) + 10 * x - 2
            f1 = math.exp(left) + 10 * left - 2
            f2 = math.exp(right) + 10 * right - 2
        else:
            break
    
    if f > pd:
        print("无根")
    else:
        print(x)
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月22日
  • 已采纳回答 10月14日
  • 创建了问题 10月14日

悬赏问题

  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 这个冒泡法的代码错在哪里?
  • ¥15 下列c语言代码为何输出了多余的空格
  • ¥15 kali linux用wget archive.kali.org/archive-key.asc指令下载签名无效(失败)
  • ¥15 openHarmony 利用c++程序在dayu210开发板上实现拉取RTSP视频流并且在屏幕上显示
  • ¥15 GD32H757的can通信配置
  • ¥20 nist随机数测试的问题
  • ¥20 帮我解决这个项目,thank you各位程序员
  • ¥15 哪位能用ea软件做一下,有偿