IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 利用牛顿迭代法求平方根 -> 正文阅读

[人工智能]利用牛顿迭代法求平方根

泰勒公式:

如果我要计算a的平方根,计算的结果为x,根据上面的泰勒公式可以如下处理:

?

根据牛顿迭代法,随便取一个值x0,带入上式计算得到的结果为x1,x1带入得到的结果为x2,依次迭代,当xi和xi+1足够接近时,就是计算的结果。用下面的代码进行迭代计算,就能得出想要的结果。

讲完了原理,下面就用python实现

# -*- coding: utf-8 -*-

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import math

def func(a):
    if a < 1e-6:
        return 0
    last = a
    x = a / 2
    while math.fabs(x-last) > 1e-6:
        last = x
        x = (x + a / x) / 2
    return x

if __name__ == '__main__':
    print(func(4))
    print(func(16))
    print(func(100))

运行上面的代码进行验证,结果如下:

得到的是浮点型的结果。4的平方根代码执行得出是2.0,16的平方根代码执行得出为4.0,100的平方根代码执行得出为10.0,执行结果和实际结果一致。

接下来用plot作图看下效果,代码如下

  if __name__ == '__main__':
    mpl.rcParams['font.sans-serif'] = [u'SimHei']  #指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False
    x = np.linspace(0, 100, num=200) #x轴取值为0-100,等间隔的取200个点
    func_ = np.frompyfunc(func, 1, 1) #1个输入1个输出
    y = func_(x)
    plt.figure(figsize=(10, 5), facecolor='w')
    plt.plot(x, y, 'ro-', lw=2, markersize=6)
    plt.grid(b=True, ls=':')
    plt.xlabel(u'X', fontsize=16)
    plt.ylabel(u'Y(平方根)', fontsize=16)
    plt.title(u'牛顿法计算平方根', fontsize=18)
    plt.show()

?执行后得到如下结果:

X轴为输入的数字,Y轴为对应X的平方根?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 11:54:55  更:2022-01-28 11:55:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 21:16:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码