libertywall 发表于 2018-1-9 11:15:45

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

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

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

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

落叶 发表于 2018-1-9 11:50:51

我不知道数学怎么解决,假如没有理论要求的话编程应该可以轻松的解决。

libertywall 发表于 2018-1-9 13:22:28

谢谢回复!现在是逐项计算,在工程上效率太低,不过可能就是没有解析表达式

落叶 发表于 2018-1-9 19:30:28

本帖最后由 落叶 于 2018-1-9 20:05 编辑

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




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



计算方法:
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),可以把算式中或代码中多余的除掉。




gxqcn 发表于 2018-1-10 07:54:57

无法给出简单的表达式,不能从数学算法方面给出帮助。

但可以给出如下编程优化方面的建议:
1、A*k、k+d 均可转化为累加运算;
2、两次除以 k+d,不如先缓存其倒数,然后分别乘之。
3、分别计算 sin、cos 比较耗时,看是否有 sincos() 函数可供调用;若无,考虑自己用汇编写一个。

落叶 发表于 2018-1-10 09:12:11

确实可以改良一下:
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;
我的计算器编程模式的最终计算是调用表达式计算总函数,是个非常慢的程序,在加入编程模式时,参照汇编指令增加了一些简单的指令支持,所以功能有限。不能进行复杂的操作。
当时加入编程模式也只是让我的程序显得高大时尚,或显得牛,也有增加编程经验的想法。
我实际上是不建义普通计算器有这个功能的,一是难以做好,二是即使有一定编程基础的用户使用这个功能都难以入手,更不要说普通用户了!

mathe 发表于 2018-1-10 10:27:37

sin和cos都只需要计算一个即可,即只计算sin(x),cos(x),其余的用倍角公式计算即可

mathe 发表于 2018-1-10 10:32:32

利用递推sin(kx)=sin((k-1)x)cos(x)+cos((k-1)x)sin(x)
余弦类似

gxqcn 发表于 2018-1-10 10:37:12

是的,用三角函数的和角公式迭代即可。

wayne 发表于 2018-1-10 10:51:35

libertywall 发表于 2018-1-9 13:22
谢谢回复!现在是逐项计算,在工程上效率太低,不过可能就是没有解析表达式
E^(I A k) = cos(A k) +I sin(A k), 用在线的Mathematica计算了下Sum
答案是:
LerchPhi - (E^(I A))^(1 + N) LerchPhi
软件好像不可继续化简.关于LerchPhi函数,参考 http://mathworld.wolfram.com/LerchTranscendent.html
页: [1] 2
查看完整版本: 三角函数求和问题,泣谢!