算出cos之后再求sin

查看: 3263|回复: 5
[已经解决]
UID237696阅读权限11最后登录记录积分2贡献度0 VIP0 彩虹碎片0 经验1705 帖子精华0在线时间58 小时注册时间
一年级, 积分 2, 距离下一级还需 2 积分
贡献度0 彩虹碎片0 经验1705 帖子精华0在线时间58 小时注册时间
用计算机输入tan(45)会显示1,电脑上输入Math.tan(45)会返回1.619775左右的数,怎么在ruby上实现数学中的tan、sin、cos计算呢?
UID219791阅读权限13最后登录记录积分11贡献度0 VIP0 彩虹碎片0 经验6957 帖子精华0在线时间237 小时注册时间
三年级, 积分 11, 距离下一级还需 9 积分
贡献度0 彩虹碎片0 经验6957 帖子精华0在线时间237 小时注册时间
45度=PI/4 = 3.14/4 !=45
看看网络,数不清的信息扑面而来,你知道了什么是冗余;看看每一天的生活,日复一日,许多的无奈,你理解了什么是缺陷;生命里充满了不可预知,明天将发生什么,谁也不知道,这就是动态。 ...
UID11686阅读权限14最后登录记录积分24贡献度0 VIP117 彩虹碎片0 经验24190 帖子精华2在线时间1461 小时注册时间
四年级, 积分 24, 距离下一级还需 16 积分
贡献度0 彩虹碎片0 经验24190 帖子精华2在线时间1461 小时注册时间
本帖最后由 DeathKing 于
14:28 编辑
Ruby(以及大多数语言一样),所使用的三角函数期望接受的是一个弧度数,而不是角度数。因此,求取45°角,你可以按照下面的方法:Math.tan(Math::PI/4)复制代码考虑到弧度与角度的转换关系:Arc = Degree / 180 * PI,可以定义下面的脚本,从此,可以使用xxxd形式的三角函数来计算某个角度的三角函数:module Math
&&def self.d2a(degree)
& & return degree.to_f * PI / 180
&&end
&&def self.a2d(arc)
& & return arc.to_f * 180 / PI
&&end
&&def self.sind(d)
& & return sin(d2a(d))
&&end
&&def self.cosd(d)
& & return cos(d2a(d))
&&end
&&# 其他三角函数诸此
end复制代码
See FScript Here:/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
UID237696阅读权限11最后登录记录积分2贡献度0 VIP0 彩虹碎片0 经验1705 帖子精华0在线时间58 小时注册时间
一年级, 积分 2, 距离下一级还需 2 积分
贡献度0 彩虹碎片0 经验1705 帖子精华0在线时间58 小时注册时间
本帖最后由 受pia专用ID 于
18:50 编辑
DeathKing 发表于
Ruby(以及大多数语言一样),所使用的三角函数期望接受的是一个弧度数,而不是角度数。因此,求取45°角, ...
t1 = Time.now
1000000.times {
&&a = Math.sind(32.)
p Time.now - t1 # 显示2.844
t1 = Time.now
1000000.times {
&&a = Math.sin(32.)
p Time.now - t1 #显示0.813
t1 = Time.now
1000000.times {
p Time.now - t1 #显示0.109
方法挺好,不过经上面的脚本测试sind的速度差不多是sin的1/3到1/4,我觉得我该学学弧度算法,这样快一点。
我的确得在意效率,两个原因:
1.我家电脑卡。
2.如果效率高,我做的系统可以同时容纳更多敌人,更多事件,更多子弹,有更大的地图。
UID11686阅读权限14最后登录记录积分24贡献度0 VIP117 彩虹碎片0 经验24190 帖子精华2在线时间1461 小时注册时间
四年级, 积分 24, 距离下一级还需 16 积分
贡献度0 彩虹碎片0 经验24190 帖子精华2在线时间1461 小时注册时间
受pia专用ID 发表于
t1 = Time.now
1000000.times {
&&a = Math.sind(32.)
考虑到Math::PI已经是个浮点数了,所以可以不需要显式的转化。所以代码可以优化为下述模式:module Math
&&def self.d2a(degree)
& & return degree * PI / 180
&&end
&&def self.a2d(arc)
& & return arc * 180 / PI
&&end
&&def self.sind(d)
& & return sin(d2a(d))
&&end
&&def self.cosd(d)
& & return cos(d2a(d))
&&end
&&# 其他三角函数诸此
&&
&&# 不借助与其他方法的One-line版
&&def self.ssind(d)
& & & & return sin(d * PI / 180)
&&end
end复制代码而你的测试使用的是两个意义上不同的值,所以不能作为比较的依据。我采用了Ruby内置的Benchmark模块,给出了一个精度很高的结果。测试的是求取45°角(π/4弧度)的正弦值。
环境是Ruby 1.9.2,OS是Windows XP Professional,测试结果如下:Rehearsal -----------------------------------------------------------
sin(0.4483)& &0.125000& &0.000000& &0.125000 (&&0.125000)
sin(Math::PI / 4)& && && &0.187000& &0.000000& &0.187000 (&&0.187500)
sind(45)& && && && && && &0.281000& &0.000000& &0.281000 (&&0.281250)
ssind(45)& && && && && &&&0.266000& &0.000000& &0.266000 (&&0.265625)
-------------------------------------------------- total: 0.859000sec
& && && && && && && && && && &user& &&&system& && &total& && &&&real
sin(0.4483)& &0.125000& &0.000000& &0.125000 (&&0.125000)
sin(Math::PI / 4)& && && &0.187000& &0.000000& &0.187000 (&&0.187500)
sind(45)& && && && && && &0.281000& &0.000000& &0.281000 (&&0.281250)
ssind(45)& && && && && &&&0.266000& &0.000000& &0.266000 (&&0.265625)
#--- 检测三个方法的输出是否一致
0.5475
0.5475
0.5475
0.5475复制代码得到的结果是,如果不是采用一个弧度的立即值,sind花的时间是sin的两倍(大概是花在方法的跳转上)。不过建议是,如果不是涉及到诸如3D游戏设计,就不要去在意效率了,何必把自己弄得如此苦逼呢?
See FScript Here:/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
UID57686阅读权限14最后登录记录积分26贡献度0 VIP2 彩虹碎片0 经验26327 帖子精华0在线时间947 小时注册时间
四年级, 积分 26, 距离下一级还需 14 积分
贡献度0 彩虹碎片0 经验26327 帖子精华0在线时间947 小时注册时间
最好还是现在就把把计算思维从角度转到弧度上。除了某些几何问题以外,数学也很少会用到角度,因为用弧度做很多计算时能使表达式以一种自然的形式呈现。像三角函数的泰勒展开式,欧拉公式等在参数是弧度时,最后得出的式子就简单明了,而如果用角度作参数,表达式各项通常就会多出诸如 PI/180 这样的额外因数,最后得出的式子就很难看。
su@:~& repeat 1 fortune
Matz is nice, so we are nice.
这里的今天,有我过往努力的见证~在计算器中,sin.cos.tan.ln.log.abs.exp.急用,用来做什么的呢?怎样使用呢?_百度作业帮
在计算器中,sin.cos.tan.ln.log.abs.exp.急用,用来做什么的呢?怎样使用呢?
用来做什么的呢?怎样使用呢?
前三个是三角函数,正弦,余弦和正切ln和log是对数,前者是以e为底abs是取绝对值exp是以e为底的指数函数这几个键一般高中大学会用吧,平时用的比较少,可以忽略教师讲解错误
错误详细描述:
已知0°<α<90°,探究sinα与cos(90°-α)的关系.(1)比较sin30°与cos60°及sin60°与cos30°的值,可以发现当α分别取30°,45°或60°时,sinα=cos(________);(2)用计算器验证:当α分别取10°,20°,50°,70°等值时,sinα与cos(90°-α)的关系;(3)利用Rt△ABC(如图)中∠A与∠B的关系说明结论sinA=cos(90°-A).
【思路分析】
根据锐角三角函数的概念,可以证明:一个角的正弦值等于它的余角的余弦值.
【解析过程】
(1)利用特殊角三角函数值可得:sin30°=cos60°,sin45°=cos45°,sin60°=cos30°,∴sinα=cos(90°-α);(2)用计算器计算可得:sin10°=cos80°,sin20°=cos70°,sin50°=cos40°,sin70°=cos20°,∴sinα=cos(90°-α);(3)∵,,∴sinA=cos(90°-A).
(1)90°-α;(2)sinα=cos(90°-α);(3)∵,,∴sinA=cos(90°-A).
掌握互为余角的两个角的锐角三角函数关系式:一个角的正弦值等于它的余角的余弦值.
电话:010-
地址:北京市西城区新街口外大街28号B座6层601
微信公众号
COPYRIGHT (C)
INC. ALL RIGHTS RESERVED. 题谷教育 版权所有
京ICP备号 京公网安备知道一个角的sin cos 怎么求这个角还有一个问题 为什么用计算器算cos或者sin的角度 只能算出一个角(在2π范围内不应该有两个吗)_百度作业帮
知道一个角的sin cos 怎么求这个角还有一个问题 为什么用计算器算cos或者sin的角度 只能算出一个角(在2π范围内不应该有两个吗)
还有一个问题 为什么用计算器算cos或者sin的角度 只能算出一个角(在2π范围内不应该有两个吗)
在[0°,360°]有两个.计算器算的是反三角,反三角函数是单调的,因此计算器只算出一个.
计算器中计算出来的角,是一一对应的想必你学高中函数的时候,y=f(x)这个f必须是一一对应的,因此这个地方也是一一对应的
arc cos可以求度数,用计算器求第二个问题没看明白
先求与其绝对值相等的锐角,再根据角所在象限求出[0,2π)或(-π,π]上的角(取最值时只有一个,其余情况有两个),如果限定了角的区间,则找出该区间内的角,如无限制,则需求出所有角,就是在上述后加上2kπ,k∈Z。计算器算出也是锐角,仍按上法处理即可。...
所以该怎么做出两个呢~。&我知道可以用公式x=kπ+(-1)k次方·arcsina.&k∈Zx=2kπ±arccosa.&k∈Z.x=kπ+arctga可是这样一个一个带进去看是不是太烦了&把题目做烦了所以怎么通过计算器&直接判断出两个解呢。</p...
用计算器求出锐角后&怎么求另外一个角0&0?另外 你知道这个方法吗<img class="ikqb_img" src="http://c./zhidao/wh%3D600%2C800/sign=dc5bd168aee98b7/8644ebf81a4c510f...泰勒公式推导 转载 计算器是如何计算sin、cos等科学函数的值呢 计算器是如何计算s..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
泰勒 公式推导
转载 计算器是如何计算sin、cos等科学函数的值呢
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 sin cos tan cot 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信