8.1 切比雪夫近似值求正余弦
文章目录
- 切比雪夫近似值是什么
- 常见函数的近似值
切比雪夫近似值是什么
计算机计算正弦余弦等函数,都不太可能直接泰勒级数展开,因为太耗费计算资源了。除非特殊需要,一般都是使用切比雪夫近似值计算的。当然更不可能用割圆术,割圆术其实是古代中国微积分思想的雏形,只是由于各种原因,没有发展成微积分,实在可惜。
假如要计算自然对数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 切比雪夫近似值求正余弦相关推荐
- 2---理解正余弦、复数求模、反正切和乘除运算的CORDIC算法实现
CORDIC(Coordinate Rotation Digital Computer)算法是J.Volder在1956在航空控制系统设计中构思的,但其实相似的算法在更早的1624年就已经被Henry ...
- 正余弦函数的matlab仿真,实现正余弦信号的算法比较
实现正余弦函数的几种算法记录 1.几种算法的理论推导与matlab仿真 (1)Taylor级数逼近正余弦函数的推导 精度要求为20bit,其对应误差为9.536e-7,所以泰勒函数逼近的误差值要小于9 ...
- C语言正余弦函数定点查表算法原理及实现
如果用数学库中的sin和cos函数计算,可能涉及浮点.乘法.除法运算,运行速率较低.这里介绍一种正余弦查表算法. 参考代码:SMT32 FOC电机库的mc_math.c. 首先我们知道正弦和余弦的函数 ...
- 正余弦函数及其反函数导数推导
正余弦函数及其反函数导数推导 背景 三角函数的求导涉及到重要极限 limx→0sinxx\lim_{x\to0}\frac{sin x}{x} 的使用. 其反三角函数涉及复合函数求导.此文主要是对这两 ...
- 数学正余弦应用——创建六边形环或者六边形面盘
如下图: 其中的小六边形可以用一张图片替换,也可以用代码直接绘制,这里就不说具体绘制小六边形了,上面的数字是调试用的,可以忽略. 要产生一个这样的图形,有三种方式. 1.按列遍历生成,分左边,右边两部 ...
- ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数、最大信息系数MIC)
ML之MIC:利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数.最大信息系数MIC) 目录 利用有无噪音的正余弦函数理解相关性指标的不同(多图绘制Pearson系数.最大信息系 ...
- cordic ip核 vivado_vivado中Cordic IP核使用——计算正余弦(sin/cos)
目录 1.Cordic算法介绍 2.Cordic IP核介绍 3.仿真 4.存在的问题 5.参考 1.Cordic算法介绍 cordic算法将正余弦计算转换为简单的迭代过程(一系列的加减和移位操作), ...
- poj:Freda的越野跑 求正序对数
Freda报名参加了学校的越野跑.越野跑共有N人参加,在一条笔直的道路上进行.这N个人在起点处站成一列,相邻两个人之间保持一定的间距.比赛开始后,这N个人同时沿着道路向相同的方向跑去.换句话说,这N个 ...
- Matplotlib 绘制折线图 - 正余弦函数图像
运行环境 : python 3.6.0 用 Matplotlib 的 scatter 方法绘制散点图 核心代码 : # -*- encoding: utf-8 -*- # @Version : Pyt ...
最新文章
- 容器开启数据服务之旅系列(二):Kubernetes如何助力Spark大数据分析
- 一点想法--- 做一个轻便的程序编辑器
- QObject 的拷贝构造和赋值操作
- Nacos源码集群一致性
- dj鲜生14-类视图的实现原理+代码
- java mdpi_如何使用drawable兼容所有屏幕尺寸(idpi,mdpi,hdpi,xhdpi,xxhdpi)
- 使用Spring Boot构建独立的OAuth服务器(三)
- React context 丢失问题
- ftp端口号_ftp端口号,完成ftp更改端口号只需5步
- 中小型企业无线网络设计
- 入侵手游服务器修改数据库,如何入侵手游服务器数据库
- 替罪羊树的原理及实例
- 【收藏】2018-2019届互联网大厂公司校招薪资汇总,基本年薪都在20万以上
- 小程序地图定位,打开地图导航,选择位置
- MATLAB与DSP(C6657)的TCP/IP通信实现
- (Modern Family S01E01) Part 4 PhilClaire Luke射Alex / Haley邀请Dylan
- 龙之战神微信登录服务器,龙之战神微信登录版
- k8s进阶篇-云原生存储ceph
- Centos 7 报 “警告:/var/tmp/rpm-tmp.3cVIdT: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY”
- android 环信红包异常,环信上线新特征:阅后即焚+消息撤回+红包