python二分法查找函数底值

 更新时间:2021年12月30日 16:32:30   作者:一大盘洋芋  
大家好,本篇文章主要讲的是python二分法查找函数底值,感兴趣的同学赶快来看一看吧,对你有用的话记得收藏一下,方便下次浏览

假设连续函数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)。

收益函数为:

f(x)=10000\sum_{k=1}^{4}(1+i)^{k}

从(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)

到此这篇关于python二分法查找函数底值的文章就介绍到这了,更多相关python函数底值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现将PowerPoint转为HTML格式

    Python实现将PowerPoint转为HTML格式

    有时我们需要将精心设计的PPT发布到网络上以便于更广泛的访问和分享,本文将介绍如何使用Python将PowerPoint转换为HTML格式,需要的可以参考下
    2024-04-04
  • django自定义模板标签过程解析

    django自定义模板标签过程解析

    这篇文章主要介绍了django自定义模板标签过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • python面向对象之类的继承详解

    python面向对象之类的继承详解

    这篇文章主要介绍了python面向对象之类的继承详解,通过概述定义讲解了类的继承的功能和创建方式,写出了代码实例供参考,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • PyQt5中QTableWidget如何弹出菜单的示例代码

    PyQt5中QTableWidget如何弹出菜单的示例代码

    这篇文章主要介绍了PyQt5中QTableWidget如何弹出菜单的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 解决python测试opencv时imread导致的错误问题

    解决python测试opencv时imread导致的错误问题

    今天小编就为大家分享一篇解决python测试opencv时imread导致的错误问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python中把元组转换为namedtuple方法

    python中把元组转换为namedtuple方法

    在本篇文章里小编给大家整理的是一篇关于python中把元组转换为namedtuple方法,有兴趣的朋友们可以参考下。
    2020-12-12
  • Python 异步如何使用等待有时间限制协程

    Python 异步如何使用等待有时间限制协程

    这篇文章主要为大家介绍了Python 异步如何使用等待有时间限制协程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 使用Python微信库itchat获得好友和群组已撤回的消息

    使用Python微信库itchat获得好友和群组已撤回的消息

    这篇文章主要介绍了使用Python微信库itchat获得好友和群组已撤回的消息,需要的朋友可以参考下
    2018-06-06
  • 浅谈一下python中threading模块

    浅谈一下python中threading模块

    这篇文章主要介绍了一下python中threading模块,threading提供了一个比thread模块更高层的API来提供线程的并发性。这些线程并发运行并共享内存,需要的朋友可以参考下
    2023-04-04
  • python回调函数用法实例分析

    python回调函数用法实例分析

    这篇文章主要介绍了python回调函数用法,较为详细的分析了常用的调用方式,并实例介绍了Python回调函数的使用技巧,需要的朋友可以参考下
    2015-05-05

最新评论