このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
mod
除算後のシンボリック モジュラス
R2020b 以降、mod
はシンボリック多項式の各係数のモジュラスを求めません。詳細は、互換性についての考慮事項を参照してください。
説明
例
整数を整数で割ったモジュラスを求める
被除数と除数の両方が整数であるときの、除算後のモジュラスを求めます。
これらの数値の除算後のモジュラスを求めます。
m = [mod(sym(27),4), mod(sym(27),-4), mod(sym(-27),4), mod(sym(-27),-4)]
m =
有理数を整数で割ったモジュラスを求める
被除数が有理数、除数が整数であるときの、除算後のモジュラスを求めます。
これらの数値の除算後のモジュラスを求めます。
m = [mod(sym(22/3),5), mod(sym(1/2),7), mod(sym(27/6),-11)]
m =
多項式を整数で割ったモジュラスを求める
被除数が多項式、除数が整数であるときの、除算後のモジュラスを求めます。被除数が多項式の場合、mod
はモジュラスを評価せずにシンボリック式を返します。
多項式 を で除算した後のモジュラスを求めます。
syms x
a = x^3 - 2*x + 999;
mUneval = mod(a,10)
mUneval =
多項式の各係数のモジュラスを評価するには、まず coeffs
を使用して各項の係数を抽出します。
[c,t] = coeffs(a)
c =
t =
次に、10
で割った c
の各係数のモジュラスを求めます。評価された係数を使用して新しい多項式を再構成します。
cMod10 = mod(c,10); mEval = sum(cMod10.*t)
mEval =
シンボリック行列のモジュラスを求める
ベクトルや行列に対して、mod
は各要素の除算後のモジュラスを求めます。引数が両方とも非スカラーの場合、それらは同じサイズでなければなりません。一方の引数がスカラーの場合、関数 mod
はそのスカラー入力をもう一方の入力と同じサイズの配列に拡張します。
2 つの行列要素の除算後のモジュラスを求めます。
A = sym([27,28; 29,30]); B = sym([2,3; 4,5]); M = mod(A,B)
M =
行列 A
および値 9
の要素の除算後のモジュラスを求めます。ここで、mod
は 9
をすべての要素が 9
に等しい 2
行 2
列の行列に展開します。
M = mod(A,9)
M =
周期的なノコギリ波の作成
ノコギリ波を表す 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])
次に、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])
入力引数
a
— 被除数 (分子)
数値 | シンボリック数 | シンボリック変数 | 多項式 | ベクトル | 行列
被除数 (分子)。数値、シンボリック数、変数、多項式、あるいは数値、シンボリック数、変数または多項式のベクトルまたは行列として指定します。入力 a
と b
は、いずれかがスカラー値でない限り、同じサイズでなければなりません。関数はスカラー入力を他方の入力と同じサイズの配列に拡張します。
b
— 除数 (分母)
数値 | シンボリック数 | ベクトル | 行列
除数 (分母)。数値、シンボリック数、あるいは数値またはシンボリック数のベクトルまたは行列として指定します。入力 a
と b
は、いずれかがスカラー値でない限り、同じサイズでなければなりません。関数はスカラー入力を他方の入力と同じサイズの配列に拡張します。
詳細
モジュラス
a および b のモジュラスは次のとおりです。
ここで floor
は (a / b) を負の無限大方向に丸めます。たとえば、–8 と –3 のモジュラスは –2 ですが、–8 と 3 のモジュラスは 1 です。
b = 0 の場合は、mod(a, b) = mod(a, 0) = 0 となります。
ヒント
シンボリック オブジェクトではない数値について
mod
を呼び出すと、MATLAB® 関数mod
が呼び出されます。
バージョン履歴
R2006a より前に導入R2020b: mod
はシンボリック多項式の各係数のモジュラスを求めない
R2020b 以降、mod
はシンボリック多項式の各係数のモジュラスを求めません。代わりに、mod(a,b)
は、a
がシンボリック多項式、b
が実数の場合に未評価のシンボリック式を返します。多項式 a
の各係数のモジュラスを求めるには、[c,t] = coeffs(a); sum(mod(c,b).*t)
を使用します。mod
を使用して周期性を定義することで、周期的なシンボリック関数を作成できるようになりました。例については、周期的なノコギリ波の作成を参照してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)