Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

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)

被除数が有理数、除数が整数であるときの、除算後のモジュラスを求めます。

これらの数値の除算後のモジュラスを求めます。

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

(7312-132)

被除数が多項式、除数が整数であるときの、除算後のモジュラスを求めます。被除数が多項式の場合、mod はモジュラスを評価せずにシンボリック式を返します。

多項式 x3-2x+99910 で除算した後のモジュラスを求めます。

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

多項式の各係数のモジュラスを評価するには、まず coeffs を使用して各項の係数を抽出します。

[c,t] = coeffs(a)
c = (1-2999)
t = (x3x1)

次に、10 で割った c の各係数のモジュラスを求めます。評価された係数を使用して新しい多項式を再構成します。

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

ベクトルや行列に対して、mod は各要素の除算後のモジュラスを求めます。引数が両方とも非スカラーの場合、それらは同じサイズでなければなりません。一方の引数がスカラーの場合、関数 mod はそのスカラー入力をもう一方の入力と同じサイズの配列に拡張します。

2 つの行列要素の除算後のモジュラスを求めます。

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

(1110)

行列 A および値 9 の要素の除算後のモジュラスを求めます。ここで、mod9 をすべての要素が 9 に等しい 22 列の行列に展開します。

M = mod(A,9)
M = 

(0123)

ノコギリ波を表す 2 つの周期関数を作成します。

周期 T = 2、振幅 A = 1.5 でノコギリ波を定義します。シンボリック関数 y(x) を作成します。関数 mod を使用して、各周期のノコギリ波を定義します。ノコギリ波は 1 周期全体で直線的に増加し、次の周期の開始時にゼロに戻ります。

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 object. The axes object contains an object of type functionline.

次に、1 つの周期内で対称になる別のノコギリ波を作成します。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 object. The axes object contains an object of type functionline.

入力引数

すべて折りたたむ

被除数 (分子)。数値、シンボリック数、変数、多項式、あるいは数値、シンボリック数、変数または多項式のベクトルまたは行列として指定します。入力 ab は、いずれかがスカラー値でない限り、同じサイズでなければなりません。関数はスカラー入力を他方の入力と同じサイズの配列に拡張します。

除数 (分母)。数値、シンボリック数、あるいは数値またはシンボリック数のベクトルまたは行列として指定します。入力 ab は、いずれかがスカラー値でない限り、同じサイズでなければなりません。関数はスカラー入力を他方の入力と同じサイズの配列に拡張します。

詳細

すべて折りたたむ

モジュラス

a および b のモジュラスは次のとおりです。

mod(a,b)=ab·floor(ab),

ここで floor(a / b) を負の無限大方向に丸めます。たとえば、–8 と –3 のモジュラスは –2 ですが、–8 と 3 のモジュラスは 1 です。

b = 0 の場合は、mod(a, b) = mod(a, 0) = 0 となります。

ヒント

  • シンボリック オブジェクトではない数値について mod を呼び出すと、MATLAB® 関数 mod が呼び出されます。

バージョン履歴

R2006a より前に導入

すべて展開する