как получить наилучшую приближенную дробь для вещественного числа в математике - PullRequest
3 голосов
/ 20 января 2011

Если я хочу получить наилучшую приблизительную дробь / рациональное значение для заданного действительного числа и указанного максимального знаменателя в виде целого числа, как это сделать в Mathematica?Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 08 марта 2011

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

Давайте использовать конвергенты для аппроксимации пи и квадратного корня из двух.

ClearAll[approximate];

approximate[r_, nConvergents_: 8, precision_: 10] := 
   With[{c = Convergents[ContinuedFraction[r, nConvergents]]}, 
   TableForm[Transpose[{c, N[r - c, precision]}], 
   TableHeadings -> {None, {Row[{"approximation of ", r}], "error"}}]]

Вот первые 8 конвергентов для пи:

approximate[Pi]

approximate pi

Вот первые 8 конвергентов для Sqrt[2]:

approximate[Sqrt[2]]

approximate root 2

Последовательные слагаемые ошибки сжимаются и изменяются по мере продвижения сходимости.

В approximate вы можете по желанию указать желаемое количество конвергентов и точность.

Наслаждайтесь.


Вот дополнительная документация о продолжающихся фракциях, включая некоторые прекрасные демонстрации.

3 голосов
/ 20 января 2011

Посмотрите на справку для Rationalize. RootApproximant может быть также полезно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...