问题:如何使这些振荡成为第一个数字或表达式+下一个是 - 后面的那个是+依此类推等等下面提供的列表(不使用特殊的振荡功能)如果一个人甚至存在)。
我目前正在获得输出,如下所示:
x + x^3/6 + x^5/120 + x^7/5040 + x^9/362880
1. {1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69,
73, 77, 81, 85, 89}
预期产出:
x - x^3/6 + x^5/120 - x^7/5040 + x^9/362880
2. {1, -5, 9, -13, 17, -21, 25, -29, 33, -37, 41, -45, 49, -53, 57, -61, 65, -69, 73, -77, 81, -85, 89}
Sum[x^j/Factorial[j], {j, 1, 9, 2}];
myOsc = Table[i, {i, 1, 89, 4}];
答案 0 :(得分:1)
Sum[If[OddQ[(j - 1)/2], -x^j, x^j]/Factorial[j], {j, 1, 9, 2}]
x - x ^ 3/6 + x ^ 5/120 - x ^ 7/5040 + x ^ 9/362880
myOsc = Table[If[OddQ[(i - 1)/4], -i, i], {i, 1, 89, 4}]
{1,-5,9,-13,17,-21,25,-29,33,-37,41,-45,49,-53,57,-61,65,-69,73 ,-77,81,-85,89}
答案 1 :(得分:1)
一项小改进,不需要额外的s变量:
MapIndexed[(-1)^(1 + #2[[1]])*#1 &, x + x^3/6 + x^5/120 + x^7/5040 + x^9/362880]
x - x ^ 3/6 + x ^ 5/120 - x ^ 7/5040 + x ^ 9/362880
答案 2 :(得分:0)
s = -1; Map[(s *= -1) # &, x + x^3/6 + x^5/120 + x^7/5040 + x^9/362880]
x - x ^ 3/6 + x ^ 5/120 - x ^ 7/5040 + x ^ 9/362880
注意事项mathematica将首先以规范的顺序表达您的表达。因此,例如,如果你像这样键入它:
s = -1; Map[(s *= -1) # &,x^3/6 + x + x^5/120 + x^7/5040 + x^9/362880]
你得到相同的结果
x - x ^ 3/6 + x ^ 5/120 - x ^ 7/5040 + x ^ 9/362880