polylib:: minpoly

Аппроксимируйте минимальный полином

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

polylib::minpoly(a, n, x)

Описание

polylib::minpoly(a, n, x) вычисляет одномерный полиномиальный f в переменной x степени n с целочисленными коэффициентами, таким образом, что a равняется корню f до точности, данной DIGITS и таким образом, что сумма квадратов его коэффициентов минимальна среди всех полиномов с этим свойством.

Взаимодействия среды

polylib::minpoly чувствителен к переменной окружения DIGITS.

Примеры

Пример 1

Мы вычисляем полином степени 4, который имеет корень близко к PI (до 6 десятичных цифр) и маленькие целочисленные коэффициенты:

DIGITS:=6: polylib::minpoly(PI, 4, x); delete DIGITS:

Если корень должен быть еще ближе к PI, большие коэффициенты необходимы:

DIGITS:=20: polylib::minpoly(PI, 4, x); delete DIGITS

Параметры

a

Арифметическое выражение, которое может быть преобразовано в число с плавающей точкой

n

Положительное целое число

x

Идентификатор

Возвращаемые значения

polylib::minpoly возвращает полином в x. Его содействующим звонком является Expr, все его коэффициенты являются целыми числами.

Ссылки

Lenstra/Lenstra/Lovasz, Учитывая полиномы с рациональными коэффициентами, Математикой. Энн. 261 (1982), стр 515–534.

Алгоритмы

Проблема уменьшает до нахождения самого короткого целочисленного вектора в решетке, где e i обозначает вектор с e i   [j] = δ i, j (кронекеров символ). Эта проблема решена с помощью алгоритма Lenstra/Lenstra/Lovasz.

Смотрите также

Функции MuPAD