WolframAlpha: решить несколько функций - PullRequest
2 голосов
/ 28 октября 2009

Я пытаюсь использовать WolframAlpha для поиска переменной.

У меня есть

u(k, r) = (900-3k)r^(k-1)

и

s(n, r) = sum u(k, r), k=1 to n

и я хочу решить для г с

s(5000, r) = -600000000000

Я пробовал разные заклинания, но не могу заставить их работать. Я даже не могу определить s, чтобы оценить его.

Если вам не все равно, это решить эту проблему: http://projecteuler.net/index.php?section=problems&id=235

1 Ответ

2 голосов
/ 28 октября 2009

ВНИМАНИЕ: Спойлер ниже! Вы должны попросить WA полностью упростить выражение s (n, r) после того, как вы подставите в него выражение u (k, 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}]

В этот момент я вручную заменил 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, чтобы получить следующие несколько цифр, но это слишком утомительно, чтобы я пытался.

...