数学研发论坛

 找回密码
 欢迎注册
查看: 204|回复: 23

[求助] 三角函数求和问题,泣谢!

[复制链接]
发表于 2018-1-9 11:15:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?欢迎注册

x
请教高手,我是工科出身缺乏数学基础,在工作中需要计算以下两个三角函数求和:

Sin(A*k)/(k+d) 和Cos(A*k)/(k+d),其中k = 0,1,…,N。

请教专家,这两个求和是否能得到解析表达式? 如果有解析表达式,就太方便了,万分感谢!

点评

涉及到LerchPhi函数  发表于 2018-1-9 11:44

评分

参与人数 1金币 +20 收起 理由
gxqcn + 20 首帖奖励,欢迎常来。

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-1-9 11:50:51 | 显示全部楼层
我不知道数学怎么解决,假如没有理论要求的话编程应该可以轻松的解决。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2018-1-9 13:22:28 | 显示全部楼层
谢谢回复!现在是逐项计算,在工程上效率太低,不过可能就是没有解析表达式
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-1-9 19:30:28 | 显示全部楼层
本帖最后由 落叶 于 2018-1-9 20:05 编辑

这个是用我的计算器当k=3时,用表达式功能计算的结果。

无标题.png


这个是用我的计算器当k=3时,用编程功能计算的结果。

无标题2.png

计算方法:
1,选取编程模式;
2,把下面代码粘贴到计算器上;

a=5;d=7;k=3;
y=0;
c=k+1;
line1:
y=y+sin(a*k)/(k+d)+cos(a*k)/(k+d);
k=k-1;
c=c-1;
jnz line1;
answer<y;

3,把a=5;d=7;k=3;这三个变量a,d,k后面的数字换成你需要的数字就行了,
4,然后点计算


假如你的意思是单独算sin(a*k)/(k+d)或cos(a*k)/(k+d),可以把算式中或代码中多余的除掉。




毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 7 天前 | 显示全部楼层
无法给出简单的表达式,不能从数学算法方面给出帮助。

但可以给出如下编程优化方面的建议:
1、A*k、k+d 均可转化为累加运算;
2、两次除以 k+d,不如先缓存其倒数,然后分别乘之。
3、分别计算 sin、cos 比较耗时,看是否有 sincos() 函数可供调用;若无,考虑自己用汇编写一个。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 7 天前 | 显示全部楼层
确实可以改良一下:
a=5;d=7;k=3;y=0;c=k+1;
line1:
g=a*k;
f=k+d;
y=y+sin(g)/(f)+cos(g)/(f);
k=k-1;
c=c-1;
jnz line1;
answer<y;
我的计算器编程模式的最终计算是调用表达式计算总函数,是个非常慢的程序,在加入编程模式时,参照汇编指令增加了一些简单的指令支持,所以功能有限。不能进行复杂的操作。
当时加入编程模式也只是让我的程序显得高大时尚,或显得牛,也有增加编程经验的想法。
我实际上是不建义普通计算器有这个功能的,一是难以做好,二是即使有一定编程基础的用户使用这个功能都难以入手,更不要说普通用户了!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 7 天前 来自手机 | 显示全部楼层
sin和cos都只需要计算一个即可,即只计算sin(x),cos(x),其余的用倍角公式计算即可
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 7 天前 来自手机 | 显示全部楼层
利用递推sin(kx)=sin((k-1)x)cos(x)+cos((k-1)x)sin(x)
余弦类似

点评

sorry, 狂汗,没仔细看....  发表于 7 天前
因为我的程序是表达式解析运算,每一个语句调用一次总函数,一般情况下是语句越多效率越低,当然若是精度要求高的情况下,减少三角函数的运算是不错的选择。  发表于 7 天前
我只是建议他将他伪码中sin(kx)和cos(kx)替换成用递推式计算。两次乘法应该远远快于三角函数运算  发表于 7 天前
有分母  发表于 7 天前
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 7 天前 | 显示全部楼层
是的,用三角函数的和角公式迭代即可。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 7 天前 | 显示全部楼层
libertywall 发表于 2018-1-9 13:22
谢谢回复!现在是逐项计算,在工程上效率太低,不过可能就是没有解析表达式

E^(I A k) = cos(A k) +I sin(A k), 用在线的Mathematica计算了下
  1. Sum[E^(I A k)/(k + d), {k, 0, N}]
复制代码

答案是:
LerchPhi[E^(I A), 1, d] - (E^(I A))^(1 + N) LerchPhi[E^(I A), 1, 1 + d + N]

软件好像不可继续化简.关于LerchPhi函数,参考 http://mathworld.wolfram.com/LerchTranscendent.html
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|Archiver|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2018-1-17 11:34 , Processed in 0.086280 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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