函数体中的return以及函数的解的二分法
昨天晚上在写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以及函数的解的二分法相关推荐
- python平方数迭代器_对python中的高效迭代器函数详解
python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...
- pythonpandas函数详解_对pandas中Series的map函数详解
Series的map方法可以接受一个函数或含有映射关系的字典型对象. 使用map是一种实现元素级转换以及其他数据清理工作的便捷方式. (DataFrame中对应的是applymap()函数,当然Dat ...
- 在oracle中游标的操作,Oracle中的游标和函数详解
Oracle中的游标和函数详解 1.游标 游标是一种 PL/SQL 控制结构:可以对 SQL 语句的处理进行显示控制,便于对表的行数据 逐条进行处理. 游标并不是一个数据库对象,只是存留在内存中. 操 ...
- 转:linux中fork()函数详解
转:linux中fork()函数详解 https://blog.csdn.net/jason314/article/details/5640969 转载于:https://www.cnblogs.co ...
- python中plt定义,对Python中plt的画图函数详解
1.plt.legend plt.legend(loc=0)#显示图例的位置,自适应方式 说明: 'best' : 0, (only implemented for axes legends)(自适应 ...
- Oracle中nvl()与nvl2()函数详解
Oracle中nvl()与nvl2()函数详解: 函数nvl(expression1,expression2)根据参数1是否为null返回参数1或参数2的值: 函数nvl2(expression1,e ...
- linux内核中send与recv函数详解
Linux send与recv函数详解 1.简介 #include <sys/socket.h> ssize_t recv(int sockfd, void *buff, size_t n ...
- 【Kotlin】Kotlin 语言集合中的高阶函数详解 ( 数据类 data class | maxBy | minBy | filter | map | any | count | find )
文章目录 I . List 集合高阶函数引入 II . Kotlin 数据类 ( data class ) III . Java 代码 与 Kotlin 代码实现对比 ( 查询年龄最大的 ) IV . ...
- Pandas中at、iat函数详解
at 函数:通过行名和列名来取值(取行名为a, 列名为A的值) iat 函数:通过行号和列号来取值(取第1行,第1列的值) 本文给出at.iat常见的用法,并附上详细代码. 1. 首先创建一个Data ...
最新文章
- OpenResty上各种测试用例实操(1)
- oracle之alter学习笔记
- 读书笔记 - 《21世纪的管理挑战》
- solr从数据库为solr_home导入数据
- Qt Quick中的The Visual Canvas
- kdump和crash的配置方法与内核故障原因分析(一)
- Java反编译工具使用对比,最好用的Java反编译工具 --- JD-GUI、XJad
- Windows下配置Python环境报错error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft
- 数学建模(6)-Matlab绘制图像精细修改
- Aircrack-ng破解无线WIFI密码
- (十二)c#Winform自定义控件-分页控件
- 新技能get之公众号音频下载
- 均方误差——MSE 和标准差 的区别
- python安装h5py
- 【51 Nod 1326】遥远的旅途
- UnityC#字串如何获取换行符号-最基础的字串处理方法,也最容易常见错误
- 10万元4厘利息怎么算_10万利息4厘是多少钱
- JDBC getParameterType call failed - using fallback method instead
- 译:WebRTC视频通信浅析
- AWS 中文入门开发教学 25- 高可用性设计 - 建立 ALB 负载均衡