mod

Символьный модуль после деления

Начиная с R2020b, mod больше не находит модуль для каждого коэффициента символьного полинома. Для получения дополнительной информации см. раздел Вопросов совместимости.

Синтаксис

Описание

пример

m = mod(a,b) находит модуль после деления. Чтобы найти оставшуюся часть, используйте rem.

Если a является полиномиальным выражением, тогда mod(a,b) возвращает недооцененный модуль полинома.

Примеры

свернуть все

Найдите модуль после деления, когда и дивиденды, и делитель являются целыми числами.

Найдите модуль после деления для этих чисел.

m = [mod(sym(27),4), mod(sym(27),-4), mod(sym(-27),4), mod(sym(-27),-4)]
m = (3-11-3)[sym (3), -sym (1), sym (1), -sym (3)]

Найдите модуль после деления, когда деление является рациональным числом, а делитель - целым числом.

Найдите модуль после деления для этих чисел.

m = [mod(sym(22/3),5), mod(sym(1/2),7), mod(sym(27/6),-11)]
m = 

(7312-132)[sym (7/3), sym (1/2), -sym (13/2)]

Найдите модуль после деления, когда деление является полиномиальным выражением, а делитель - целым числом. Если дивидендом является полиномиальное выражение, то mod возвращает символьное выражение без вычисления модуля.

Найдите модуль после деления на 10 для полинома x3-2x+999.

syms x
a = x^3 - 2*x + 999;
mUneval = mod(a,10)
mUneval = x3-2x+999 mod 10рем (x ^ 3 - 2 * x + 999, 10)

Чтобы вычислить модуль для каждого полиномиального коэффициента, сначала извлеките коэффициенты каждого члена используя coeffs.

[c,t] = coeffs(a)
c = (1-2999)[sym (1), -sym (2), sym (999)]
t = (x3x1)[x ^ 3, x, sym (1)]

Затем найдите модуль каждого коэффициента в c разделяется на 10. Восстановите новый полином с помощью вычисленных коэффициентов.

cMod10 = mod(c,10);
mEval = sum(cMod10.*t)
mEval = x3+8x+9x ^ 3 + 8 * x + 9

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

Найдите модуль после деления для элементов двух матриц.

A = sym([27,28; 29,30]);
B = sym([2,3; 4,5]);
M = mod(A,B)
M = 

(1110)[sym (1), sym (1); sym (1), sym (0)]

Найдите модуль после деления для элементов матрицы A и значение 9. Здесь, mod расширяет 9 в 2-by- 2 матрица со всеми элементами, равными 9.

M = mod(A,9)
M = 

(0123)[sym (0), sym (1); sym (2), sym (3)]

Создайте две периодические функции, которые представляют пилообразные волны.

Задайте пилообразную волну с периодическими T = 2 и амплитудные A = 1.5. Создайте символьную функцию y(x). Использование mod функции для определения пилообразной волны для каждого периода. Пилообразная волна линейно увеличивается в течение полного периода, и она падает обратно в нуль в начале другого периода.

T = 2;
A = 1.5;
syms y(x);
y(x) = A*mod(x,T)/T;

Постройте график этой пилообразной волны для интервала [-6 6].

fplot(y,[-6 6])

Figure contains an axes. The axes contains an object of type functionline.

Затем создайте другую пилообразную волну, которая симметрична за один период. Использование piecewise определить пилообразную волну, которая линейно увеличивается в течение первой половины периода, а затем линейно уменьшается во второй половине периода.

y(x) = piecewise(0 < mod(x,T) <= (T/2), 2*A*mod(x,T)/T,...
                 (T/2) < mod(x,T) <= T, 2*A - 2*A*mod(x,T)/T);

Постройте график этой пилообразной волны для интервала [-6 6].

fplot(y,[-6 6])

Figure contains an axes. The axes contains an object of type functionline.

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

свернуть все

Деление (числитель), заданное как число, символьное число, переменная, полиномиальное выражение или вектор или матрица чисел, символьных чисел, переменных или полиномиальных выражений. Входные параметры a и b должен быть одинаковым размером, если только он не является скаляром. Функция расширяет скалярный вход в массив того же размера, что и другой вход.

Делитель (знаменатель), заданный как число, символьное число или вектор или матрица чисел или символьных чисел. Входные параметры a и b должен быть одинаковым размером, если только он не является скаляром. Функция расширяет скалярный вход в массив того же размера, что и другой вход.

Подробнее о

свернуть все

Модуль

Модуль a и b является

mod(a,b)=ab·пол(ab),

где floor округления (a/ b) к отрицательной бесконечности. Для примера модуль -8 и -3 равен -2, но модуль -8 и 3 равен 1.

Если b = 0, то mod (a, b ) = mod (a, 0) = 0.

Совет

  • Вызов mod для чисел, которые не являются символическими объектами, MATLAB® mod функция.

Вопросы совместимости

расширить все

Поведение изменено в R2020b

См. также

| | |

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