Python二分法查找函数底值的过程和步骤是什么
Admin 2022-05-24 群英技术资讯 446 次浏览
假设连续函数f(x)在区间(a,b)上有一个底值m,且在该底值下的函数输出值为M,即f(m)=M,利用二分法查找该底值:(s为足够小的数)
令t=(a+b)/2,若|f(t)-M|<=s,则m=t,若|f(t)-M|>s,如果(f(t)-M)和(f(a)-M)同号,a=t,反之b=t,继续二分法t=(a+b)/2...直到|f(t)-M|<=s,则m=t。
例如:一项一年期投资,每个季度初投入10000元,期满时收入44163.225,求内部收益率(已设定为0.04)。
收益函数为:
从(0,1)区间中查找该内部收益率,用二分法令t=(0+1)/2=0.5,比较发现|f(t)-44163.225|>10**(-10),并且f(t)-44163.225和f(1)-44163.225同号,则继续令t=(0+0.5)/2=0.25,,,直到查找出内部收益率为0.03999999445689362,约等于0.04
def f(i): y = 10000 * (1 + i) ** 4 + 10000 * (1 + i) ** 3 + 10000*(1+i)**2+10000*(1+i)**1 return y def division(a,b,M,n): #a,b为自选值范围,(f(a)-M)*(F(b)-M)<或=0 #M为f(x)输出值,n为输出值精度要求小数位数 while True: t = (a + b) / 2 if abs(f(t) - M) <= 10 ** (-n): m = t break if (f(t) - M) / abs(f(t) - M) == (f(a) - M) / abs(f(a) - M): a = t else: b = t return m y=division(0,1,44163.225,10) print(y)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
协程(coroutine)也叫微线程,是实现多任务的另一种方式,是比线程更小的执行单元,一般运行在单进程和单线程上。因为它自带CPU的上下文,它可以通过简单的事件循环切换任务,比进程和线程的切换效率更高,这是因为进程和线程的切换由操作系统进行。
这篇文章主要介绍了python类的私有属性和公共属性说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了python的自变量选择(所有子集回归,后退法,逐步回归),文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
python中导入的方式有哪些?我们在进行python项目时,经常会需要导入模块,导入包等等,那么我们应该怎样实现呢?要注意哪些问题?下面我们就一起来看看python中的导入方式。
这篇文章主要为大家介绍了python格式的Caffe图片数据均值计算学习示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008