фактор

Синтаксис

F = factor(x)
F = factor(x,vars)
F = factor(___,Name,Value)

Описание

пример

F = factor(x) возвращает все неприводимые факторы x в векторном F. Если x является целым числом, factor возвращает главную факторизацию x. Если x является символьным выражением, factor возвращает подвыражения, которые являются факторами x.

пример

F = factor(x,vars) возвращает массив факторов F, где vars задает переменные интереса. Все факторы, не содержащие переменную в vars, разделены на первую запись F(1). Другие записи являются неприводимыми факторами x, которые содержат одну или несколько переменных от vars.

пример

F = factor(___,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары Name,Value. Этот синтаксис может использовать любой из входных параметров от предыдущих синтаксисов.

Примеры

Факторные целые числа

F = factor(823429252)
F =
           2           2          59         283       12329

К факторным целым числам, больше, чем flintmax, преобразуйте целое число в символьный объект с помощью sym. Затем поместите номер в кавычки, чтобы представлять его точно.

F = factor(sym('82342925225632328'))
F =
[ 2, 2, 2, 251, 401, 18311, 5584781]

Чтобы учесть отрицательное целое число, преобразуйте его в символьный объект с помощью sym.

F = factor(sym(-92465))
F =
[ -1, 5, 18493]

Выполните главную факторизацию больших количеств

Выполните главную факторизацию для 41758540882408627201. Поскольку целое число больше, чем flintmax, преобразуйте его в символьный объект с помощью sym и поместите номер в кавычки, чтобы представлять его точно.

n = sym('41758540882408627201');
factor(n)
ans =
[ 479001599, 87178291199]

Факторные символьные части

Учтите дробный 112/81 путем преобразования его в символьный объект с помощью sym.

F = factor(sym(112/81))
F =
[ 2, 2, 2, 2, 7, 1/3, 1/3, 1/3, 1/3]

Факторные полиномы

Учтите полиномиальный x^6-1.

syms x
F = factor(x^6-1)
F =
[ x - 1, x + 1, x^2 + x + 1, x^2 - x + 1]

Учтите полиномиальный y^6-x^6.

syms y
F = factor(y^6-x^6)
F =
[ -1, x - y, x + y, x^2 + x*y + y^2, x^2 - x*y + y^2]

Отдельные факторы, содержащие заданные переменные

Факторный y^2*x^2 для факторов, содержащих x.

syms x y
F = factor(y^2*x^2,x)
F =
[ y^2, x, x]

factor комбинирует все факторы без x в первый элемент. Остающиеся элементы F содержат неприводимые факторы, которые содержат x.

Учтите полиномиальный y для факторов, содержащих символьные переменные b и c.

syms a b c d
y = -a*b^5*c*d*(a^2 - 1)*(a*d - b*c);
F = factor(y,[b c])
F =
[ -a*d*(a - 1)*(a + 1), b, b, b, b, b, c, a*d - b*c]

factor комбинирует все факторы без b или c в первый элемент F. Остающиеся элементы F содержат неприводимые факторы y, которые содержат или b или c.

Выберите Factorization Modes

Используйте аргумент FactorMode, чтобы выбрать конкретный режим факторизации.

Учтите выражение, не задавая режим факторизации. По умолчанию factor использует факторизацию по рациональным числам. В этом режиме factor сохраняет рациональные числа в их точной символьной форме.

syms x
factor(x^3 + 2, x)
ans =
x^3 + 2

Учтите то же выражение, но на этот раз используйте числовую факторизацию по вещественным числам. Этот режим включает выражение в линейные и квадратичные неприводимые полиномы с действительными коэффициентами и преобразовывает все числовые значения в числа с плавающей запятой.

factor(x^3 + 2, x, 'FactorMode', 'real')
ans =
[ x + 1.2599210498948731647672106072782,...
  x^2 - 1.2599210498948731647672106072782*x + 1.5874010519681994747517056392723]

Учтите это выражение с помощью факторизации по комплексным числам. В этом режиме factor уменьшает квадратичные полиномы до линейных выражений с комплексными коэффициентами. Этот режим преобразовывает все числовые значения в числа с плавающей запятой.

factor(x^3 + 2, x, 'FactorMode', 'complex')
ans =
[ x + 1.2599210498948731647672106072782,...
  x - 0.62996052494743658238360530363911 + 1.0911236359717214035600726141898i,...
  x - 0.62996052494743658238360530363911 - 1.0911236359717214035600726141898i]

Учтите это выражение с помощью полного режима факторизации. Этот режим включает выражение в линейные выражения, уменьшая квадратичные полиномы до линейных выражений с комплексными коэффициентами. Этот режим сохраняет рациональные числа в их точной символьной форме.

factor(x^3 + 2, x, 'FactorMode', 'full')
ans =
[ x + 2^(1/3),...
  x - 2^(1/3)*((3^(1/2)*1i)/2 + 1/2),...
  x + 2^(1/3)*((3^(1/2)*1i)/2 - 1/2)]

Аппроксимируйте результат с числами с плавающей запятой при помощи vpa. Поскольку выражение не содержит символьных параметров помимо переменной x, результат эквивалентен в комплексном режиме факторизации.

vpa(ans)
ans =
[ x + 1.2599210498948731647672106072782,...
  x - 0.62996052494743658238360530363911 - 1.0911236359717214035600726141898i,...
  x - 0.62996052494743658238360530363911 + 1.0911236359717214035600726141898i]

Аппроксимированные результаты, содержащие RootOf

В полном режиме факторизации factor также может возвратить результаты как символьные суммы по полиномиальным корням, выраженным как RootOf.

Учтите это выражение.

syms x
s = factor(x^3 + x - 3, x, 'FactorMode','full')
s =
[ x - root(z^3 + z - 3, z, 1),...
  x - root(z^3 + z - 3, z, 2),...
  x - root(z^3 + z - 3, z, 3)]

Аппроксимируйте результат с числами с плавающей запятой при помощи vpa.

 vpa(s)
ans =
[ x - 1.2134116627622296341321313773815,...
  x + 0.60670583138111481706606568869074 + 1.450612249188441526515442203395i,...
  x + 0.60670583138111481706606568869074 - 1.450612249188441526515442203395i]

Входные параметры

свернуть все

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

Переменные интереса, заданного как символьная переменная или вектор символьных переменных. Факторы, которые не содержат переменную, заданную в vars, сгруппированы в первый элемент F. Остающиеся элементы F содержат неприводимые факторы x, которые содержат переменную в vars.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: factor(x^3 - 2,x,'FactorMode','real')

Режим Factorization, заданный как пара, разделенная запятой, состоящая из 'FactorMode' и один из этих векторов символов.

'rational'Факторизация по рациональным числам.
'real'Факторизация по вещественным числам. Действительная числовая факторизация является факторизацией в линейные и квадратичные неприводимые полиномы с действительными коэффициентами. Этот режим факторизации требует, чтобы коэффициенты входа были конвертируемы к действительным числам с плавающей запятой. Все другие входные параметры (например, те входные параметры, содержащие символьные или комплексные коэффициенты), обработаны как неприводимые.
'complex'Факторизация по комплексным числам. Комплексная числовая факторизация является факторизацией в линейные факторы, коэффициенты которых являются числами с плавающей запятой. Такая факторизация только доступна, если коэффициенты входа конвертируемы к числам с плавающей запятой, то есть, если корни могут быть определены численно. Символьные входные параметры обработаны как неприводимые.
'full'Полная факторизация. Полная факторизация является символьной факторизацией в линейные факторы. Результат показывает эти факторы с помощью радикалов или как symsum, передвигающегося на RootOf.

Выходные аргументы

свернуть все

Факторы входа, возвращенного как символьный вектор.

Советы

  • Чтобы учесть целое число, больше, чем flintmax, перенесите целое число с sym. Затем поместите целое число в кавычки, чтобы представлять его точно, например, sym('465971235659856452').

  • Чтобы учесть отрицательное целое число, перенесите целое число с sym, например, sym(-3).

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

| | | | | | | |

Представлено до R2006a

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