问题是,用二分法在[0,1]内求e^x+10x-2=0的近似跟,要求误差不超过0.5×(10负三次幂)
对于误差这里,我不知道应该怎么处理,但是实验结果给的是0.09033,我想那只要算出来的结果比0.09033大,就都在循环内,所以循环的条件就设置成了0.09033
思路:用if语句判断将二分点代入,如果满足判断则输出二分点的值,如果不满足就判断0代入方程的值和第一个二分点代入方程的值是否满足小于0,如果满足就改变0为二分点,然后重新得出新的二分点。
错误:不知道为啥没有输出
关于我用python时出现的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 技术专家团-小桥流水 2023-10-14 14:43关注
二分法求近似解,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)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥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软件做一下,有偿