2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 x!=a
Сообщение17.07.2007, 09:43 
Уважаемые гуру, какие пути решения могут быть.
x!=a
Спасибо :D

 
 
 
 
Сообщение17.07.2007, 10:06 
Аватара пользователя
:evil:
Относительно $a$? :)

Серьезно, какое решение интересует: численное, асимптотическое, для каких $a$ (порядок)… ?

 
 
 
 
Сообщение17.07.2007, 10:21 
a - любое из R

 
 
 
 
Сообщение17.07.2007, 17:16 
Аватара пользователя
:evil:
Тогда $x = \Gamma^{-1}(a)-1$.

Учтите, что $\Gamma$ не обращается однозначно, Вам придется выбирать одно из бесконечно многих решений.

См. mathworld.

 
 
 
 
Сообщение18.07.2007, 08:57 
Спасибо за ссылку :)
Но сдается мне бантик тот же, только вид сбоку :roll:
Если к примеру ограничиться для x и a множеством N, то можно ли определить x однозначно без табличных методов? Есть ли формулы не преобразующие задачу к виду x^x ? Пусть с некоторой потерей точности.
З.Ы. или x^x = a решается "устно" ?

 
 
 
 
Сообщение18.07.2007, 10:18 
Аватара пользователя
eprst писал(а):
Если к примеру ограничиться для x и a множеством N, то можно ли определить x однозначно без табличных методов?
Функция n! монотонно и быстро возрастает. Если, начиная с n=1, последовательно вычислять n! , то наступит счастливый момент, когда станет верным равенство n! =а или неравенство n!>a. Таким образом, для каждого натурального а задача решается за конечное (и несложно оцениваемое сверху) число шагов.

 
 
 
 
Сообщение18.07.2007, 11:14 
Brukvalub писал(а):
Если, начиная с n=1, последовательно вычислять n!

А в чем принципиальное отличие от табличных методов? Загнать в елеметарный while строчку кода слишком просто.
Если переходить к алгоритму, то как решить задачу, что бы для любого a (ограничения см выше) число шагов было бы одинаковым +/- 5-6 :) . Т.е некое аналитическое выражение.

 
 
 
 
Сообщение18.07.2007, 18:13 
Аватара пользователя
:evil:
Ну, пойдите каким-нибудь итеративным путем. Например, $x_0 = \ln a$, $x_{k+1} = \frac {x_k \ln a}{\ln(x_k!)}$. Если не хочется возиться с $\Gamma$, можно округлять результат вычисления.

Я проверил: для $100!$ получается $4$ итерации, для $123456!$$6$.

P.S. Для $x^x$ все еще проще: $x_{k+1} = \frac {\ln a }{\ln(x_k)}$. Дальше можно строить разложение в ряд (но не Тейлора) по $(\ln\ln a)^{-1}$. Но имеет очень ограниченное значение…

P.P.S. Вместо факториала можно использовать формулу Стирлинга, и жизнь еще упроститься: $\ln (x!) = \ln (\sqrt{2\pi n}(\frac{n}{\rm e})^n)+\frac1{12}n^{-1}-\frac1{360}n^{-3}+\frac1{1260}n^{-5}-\frac1{1680}n^{-7}…$

 
 
 
 
Сообщение19.07.2007, 10:51 
незваный гость писал(а):
Например, $x_0 = \ln a$, $x_{k+1} = \frac {x_k \ln a}{\ln(x_k!)}$.

Если не сложно поясните , пусть x!=100, то на каком k остановиться? :lol:
Или надо проверять каждый полученный x_{k}?
незваный гость писал(а):
P.P.S. Вместо факториала можно использовать формулу Стирлинга, и жизнь еще упроститься: $\ln (x!) = \ln (\sqrt{2\pi n}(\frac{n}{\rm e})^n)+\frac1{12}n^{-1}-\frac1{360}n^{-3}+\frac1{1260}n^{-5}-\frac1{1680}n^{-7}…$

Я так понял в вашей записи x=n (ru.wikipedia.org/wiki/Факториал).
И значит надо в результате решить n^n=b, где b=f(a). И все опять сводится к пояснению, просьба о котором была выше. :lol:

 
 
 
 
Сообщение19.07.2007, 18:46 
Аватара пользователя
:evil:
eprst писал(а):
Если не сложно поясните , пусть x!=100, то на каком k остановиться? Laughing

1) А на каком Вы хотите? Вы знаете, что 100 не является факториалом целого числа. Поэтому вопрос: а какой, собственно, ответ Вы ожидаете? Точный? Так он приведен выше, через обращение $\Gamma$-функции. Что $a$ не является факториалом? это можно проверить исходя из знакопеременности ошибки: если интервал $(x_{k}, x_{k+1})$ не содержит целого числа, то $a$ не является факториалом целого.

2) Итеративный метод сходится заметно медленнее для небольших $a$. В частности, при $a=100$ потребовалось $28$ итераций, чтобы получить ответ с точностью $10^{-3}$. Мой ответ (4) итерации относился к (а) округлению результатов каждой итерации, и (б) к $a = 100!$ (а не $a=100$).

Пожалуй, моя рекомендация (в предыдущем сообщении) применять округление не хороша. При точном факториале она работает, но при неточном (скажем, $a = 10!+1$) может зациклиться.

3) При $a \leq 10$ итеративный процесс и вовсе расходится.

4) $\Gamma^{-1}$ не выражается в замкнутой форме через элементарные функции, если Вы это имеете в виду. То же, я думаю, относится и к решению $x^x = a$.

eprst писал(а):
Я так понял в вашей записи x=n

Поняли правильно. Ошибся, бывает это со мной.

 
 
 
 
Сообщение19.07.2007, 20:15 
Большое спасибо за внимание к теме. Буду ковырять Г-ф-цию.
З.Ы. а "факториал не целого числа" с т.з. определения nonsence :D (в смысле звучит также загадочно и непонятно)
З.З.Ы переход от Г к факториалу тоже загадочен, есть ли там оговорка о кратности аргумента еденице ?:D

 
 
 
 
Сообщение19.07.2007, 21:43 
Аватара пользователя
:evil:
Обычное понимание выражения «факториал нецелого числа» основано на тождестве $n! = \Gamma(n+1)$.

$\Gamma$ определена на $\mathbb C $ исключая 0 и множество отрицательных целых чисел.

 
 
 [ Сообщений: 12 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group