数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 4693|回复: 5

已知,sin(x)的值,现在求sin(x^n)的值

[复制链接]
发表于 2012-3-7 07:12 | 显示全部楼层 |阅读模式
缘由:最近出于好奇,在写一个函数的时候遇到下面这个问题,因为x^n已经超出了计算机编程语言的精度范围,所以需要通过sin(x)来表示sin(x^n)的值,自己实在无法推导出来,特在这里来求助!
问题:已知,sin(x)的值,现在求sin(x^n)的值?(n为自然数)请问如何求。等待您的回答。
发表于 2012-3-7 10:43 | 显示全部楼层

已知,sin(x)的值,现在求sin(x^n)的值

[这个贴子最后由luyuanhong在 2012/03/07 11:32am 第 1 次编辑]
下面引用由shikang9992012/03/07 07:12am 发表的内容:
缘由:最近出于好奇,在写一个函数的时候遇到下面这个问题,因为x^n已经超出了计算机编程语言的精度范围,所以需要通过sin(x)来表示sin(x^n)的值,自己实在无法推导出来,特在这里来求助!
问题:已知,sin(x)的值,现在求sin(x^n)的值?(n为自然数)请问如何求。等待您的回答。
在实际应用中,不大可能会遇到“求 sin(x^n) 的值”的问题。
不知道你的意思,是否真的要求 sin(x^n) 的值?还是要求 [sin(x)]^n 的值?
如果真的要求 sin(x^n) 的值,可以用下列公式:
sin(x^n) = sin{x^n-2π[x^n/(2π)]} ,
其中[x]是取整符号,表示取不大于 x 的最大整数。
 楼主| 发表于 2012-3-7 15:10 | 显示全部楼层

已知,sin(x)的值,现在求sin(x^n)的值

1、非常感谢您的回答。
2、其实在实际当中是遇不到上面这个问题。主要是我最近在考虑在大数的运算当中,对于一个大数x,求sin(x)的近似值的时候,在考虑的算法当中出现了sin(y^n)的情形或者sin(y*z)这种情形。因为按照自己的想法只要知道了sin(y),cos(y),sin(z),cos(z)的情况下,能推出sin(y*z)或者sin(y^n),则求一个大数的正弦值编程是很容易实现的。
3、对于你推荐的那个公式,不是我不想用.因为在大数的正弦运算时,因为π值的原因,很可能造成很大的计算误差。
发表于 2012-3-7 15:32 | 显示全部楼层

已知,sin(x)的值,现在求sin(x^n)的值

sin(y),cos(y),为周期函数,那个公式没有误差或者说误差比你说的法小吧,只要求除以2π的余数部分的值就行吧,我的理解是这样,我1直都是这么做的.还要看1下该角所在的象限,决定符号问题,是吗?
 楼主| 发表于 2012-3-7 18:53 | 显示全部楼层

已知,sin(x)的值,现在求sin(x^n)的值

回楼上:误差是很大的.这里我把我在贴吧里的一个解释复制如下,如果有出错的地方可以指正。
解释:
设x^n=(2π)*N+M 在这里M是在[0,2π)之间.则sin(x^n)=sin(M),设我们计算机里面的π的数据是pi,则
A:x^n/(2*pi)=N*π/pi+M/(2*pi)
由于x^n是非常大的一个数,则x^n/(2*pi)也是一个非常大的数,而M/(2*pi)是属于[0,1),即M/(2*pi)相对于N*π/pi小很多,所以A式可以化成
B:x^n/(2*pi)=N*π/pi
现在我们来令pi等于真实的π与非真实的pi来作比较,看下x^n/(2*pi)的误差。
C:|x^n/(2*π)-x^n/(2*pi)|=|N*π/π-N*π/pi|=|N*(pi-π)/pi|=|(N/pi)*(pi-π)|
对于C式,由于N很明显是一个很大的数据,则令L=N/pi明显也是一个很大的数据,我们这里令K=|pi-π|,则C式化成
D:|x^n/(2*π)-x^n/(2*pi)|=L*K
注意到了吗,在一般的计算机里,pi=3.14159265358979,按这个值来算K恐怕得大于10^(-15)
但是L可能是百上千位的。那它们相乘的结果也必定是大数量级的,即这个误差很大。这样x^n/2π已经失效。
当然,即使你增加pi的位数,使K变得更小,但是pi的位数毕竟是有限的。对于未知的x^n来说,出现的L也是未知的,即L*K仍然很大可能是大数量级的。所以我没有考虑这个方法计算大数的正弦值
发表于 2012-3-7 21:17 | 显示全部楼层

已知,sin(x)的值,现在求sin(x^n)的值

这位施主是想用快速傅立叶变换吧?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-7-25 08:38 , Processed in 0.092278 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表