昨天晚上在写educoder的实训作业的时候,发现了一些问题。

大概是这个这样的用二分法求函数的根的问题。还需要将根逐行输出。

首先二分法是通过不断寻找中的数与目标数进行比较的方法,运用于函数需要注意左右端点的正负号的问题。

这个题目分析可知,分别在(0,1),(4,5)内存在零点,而函数在0点的值大于0,在4点的值小于0,因此在二分法的左右端点的变化中需要注意。

正确代码如下

import numpy as np
E=1e-6 #表示10的负六次方
def f(x):return 6*np.exp(x) -113*x +17
def binary_search1(i,j): #这是左边大于0的情况while i<=j:k=(i+j)//2if abs(f(k))<E:return kif f(k)<-E:j=kelse:i=k      #可以直接用else 因为是上面是直接进行下来的
def binary_search2(i,j): #这是右边大于0的情况while i<=j:k=(i+j)//2if abs(f(k))<E:return kif f(k)<-E:i=kelse:j=k
print('%.4f'%binary_search1(0,1))
print('%.4f'%binary_search2(4,5))
但我犯了错误,在于想直接逐行输出解。

def div_wrong(m,n):while m<n:a=(m+n)/2if abs(f(a)) <= E:print('{:.4f}'.format(a)) #遇到return会立马退出函数体 所以用return写函数是最好的if f(a)< -E:m=aelse:n=a

将return写为了print,结果是一直输出同一解。

所以在函数中,如果碰到了return是会直接跳出函数体的。另外要多注意函数的解的二分法求解与一般的二分法不同,在于左右端点的正负值不同,区间的左右赋值会出现不同的情况。

函数体中的return以及函数的解的二分法相关推荐

  1. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  2. pythonpandas函数详解_对pandas中Series的map函数详解

    Series的map方法可以接受一个函数或含有映射关系的字典型对象. 使用map是一种实现元素级转换以及其他数据清理工作的便捷方式. (DataFrame中对应的是applymap()函数,当然Dat ...

  3. 在oracle中游标的操作,Oracle中的游标和函数详解

    Oracle中的游标和函数详解 1.游标 游标是一种 PL/SQL 控制结构:可以对 SQL 语句的处理进行显示控制,便于对表的行数据 逐条进行处理. 游标并不是一个数据库对象,只是存留在内存中. 操 ...

  4. 转:linux中fork()函数详解

    转:linux中fork()函数详解 https://blog.csdn.net/jason314/article/details/5640969 转载于:https://www.cnblogs.co ...

  5. python中plt定义,对Python中plt的画图函数详解

    1.plt.legend plt.legend(loc=0)#显示图例的位置,自适应方式 说明: 'best' : 0, (only implemented for axes legends)(自适应 ...

  6. Oracle中nvl()与nvl2()函数详解

    Oracle中nvl()与nvl2()函数详解: 函数nvl(expression1,expression2)根据参数1是否为null返回参数1或参数2的值: 函数nvl2(expression1,e ...

  7. linux内核中send与recv函数详解

    Linux send与recv函数详解 1.简介 #include <sys/socket.h> ssize_t recv(int sockfd, void *buff, size_t n ...

  8. 【Kotlin】Kotlin 语言集合中的高阶函数详解 ( 数据类 data class | maxBy | minBy | filter | map | any | count | find )

    文章目录 I . List 集合高阶函数引入 II . Kotlin 数据类 ( data class ) III . Java 代码 与 Kotlin 代码实现对比 ( 查询年龄最大的 ) IV . ...

  9. Pandas中at、iat函数详解

    at 函数:通过行名和列名来取值(取行名为a, 列名为A的值) iat 函数:通过行号和列号来取值(取第1行,第1列的值) 本文给出at.iat常见的用法,并附上详细代码. 1. 首先创建一个Data ...

最新文章

  1. OpenResty上各种测试用例实操(1)
  2. oracle之alter学习笔记
  3. 读书笔记 - 《21世纪的管理挑战》
  4. solr从数据库为solr_home导入数据
  5. Qt Quick中的The Visual Canvas
  6. kdump和crash的配置方法与内核故障原因分析(一)
  7. Java反编译工具使用对比,最好用的Java反编译工具 --- JD-GUI、XJad
  8. Windows下配置Python环境报错error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft
  9. 数学建模(6)-Matlab绘制图像精细修改
  10. Aircrack-ng破解无线WIFI密码
  11. (十二)c#Winform自定义控件-分页控件
  12. 新技能get之公众号音频下载
  13. 均方误差——MSE 和标准差 的区别
  14. python安装h5py
  15. 【51 Nod 1326】遥远的旅途
  16. UnityC#字串如何获取换行符号-最基础的字串处理方法,也最容易常见错误
  17. 10万元4厘利息怎么算_10万利息4厘是多少钱
  18. JDBC getParameterType call failed - using fallback method instead
  19. 译:WebRTC视频通信浅析
  20. AWS 中文入门开发教学 25- 高可用性设计 - 建立 ALB 负载均衡

热门文章

  1. Compass的误解与新发现
  2. 面试准备之SQL 3——数据管理
  3. Ajax调用springboot接口,Springboot解决ajax+自定义headers的跨域请求问题.pdf
  4. easy-ui实现左右滚动条
  5. Java中的StringBuffer、StringBuilder和包装器类型
  6. Dangling Javadoc comment
  7. js,vue.js一些方法的总结
  8. 教你一步搭建Flume分布式日志系统
  9. 在Activiti中如何使用自定义的组织架构
  10. sql脚本比较大,sqlserver 无法导入,就用cmd命令执行