Иллюстрированный самоучитель по Mathematica 3/4

Расширение в теории чисел. Цепные дроби (ContinuedFractions). Улучшенное разложение на простые множители (FactorlntegerECM).

Мы уже описывали уникальные возможности систем Mathematica 3/4 в области обработки чисел и численных вычислений. Эти возможности существенно расширяет пакет NumberTheory, содержащий функции, реализующие алгоритмы теории чисел. Данный раздел посвящен знакомству с этим пакетом.


Следующие функции подпакета ContinuedFractions служат для представления чисел в виде цепных дробей или для формирования цепной дроби из списков:

  • ContinuedFraction [х] – возвращает цепную дробь для рационального числа х;
  • ContinuedFraction [х, n] – возвращает цепную дробь для числа х с числом членов n;
  • ContinuedFractionForm [{а0, a1,…}] – создает цепную дробь из списка {a0,a1,…};
  • Normal [ContinuedFractionForm[ {а0, a1,…}]] – представление в нормальной форме.

Примеры разложения чисел на цепные дроби:

<<NumberTheory`
  
ContinuedFractionss ContinuedFraction[123/1234] //ContinuedFractionForm
ContinuedFraction[Sqrt[5], 10] //ContinuedFractionForm 2,
ContinuedFraction[GoldenRatio, 6 ] //ContinuedFractionForm
  
Table[ Normal[ContinuedFractionForm[Table[1, {n}]]], {n, 9}]
% -N[GoldenRatio]
{-0.618034, 0.381966, -0.118034, 0.0486327,
-0.018034, 0.00696601, -0.00264937, 0.00101363,-0.00038693}

В подпакете имеются также следующие функции:

  • ToPeriodicForm[x] – дает десятичное представление для рационального числа 0 < х < 1;
  • ToPeriodicForm [х, b] – дает представление рационального числа х числом с основанием b;
  • PeriodicForm[ {а0,…}, {am,…}] – дает периодическую форму представления списков;
  • PeriodicForm[ {а0,…}, {am,…},b] – дает периодическую форму представления списков с основанием b;
  • Normal [ PeriodicForm [{а0,…}, {am,…}]] – преобразование в нормальную форму;
  • Normal [PeriodicForm[ {а0,…}, {am,…},b] ] – преобразование в нормальную форму с основанием b.

Ниже представлены примеры применения этих функций:

ToPeriodicForm[ 1/50 ]
0.02
  
ToPeriodicForm[ 1/23 ]
0.0434782608695652173913
  
PeriodicForm[1.2.3.4]
0.1234
  
RealDigits[ N[ 1/23, 25 ] ]
{{4, 3, 4, 7, 8, 2, 6,
0, 8, 6, 9, 5, 6, 5, 2, 1, 7, 3, 9, 1, 3, 0, 4, 3, 5},
-1}
  
ToPeriodicForm[ 1/20, 2 ]
0.000011 ToPeriodicForm[ 1/127 ]
0.007874015748631496062992l2598425l968503937
  
Normal[%]
1/127

В системе Mathematica 4 функция ContinuedFraction стала встроенной. Имеется также встроенная функция FromContinuedFraction [list], которая строит цепную дробь по элементам списка list.

Улучшенное разложение на простые множители (FactorlntegerECM)

Алгоритм разложения чисел на простые множители, реализованный в ядре Mathematiica 3, способен за 3 часа (на рабочих станциях) разлагать числа, имеющие до 18 цифр. Улучшенный алгоритм в подпакете FactorlntegerECM позволяет увеличить максимальное число цифр до 40. Реализуется разложение следующей функцией:

  • FactorIntegerECM[n] – возвращает один из делителей числа n. Возможны опции FactorSize › q, CurveNumber › b и CurveCountLimit › c.

Примеры применения этой функции:

<<NumberTheory`FactorlntegerECM`
  
FactorIntegerECM[123456789]
34227
3*5*7*9
945
  
FactorlntegerECM[945]
189
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.