文章目录

  • 切比雪夫近似值是什么
  • 常见函数的近似值

切比雪夫近似值是什么

  计算机计算正弦余弦等函数,都不太可能直接泰勒级数展开,因为太耗费计算资源了。除非特殊需要,一般都是使用切比雪夫近似值计算的。当然更不可能用割圆术,割圆术其实是古代中国微积分思想的雏形,只是由于各种原因,没有发展成微积分,实在可惜。
  假如要计算自然对数ln(x),可以用一个N次多项式去代替,比如五次多项式:
ln(x)≈ax5+bx4+cx3+dx2+ex+fln(x) ≈ax^5 + bx^4+ cx^3 +dx^2+ ex + f ln(x)≈ax5+bx4+cx3+dx2+ex+f
  那么只找到合适的a、b、c、d、e、f这六个参数,就可以计算出比较接近的自然对数啦。但是我们知道,ln(x)ln(x)ln(x)的增长速度和多项式函数完全不同,所以这个近似,也只是在一定范围(定义域)内近似。超出了范围,误差就非常离谱了。
  这种在有限的定义域内最接近的多项式近似值,就叫做切比雪夫近似值。给张切比雪夫的照片:

  计算机的正弦、余弦等三角函数都是用切比雪夫多项式近似值来计算的。特别是正弦余弦函数在2D/3D游戏中用得特别多,而游戏的计算不需要那么高的精度,所以切比雪夫近似值成为了最佳的选择。
  假设有一个函数F(x),切比雪夫提出,一个区间内,存在唯一的一个N阶多项式P(x),F(X)与P(X)的最大绝对误差是最小的。
  这个多项式切比雪夫怎么证明的,过程是怎么样的?
  我不细讨论,我也讨论不来,因为看不懂。同时,切比雪夫搞了个定理:
  假设区间为[a, b]。如果Pn(x)P_n(x)Pn​(x)是n阶的最小误差多项式,那么在这个区间内,至少存在N+2个最大误差点,并且这些点的误差值是按顺序一正一负的。
  多项式函数比目标函数大,就是正误差,比目标函数小,就是负误差。以切比雪夫近似值接近步进函数为例子(图片来自GNU组织):

  因为这些误差点,一正一负,缠绕在目标函数的图形上,所以又叫切比雪夫交错点。直白地理解,如果不是缠绕,就有两种情况,一是都在图像下边,多项式函数是波浪线曲线,这时波浪线的顶点误差比底部误差小,那么最大误差点数量就只有多项式次数的一半。反之,也一样,所以只能缠绕在目标函数上,形成交错点。但是数学的证明不能用大白话去证明,必须用数学语言给出严谨的过程,这里我就不给出了,有兴趣的可以自己去网络上搜一搜。

常见函数的近似值

  大部分切比雪夫近似值不要自己去计算,前人已经帮我们计算好了,以下是两个三角函数在[−π16,π16][-\frac\pi{16},\frac\pi{16}][−16π​,16π​]范围内的近似值,也是C语言、Java语言、Python语言等编程语言计算正弦余弦函数的底层实现。计算三角函数时,先要使用缩参算法,把参数减去2nπ2n\pi2nπ,缩参到[−π,π][-\pi,\pi][−π,π]内,然后再使用三角恒等式,在[−π16,π16][-\frac\pi{16},\frac\pi{16}][−16π​,16π​]内计算:
sin(x)≈(((0.000027553817452272217x2−0.00019841269659586505)x2+0.008333333333329196)x2−0.16666666666666666)∗x3+xcos(x)≈(((0.00002.479773539153719x2−0.0013888888689039883)x2+0.041666666666621166)x2−0.49999999999999994)x2+1sin(x) ≈ (((0.000027553817452272217x^2 -0.00019841269659586505)x^2 \\+ 0.008333333333329196)x^2-0.16666666666666666)*x^3 + x\\ cos(x) ≈ (((0.00002.479773539153719x^2-0.0013888888689039883)x^2 \\+ 0.041666666666621166)x^2 -0.49999999999999994)x^2 + 1 sin(x)≈(((0.000027553817452272217x2−0.00019841269659586505)x2+0.008333333333329196)x2−0.16666666666666666)∗x3+xcos(x)≈(((0.00002.479773539153719x2−0.0013888888689039883)x2+0.041666666666621166)x2−0.49999999999999994)x2+1

8.1 切比雪夫近似值求正余弦相关推荐

  1. 2---理解正余弦、复数求模、反正切和乘除运算的CORDIC算法实现

    CORDIC(Coordinate Rotation Digital Computer)算法是J.Volder在1956在航空控制系统设计中构思的,但其实相似的算法在更早的1624年就已经被Henry ...

  2. 正余弦函数的matlab仿真,实现正余弦信号的算法比较

    实现正余弦函数的几种算法记录 1.几种算法的理论推导与matlab仿真 (1)Taylor级数逼近正余弦函数的推导 精度要求为20bit,其对应误差为9.536e-7,所以泰勒函数逼近的误差值要小于9 ...

  3. C语言正余弦函数定点查表算法原理及实现

    如果用数学库中的sin和cos函数计算,可能涉及浮点.乘法.除法运算,运行速率较低.这里介绍一种正余弦查表算法. 参考代码:SMT32 FOC电机库的mc_math.c. 首先我们知道正弦和余弦的函数 ...

  4. 正余弦函数及其反函数导数推导

    正余弦函数及其反函数导数推导 背景 三角函数的求导涉及到重要极限 limx→0sinxx\lim_{x\to0}\frac{sin x}{x} 的使用. 其反三角函数涉及复合函数求导.此文主要是对这两 ...

  5. 数学正余弦应用——创建六边形环或者六边形面盘

    如下图: 其中的小六边形可以用一张图片替换,也可以用代码直接绘制,这里就不说具体绘制小六边形了,上面的数字是调试用的,可以忽略. 要产生一个这样的图形,有三种方式. 1.按列遍历生成,分左边,右边两部 ...

  6. ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数、最大信息系数MIC)

    ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数.最大信息系数MIC) 目录 利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数.最大信息系 ...

  7. cordic ip核 vivado_vivado中Cordic IP核使用——计算正余弦(sin/cos)

    目录 1.Cordic算法介绍 2.Cordic IP核介绍 3.仿真 4.存在的问题 5.参考 1.Cordic算法介绍 cordic算法将正余弦计算转换为简单的迭代过程(一系列的加减和移位操作), ...

  8. poj:Freda的越野跑 求正序对数

    Freda报名参加了学校的越野跑.越野跑共有N人参加,在一条笔直的道路上进行.这N个人在起点处站成一列,相邻两个人之间保持一定的间距.比赛开始后,这N个人同时沿着道路向相同的方向跑去.换句话说,这N个 ...

  9. Matplotlib 绘制折线图 - 正余弦函数图像

    运行环境 : python 3.6.0 用 Matplotlib 的 scatter 方法绘制散点图 核心代码 : # -*- encoding: utf-8 -*- # @Version : Pyt ...

最新文章

  1. 容器开启数据服务之旅系列(二):Kubernetes如何助力Spark大数据分析
  2. 一点想法--- 做一个轻便的程序编辑器
  3. QObject 的拷贝构造和赋值操作
  4. Nacos源码集群一致性
  5. dj鲜生14-类视图的实现原理+代码
  6. java mdpi_如何使用drawable兼容所有屏幕尺寸(idpi,mdpi,hdpi,xhdpi,xxhdpi)
  7. 使用Spring Boot构建独立的OAuth服务器(三)
  8. React context 丢失问题
  9. ftp端口号_ftp端口号,完成ftp更改端口号只需5步
  10. 中小型企业无线网络设计
  11. 入侵手游服务器修改数据库,如何入侵手游服务器数据库
  12. 替罪羊树的原理及实例
  13. 【收藏】2018-2019届互联网大厂公司校招薪资汇总,基本年薪都在20万以上
  14. 小程序地图定位,打开地图导航,选择位置
  15. MATLAB与DSP(C6657)的TCP/IP通信实现
  16. (Modern Family S01E01) Part 4  PhilClaire  Luke射Alex / Haley邀请Dylan
  17. 龙之战神微信登录服务器,龙之战神微信登录版
  18. k8s进阶篇-云原生存储ceph
  19. Centos 7 报 “警告:/var/tmp/rpm-tmp.3cVIdT: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY”
  20. android 环信红包异常,环信上线新特征:阅后即焚+消息撤回+红包

热门文章

  1. 【小学信息技术教资面试】《制作统计表》教案
  2. css 填满剩余高度
  3. centos 清理磁盘空间 及 内存占用,docker容器优化清理
  4. k8s-学习笔记总结(从入门到放弃的学习路线)
  5. 帕特森销售法则(转载)
  6. 费米估算 “ 我为什么没有女朋友?”
  7. python的那些小程序(绘图)
  8. QLineEdit 常用属性
  9. 模仿MovingMnist制作自己的数据集【封装篇】
  10. 比特视界BITONE亮相2022元宇宙共享大会并接受授书表彰