2

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

4

1 に答える 1

2

警告:下のネタバレ! u(k、r)を代入した後、WAにs(n、r)の式をFullSimplifyするように依頼する必要があります。それは与えるべきです

(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}]

この時点で、rを手動でx+1に置き換えました。

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で別の置換を行って次の数桁を取得することを試みることができますが、それは私が試すには面倒です。

于 2009-10-28T19:51:56.660 に答える