三角函数求和问题,泣谢!
请教高手,我是工科出身缺乏数学基础,在工作中需要计算以下两个三角函数求和:Sin(A*k)/(k+d) 和Cos(A*k)/(k+d),其中k = 0,1,…,N。
请教专家,这两个求和是否能得到解析表达式? 如果有解析表达式,就太方便了,万分感谢!
我不知道数学怎么解决,假如没有理论要求的话编程应该可以轻松的解决。 谢谢回复!现在是逐项计算,在工程上效率太低,不过可能就是没有解析表达式 本帖最后由 落叶 于 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),可以把算式中或代码中多余的除掉。
无法给出简单的表达式,不能从数学算法方面给出帮助。
但可以给出如下编程优化方面的建议:
1、A*k、k+d 均可转化为累加运算;
2、两次除以 k+d,不如先缓存其倒数,然后分别乘之。
3、分别计算 sin、cos 比较耗时,看是否有 sincos() 函数可供调用;若无,考虑自己用汇编写一个。 确实可以改良一下:
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;
我的计算器编程模式的最终计算是调用表达式计算总函数,是个非常慢的程序,在加入编程模式时,参照汇编指令增加了一些简单的指令支持,所以功能有限。不能进行复杂的操作。
当时加入编程模式也只是让我的程序显得高大时尚,或显得牛,也有增加编程经验的想法。
我实际上是不建义普通计算器有这个功能的,一是难以做好,二是即使有一定编程基础的用户使用这个功能都难以入手,更不要说普通用户了! sin和cos都只需要计算一个即可,即只计算sin(x),cos(x),其余的用倍角公式计算即可 利用递推sin(kx)=sin((k-1)x)cos(x)+cos((k-1)x)sin(x)
余弦类似 是的,用三角函数的和角公式迭代即可。 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