このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
null
行列のヌル空間
説明
例
行列のヌル空間
関数null
を使用して、行列のヌル空間の正規直交基底ベクトルと有理基底ベクトルを計算します。行列のヌル空間には、
を満たすベクトル
が含まれます。
4 行 4 列の魔方陣行列を作成します。この行列はランク落ちであり、いずれかの特異値が 0 と等しくなっています。
A = magic(4)
A =4×416 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
A
のヌル空間の正規直交基底を計算します。
であり、丸め誤差の範囲内であることを確認します。
x1 = null(A)
x1 =4×1-0.2236 -0.6708 0.6708 0.2236
norm(A*x1)
ans = 2.8952e-15
次に、ヌル空間の有理基底を計算します。 であることを確認します。
x2 = null(A,'r')
x2 =4×1-1 -3 3 1
norm(A*x2)
ans = 0
x1
とx2
は似ていますが、正規化では別になります。
劣決定方程式系の一般解
劣決定システムについてある特定の解を求め、その後すべての解について一般的な形式を求めます。
劣決定の線形システム は方程式より未知数の数が多くなります。劣決定システムは、無限に解をもつ場合もあれば、解がない場合もあります。システムの解が無限にある場合、その解はすべて一直線上にあります。直線上のすべての点は、ヌル空間ベクトルの線形結合により得られます。
2 行 4 列の係数行列を作成し、バックスラッシュを使用して方程式 を解きます。ここで、 は 1 から成るベクトルです。バックスラッシュにより、問題の最小二乗解が計算されます。
A = [1 8 15 67; 7 14 16 3]
A =2×41 8 15 67 7 14 16 3
b = ones(2,1); x0 = A\b
x0 =4×10 0 0.0623 0.0010
劣決定システムの完全な一般解は という形式になります。ここで、以下のようになります。
は のヌル空間。
は適切な長さの任意のベクトル。
はバックスラッシュにより計算された解。
A
のヌル空間を計算し,その結果を使用してこの方程式系の別の解を求めます。新しい解が,丸め誤差の範囲内で
を満たしていることを確認します。
N = null(A)
N =4×2-0.2977 -0.8970 -0.6397 0.4397 0.7044 0.0157 -0.0769 -0.0426
x = x0 + N*[1; -2]
x =4×11.4963 -1.5192 0.7354 0.0093
norm(A*x-b)
ans = 2.8908e-14
入力引数
A
—入力行列
行列
入力行列。
データ型:single
|double
複素数のサポート:あり
出力引数
Z
— ヌル空間の基底ベクトル
行列
ヌル空間の基底ベクトル。行列の列として返されます。Z
は以下の特性を満たします。
A*Z
に非常に小さい要素がある。size(Z,2)
はA
の退化次数の推定値である。
rank(A)
がsize(A,2)
と等しい場合、Z
は空です。
アルゴリズム
null(A)
は、行列の特異値分解A = U*S*V'
を計算します。非ゼロの特異値に対応しないV
の列は、ヌル空間の一連の正規直交基底ベクトルを構成します。
ヌル空間null(A,'r')
の "有理" 基底は、rref
によって計算されるA
の行簡約階段形から得られます。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
生成されたコードは MATLAB®と異なる基底を返す場合があります。
コード生成では、合理的な基底オプション (2 番目の入力) はサポートされていません。
コード生成では、この関数のスパース行列入力はサポートされません。
スレッドベースの環境
MATLAB®backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ のThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、Run MATLAB Functions in Thread-Based Environmentを参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
構文
Z = null(A, 'r')
はサポートされていません。
詳細については、GPU での MATLAB 関数の実行(Parallel Computing Toolbox)を参照してください。
バージョン履歴
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)