我正在尝试使用WolframAlpha来解决变量。
我有
u(k, r) = (900-3k)r^(k-1)
和
s(n, r) = sum u(k, r), k=1 to n
我想用
解决r问题s(5000, r) = -600000000000
我尝试了各种各样的咒语,但似乎无法让它发挥作用。我甚至无法定义s
来评估它。
如果您在意,那就是解决这个问题:http://projecteuler.net/index.php?section=problems&id=235
答案 0 :(得分:2)
警告:下面有剧透! 在用u(k,r)代入之后,你应该要求WA完全简化s(n,r)的表达式。应该给出
(3 (299 - 300 r + r^n (-299 + n + 300 r - n r)))/(-1 + r)^2
求解最终的相等就是找到(高度)多项式的根:
299 + 200000000000 (-1 + r)^2 + (4701 - 4700 r) r^5000 == 300 r
其中r != 1
因为那是原始表达的极点。注意,r必须是正的,以便正二次方被高次项否定。绘制函数显示r < 1
为正,r >~ 1
为负,因此解决方案超过r=1
。现在更改变量以便x = r-1
并查看x=0
附近:
200000000000 x^2 + (1 + x)^5000 (1 - 4700 x) - 1 - 300 x == 0
这应该是启发性的:
Plot[200000000000 x^2 + (1 + x)^5000 (1 - 4700 x) - 1 - 300 x, {x, 0, 0.003}]
使用具有良好猜测的FindRoot可以x=0.002322108633
或r=1.002322108633
。
WA命令如下。 首先我用
FullSimplify[Sum[(900-3k)r^(k-1),{k,1,n]]
然后你必须重新输入它吐出的表达式:
Plot[(3 (299 - 300 r + r^5000 (-299 + 5000 + 300 r - 5000 r)))/(-1 + r)^2 + 6000000000,{r,-2,2}]
此时我用x + 1手动替换r:
Plot[200000000000 x^2 + (1 + x)^5000 (1 - 4700 x) - 1 - 300 x, {x, 0, 0.003}]
解决根问题:
FindRoot[200000000000 x^2 + (1 + x)^5000 (1 - 4700 x) - 1 - 300 x, {x, 0.0023}]
这没有给出足够的精确度,这就是你只能使用WA。您可以尝试减去WA给你的前几个数字,并用y = x + 0.00232211做另一个替换以得到接下来的几位数,但这对我来说太麻烦了。