前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现所有算法-正割法(Secant)

Python实现所有算法-正割法(Secant)

作者头像
云深无际
发布2022-08-05 11:41:56
6060
发布2022-08-05 11:41:56
举报
文章被收录于专栏:云深之无迹云深之无迹

正割法是近似的牛顿切线法,把求导用斜率代替,用切线不断逼近函数的单根。

示意图

迭代的起点

推广的公式

核心code,直接放上去

眼熟不

你可以编写一个简单的函数来测试这个功能

就是这么简单,当然了字数这么少,还成为不了一篇原创文章。再写一个小程序。

我们可以使用Matploatlib的绘图功能模拟

引入

写好要计算的函数

代码语言:javascript
复制
def Y(x):
    global i
    i = i+1
    plt.plot([x, x], [0, (x**3-x-1)])
    plt.plot([x, result(x)], [(x**3-x-1), 0])
    temp = round(x-result(x), 5)
    if(temp == 0.0):
        print('正割法第', i, '次')
        print('解得:', round(x, 5))
        x = result(x)
        y = (result(x)**3 - result(x) - 1)
        plt.plot(x, y, ".")
        plt.plot(x, y, "g-")
        plt.annotate("(1.32472,1.32472)", xy=(result(x), (result(x)**3 - result(x) - 1)),
                     xytext=(result(x) - 0.5, (result(x)**3 - result(x) - 1) + 2), color='k', fontsize=10)
    else:
        Y(result(x))


Y(2.7)

x = 0
plt.title("secant    method")
x = np.linspace(0, 3)
plt.xlim(0, 3)  # 固定坐标
plt.ylim(-5, 20)
plt.plot(x, x**3-x-1, "b-")
plt.grid(True)
plt.plot([0, 3], [0, 0], "--")
plt.show()

自己琢磨吧~另外朋友说我说一个有韧性的人,我一定要分享一下,平时很少收到别人的评价:

韧性

韧性这个东西,比较奇怪,总的来说就是越挫越勇,屡战屡败,屡败屡战,不气馁,对事物有比较乐观的对待,从性别上说,女人的韧性在生活方面远远大于男性,在职场中就是抗压,逆境中保持乐观心态奋勇向前。(emmmm,压力还是不够大)

另外推荐一首歌,是一首写给父母的歌

所有人都在乎你飞的高不高,只有父母问你累不累

另外学院的笔记本封面太赞了

代码语言:javascript
复制
https://blog.csdn.net/zzy123zzy123_/article/details/78358649
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档