Записи с меткой «sqrt»

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

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

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

Примеры применения этой функции:
<<NumberTheory`FactorlntegerECM`
FactorIntegerECM[123456789]
34227
3*5*7*9
945
FactorlntegerECM[945]
189
Функции теории чисел — NumberTheory Functions
В подпакете NumberTheoryFunctions имеется ряд функций, относящихся к теории чисел:

  • SquareFreeQ[n] — дает True, если п не имеет квадратичного фактора, и False в ином случае;
  • NextPrime [n] — дает наименьшее простое число, превосходящее п;
  • ChineseRemainderTheorem[listl, Iist2.] — дает наименьшее неотрицательное целое г, такое что Mod [r, Iist2] ==list1;
  • SqrtMod [d, n] — дает квадратный корень из (d mod п) для нечетного n;
  • PrimitiveRoot [n] — дает примитивный корень п;
  • QuadraticRepresentation [d, n] — дает решение {х,у} для уравнения х 2 + (d у) 2 ==п для нечетного п и положительного d;
  • ClassList[d] — дает список неэквивалентных квадратичных форм дискриминанта d для отрицательного и свободного от квадратов целого d вида 4n+1;
  • ClassNumber [d] — дает список неэквивалентных квадратичных форм дискриминанта d;
  • SumOf Squares [d, n] — дает число представлений целого числа п в виде суммы d квадратов;
  • SumOf SquaresRepresentations [d, n] — дает список представлений целого числа п в виде суммы d квадратов, игнорируя порядок и знаки.

Примеры применения данных функций приведены ниже:
<<NumberTheory`NumberTheoryFunctions`
SquareFreeQ[2*3*5*7]
True SquareFreeQ[50]
False
NextPrime[1000000]
1000003
ChineseRemainderTheorem[{0, 1, 2}, {4, 9,
244
ChineseRemainderTheorem[Range[16], Prime[Range[16]]]
20037783573808880093
SqrtMod[3, 11]
5
SqrtMod[2, 10^64 +57]
876504467496681643735926111996
54610040103361197677707490912
2865
PrimitiveRoot[7]
3
QuadraticRepresentation[l, 13]
{3,. 2}
ClassList[-19]
{{1, 1, 5}}
ClassNumber[-10099]
25
SumOfSquaresRepresentations[3, 100]

{{0, 0, 10}, (0, 6, 8}}

Решение линейных уравнений с трехдиагональной матрицей — Tridiagonal

Решение линейных уравнений с трехдиагональной матрицей —Tridiagonal
При решении линейных уравнений часто встречаются матрицы особой формы — трехдиагональные. Подпакет Tridiagonal имеет функцию для решения линейных уравнений с такой матрицей:

  • TridiagonalSolve [a,b, с, г] — решение системы линейных уравнений с трехдиагональной матрицей m. х==г (диагонали представлены векторами а, b и с, вектор свободных членов — г).

Пример применения данной функции:
<<LinearAlgebra` Tridiagonal`
{а, b, с} = {{1, 2, 3}, {4, 5, б, 7}, {10, 9, 8}}
{{1, 2, 3}, {4, 5, 6, 7}, {10, 9, 8}}
m = Table[Switch[ j-i, -1, a[[j]], 0, b[[jj], 1, c[[j-l]], _, 0], {i, 4}, {j, 4}]//MatrixForm
TridiagonalSolve[a, b, c, {8, 3, 4, 5}
С учетом представленных функций и функций ядра набор матричных средств системы Mathematica является одним из наиболее полных. В области решения задач в численном виде он несколько уступает лишь специализированной матричной системе MATLAB 5.0/5.3.
Расширение в теории чисел
 
Мы уже описывали уникальные возможности систем Mathematica 3/4 в области обработки чисел и численных вычислений. Эти возможности существенно расширяет пакет NumberTheory, содержащий функции, реализующие алгоритмы теории чисел. Данный раздел посвящен знакомству с этим пакетом. далее…