计算器如何开根号的???(一篇文章讲清)

牛顿迭代法求开方的应用~ 

众所周知,徒手开根号有许多方法,最著名的就是长除法, 还有些别的方法,比如前段时间毕导在b站上的视频1分钟教你徒手开根号!卖计算器的都哭了...._哔哩哔哩_bilibili ,个人认为还是数形结合的方法好用ヾ(^▽^*))),如果你和我一样,看这个标题就好奇计算器是怎么开根号的呢?那就往下看! 

  • 牛顿迭代法

  1.  定义 

牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法

       公式 

 其实不难理解o(^▽^)o

      原理

设方程函数f(x)=m,改方程可以变成g(x)=f(x)-m=0, 我们只需要求出函数g(x)=0的解,就可以求出f(x)=m的解, emm,不错o(* ̄︶ ̄*)o

那就倒进函数计算器模拟一波?推荐desmos :D

*注:如果是求开三次方跟,则迭代公式是 xn = 2/3*xn + x/(3*xn*xn)

  • 理论可行,实践开始!!!

 尝试求方程 f(x)=x^3-2=0的根(*^▽^*)

1.建立函数 f(x) 和它的导数 f'(x)

 这个对大家一定没有难度啦(๑´ㅂ`๑)

def f(x):
    return x**3 -2
def df(x):
    return 3*x**2

 2.加上迭代算法

def newton_ (f, df, x0, tol=1e-6, max_iter=100):
    count = 0
    while True:
        x1 = x0 - f(x0)/df(x0)
        if abs(x1 - x0) < tol:
            break
        x0 = x1
        count += 1
        if count >= max_iter:
            raise ValueError("Iteration limit exceeded")
    return x1

3.函数直接出解

root = newton_method(f, df, 1.5)
print("Root:", root)
  • 这种方法的优缺点

     1 优点 

 简而言之 就是迭代次数少精度高(对应收敛速度快)

其他优点占时想不到o(≧口≦)o

知道的欢迎在评论区讨论~

     2 缺点

 1.对目标函数有较高要求(例如海森矩阵必须正定)

 2.实话说,计算量是有点大|(*′口`)

总结

 这种迭代方法总的来说还是挺不错的

还有其他一些著名的迭代方法比如

最经典的迭代算法是欧几里得算法·,用于计算两个整数a,b的最大公约数

还有一个很典型的例子是斐波那契(Fibonacci)数列


  • 一个扩展

泰勒展开?

眼神好的 肯定感觉很眼熟, 这也是泰勒展开到第二阶!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值