主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

シンボリック行列変数の作成

R2021a以降

シンボリック行列変数は,行,列ベクトル,およびスカラーをコンパクトな行列表記で表現します。数式が行列およびベクトルを含む場合,シンボリック行列変数を使用してそれらを記述すると,成分ごとに記述するより簡潔で明確になります。これを行う場合,教科書からベクトルに基づく式および方程式を選択して符号数学工具箱™に入力し,それらに対して数学演算を実行して別の方程式を派生させることができます。

シンボリック行列変数を含む導出された方程式は,教科書で示されるように,整形されて表示されます。たとえば,信谊を使用して3つのシンボリック行列変数 一个 x ,および y を作成します。ベクトル x について式 y T 一个 x の微分を求めます。

信谊一个[3 - 4]矩阵信谊x(4 - 1)矩阵信谊y(3 - 1)矩阵情商x = y。”* *
情商=
                
                 
                  
                   
                    
                     
                      
                       
                        
                         y
                       
                      
                     
                     
                      
                       T
                     
                    
                    
                    
                    
                     
                      
                       一个
                     
                    
                    
                    
                    
                     
                      
                       x
                     
                    
                   
                  
                  
                   置(symmatrix (' y ', 1 [3])) * symmatrix(“A”,[3 - 4])* symmatrix(“x”,[1]4日)
                 
                
D = diff (eq, x)
D =
                
                 
                  
                   
                    
                     
                      
                       
                        
                         y
                       
                      
                     
                     
                      
                       T
                     
                    
                    
                    
                    
                     
                      
                       一个
                     
                    
                   
                  
                  
                   置(symmatrix (' y ', 1 [3])) * symmatrix (' A ', 4 [3])
                 
                

シンボリックスカラー変数の行列とシンボリック行列変数の比較

シンボリック行列変数は,シンボリックスカラー変数の代替です。この2つのオプションは型が異なり,異なる方法で表示されます。

たとえば,信谊を使用し,3.行4列のシンボリックスカラー変数の行列を2つ作成します。シンボリックスカラー変数の行列は,簡潔に”シンボリック行列”と呼ばれることもあります。これらの行列は,その成分をリストして表示されます。

信谊一个B3 [2]一个
一个=

一个 1 1 一个 1 2 一个 1 3. 一个 2 1 一个 2 2 一个 2 3. [A1_1 A1_2 A1_3;A2_1、A2_2 A2_3]

B
B =

B 1 1 B 1 2 B 1 3. B 2 1 B 2 2 B 2 3. [B1_1 B1_2 B1_3;B2_1、B2_2 B2_3]

シンボリックスカラー変数の行列は信谊型です。

类(一)
ans =“符号”

シンボリック数学演算をこれらの行列に適用すると,行列成分で表現される複雑な解になりかねません。たとえば,行列一个と行列B”を乗算します。

C = A * B '
C =

一个 1 1 B 1 1 + 一个 1 2 B 1 2 + 一个 1 3. B 1 3. 一个 1 1 B 2 1 + 一个 1 2 B 2 2 + 一个 1 3. B 2 3. 一个 2 1 B 1 1 + 一个 2 2 B 1 2 + 一个 2 3. B 1 3. 一个 2 1 B 2 1 + 一个 2 2 B 2 2 + 一个 2 3. B 2 3. [A1_1 *连词(B1_1) + A1_2 *连词(B1_2) + A1_3 *连词(B1_3) A1_1 *连词(B2_1) + A1_2 *连词(B2_2) + A1_3 *连词(B2_3);A2_1 *连词(B1_1) + A2_2 *连词(B1_2) + A2_3 *连词(B1_3) A2_1 *连词(B2_1) + A2_2 *连词(B2_2) + A2_3 *连词(B2_3)]

同じサイズのシンボリック行列変数を作成するには,信谊コマンドを使用し,その後に変数名,変数のサイズ,および矩阵キーワードを入力します。シンボリック行列変数は、シンボリック スカラー変数と区別するために太字で表示されます。

信谊一个B3 [2]矩阵一个
一个=
                 
                  
                   
                    
                     
                      一个
                    
                   
                   
                    symmatrix (' A ', 3 [2])
                  
                 
B
B =
                 
                  
                   
                    
                     
                      B
                    
                   
                   
                    symmatrix (" B ", [2 3])
                  
                 

シンボリック行列変数はsymmatrix型です。

类(一)
ans = ' symmatrix '

シンボリック数学演算をシンボリック行列変数に適用すると,表示が簡潔になります。たとえば,一个B”を乗算します。

C = A * B '
C =
                 
                  
                   
                    
                     
                      
                       
                        一个
                      
                     
                     
                     
                     
                      
                       
                        
                         
                          
                           
                            
                             
                              
                               B
                             
                            
                           
                           
                            
                           
                          
                         
                        
                       
                      
                      
                       
                        T
                      
                     
                    
                   
                   
                    symmatrix (' A ', 3[2]) *转置(连词(symmatrix (" B ", [2 3])))
                  
                 

シンボリック行列変数を使った数学演算

シンボリック行列変数は,非可換なオブジェクトとして認識されます。これらは一般的な数学演算をサポートしており,このような演算を使用してシンボリック行列変数の式を作成できます。

信谊一个B(2 - 2)矩阵A * B - B *
ans =
                 
                  
                   
                    
                     
                      
                       
                        
                         
                          一个
                        
                       
                       
                       
                       
                        
                         
                          B
                        
                       
                      
                     
                     
                      -
                     
                      
                       
                        
                         
                          B
                        
                       
                       
                       
                       
                        
                         
                          一个
                        
                       
                      
                     
                    
                   
                   
                    symmatrix (' A ', 2 [2]) * symmatrix (B、2[2])——symmatrix (B、2 [2])* symmatrix (' A ', 2 [2])
                  
                 

たとえば2つのシンボリック行列変数の乗算について,交換関係をチェックします。

isequal (A * B, B *)
ans =逻辑0

加算について,交換関係をチェックします。

isequal (A + B, B + A)
ans =逻辑1

演算にsymmatrix型の引数が含まれる場合,結果は自動的にsymmatrix型に変換されます。たとえば,シンボリック行列変数で表現される行列一个と,シンボリックスカラー変数で表現されるスカラーcを乗算します。結果はsymmatrix型になります。

信谊一个(2 - 2)矩阵信谊c类(一)
ans = ' symmatrix '
类(c)
ans =“符号”
M = c *
M =
                 
                  
                   
                    
                     
                      
                       c
                     
                     
                     
                     
                      
                       
                        一个
                      
                     
                    
                   
                   
                    symmatrix('c', [1 1])*symmatrix('A', [2 2])
                  
                 
类(米)
ans = ' symmatrix '

シンボリック行列変数で表現される3つの行列を乗算します。結果Xはsymmatrixオブジェクトになります。

信谊V(2 - 1)矩阵X = V。”* * V
X =
                 
                  
                   
                    
                     
                      
                       
                        
                         
                          V
                        
                       
                      
                      
                       
                        T
                      
                     
                     
                     
                     
                      
                       
                        一个
                      
                     
                     
                     
                     
                      
                       
                        V
                      
                     
                    
                   
                   
                    置(symmatrix(‘V’,1 [2]))* symmatrix (' A ', 2 [2]) * symmatrix(‘V’,(2 - 1))
                  
                 
类(X)
ans = ' symmatrix '

symmatrixオブジェクトを引数として数学関数に渡すことができます。たとえば,VについてXの微分を求めることで、数学演算をXに対して実行します。

diff (X, V)
ans =
                 
                  
                   
                    
                     
                      
                       
                        
                         
                          
                           
                            V
                          
                         
                        
                        
                         
                          T
                        
                       
                       
                       
                       
                        
                         
                          
                           
                            一个
                          
                         
                        
                        
                         
                          T
                        
                       
                      
                     
                     
                      +
                     
                      
                       
                        
                         
                          
                           
                            V
                          
                         
                        
                        
                         
                          T
                        
                       
                       
                       
                       
                        
                         
                          一个
                        
                       
                      
                     
                    
                   
                   
                    置(symmatrix(‘V’,1[2]))*转置(symmatrix (' A ', 2[2])) +转置(symmatrix(“V”,[2 1]))* symmatrix (' A ', 2 [2])
                  
                 

シンボリックスカラー変数の配列からのシンボリック行列変数の作成

関数symmatrixを使用し,シンボリックスカラー変数の配列を単一のシンボリック行列変数に変換できます。この方法で変換されたシンボリック行列変数は,要素ごとに表示されます。

信谊一个[3 - 4]类(一)
ans =“符号”
B = symmatrix (A)
B =

一个 1 1 一个 1 2 一个 1 3. 一个 1 4 一个 2 1 一个 2 2 一个 2 3. 一个 2 4 一个 3. 1 一个 3. 2 一个 3. 3. 一个 3. 4 [a1_1, a1_2, a1_3, a1_4;A2_1, a2_2, a2_3, a2_4;A3_1, a3_2, a3_3, a3_4]

类(B)
ans = ' symmatrix '

シンボリック行列変数のシンボリックスカラー変数の配列への変換

シンボリック行列変数を作成し,方程式を派生させてから,関数symmatrix2symを使用して,その結果をシンボリックスカラー変数の配列に変換できます。

たとえば2つのシンボリック行列変数一个およびBの行列積を求めます。結果Xsymmatrix型になります。

信谊一个B(2 - 2)矩阵X = A * B
X =
                 
                  
                   
                    
                     
                      
                       
                        一个
                      
                     
                     
                     
                     
                      
                       
                        B
                      
                     
                    
                   
                   
                    symmatrix('A', [2 2])*symmatrix('B', [2 2])
                  
                 
类(X)
ans = ' symmatrix '

シンボリック行列変数Xをシンボリックスカラー変数の配列に変換します。変換された行列Y信谊型になります。

Y = symmatrix2sym (X)
Y =

一个 1 1 B 1 1 + 一个 1 2 B 2 1 一个 1 1 B 1 2 + 一个 1 2 B 2 2 一个 2 1 B 1 1 + 一个 2 2 B 2 1 一个 2 1 B 1 2 + 一个 2 2 B 2 2 [a1_1 * b1_1 + a1_2 * b2_1, a1_1 * b1_2 + a1_2 * b2_2;A2_1* b1_1 + a2_2 * b2_1, A2_1* b1_2 + a2_2 * b2_2

类(Y)
ans =“符号”

シンボリック行列変数を変換することで得られた積が,シンボリックスカラー変数の2つの配列の積と等しいことをチェックします。

信谊一个B(2 - 2)isequal (Y, A * B)
ans =逻辑1

シンボリック行列変数へのインデックス付け

シンボリック行列変数にインデックスを付けると,対応する行列要素が別のシンボリック行列変数の形式で返されます。

信谊一个3 [2]矩阵=(2、3)
一个=
                 
                  
                   
                    
                     
                      
                       
                        一个
                      
                      
                       
                        2
                       
                       
                        3.
                      
                     
                    
                   
                   
                    symmatrix(“A2_3”,[1])
                  
                 
类(一)
ans = ' symmatrix '

または,シンボリック行列変数一个をシンボリックスカラー変数の行列に変換します。次に,その行列にインデックスを付けます。

Asym = symmatrix2sym (A)
Asym =

一个 1 1 一个 1 2 一个 1 3. 一个 2 1 一个 2 2 一个 2 3. [A1_1 A1_2 A1_3;A2_1、A2_2 A2_3]

asym = asym (2,3)
asym =
                 
                  
                   
                    
                     
                      
                       一个
                     
                     
                      
                       2
                      
                      
                       3.
                     
                    
                   
                   
                    A2_3
                  
                 
类(asym)
ans =“符号”

両方の結果が等しいことに注意してください。

isequal (a, symmatrix (asym))
ans =逻辑1

シンボリック行列変数を含む演算の表示

眼睛0,およびによって返されるような行列は,多くの場合,シンボリックワークフローにおいて特定の表記がなされ,特別な意味をもちます。これらの行列をシンボリック行列変数として宣言すると,その行列は行列の次元と共に太字で表示されます。

symmatrix(眼(3))
ans =
                 
                  
                   
                    
                     
                      
                     
                     
                      
                       
                        3.
                      
                     
                    
                   
                   
                    symmatrix(眼(3))
                  
                 
symmatrix(0(2、3)
ans =
                 
                  
                   
                    
                     
                      
                       0
                     
                     
                      
                       
                        2
                      
                      
                      
                       
                        3.
                      
                     
                    
                   
                   
                    symmatrix(零(2、3)
                  
                 
symmatrix((3、5))
ans =
                 
                  
                   
                    
                     
                      
                       1
                     
                     
                      
                       
                        3.
                      
                      
                      
                       
                        5
                      
                     
                    
                   
                   
                    symmatrix((3、5))
                  
                 

MATLAB®における成分ごとの演算への入力がシンボリック行列変数である場合,出力もそうなります。これらの演算は,教科書の規則に従う特別な表記で表示されます。

信谊一个B[3 3]矩阵a * B
ans =
                 
                  
                   
                    
                     
                      
                       
                        一个
                      
                     
                     
                     
                      
                       
                        B
                      
                     
                    
                   
                   
                    symmatrix('A', [3 3]) . symmatrix('B', [3 3]) . symmatrix('B', [3 3])
                  
                 
a / B
ans =
                 
                  
                   
                    
                     
                      
                       
                        一个
                      
                     
                     
                     
                      
                       
                        B
                      
                     
                    
                   
                   
                    symmatrix('A', [3 3]) ./ symmatrix('B', [3 3])
                  
                 
答:\ B
ans =
                 
                  
                   
                    
                     
                      
                       
                        B
                      
                     
                     
                     
                      
                       
                        一个
                      
                     
                    
                   
                   
                    symmatrix('B', [3 3]) ./ symmatrix('A', [3 3])
                  
                 
答:* hilb (3)
ans =

一个 1 1 2 1 3. 1 2 1 3. 1 4 1 3. 1 4 1 5 symmatrix (' A ', 3[3])。*(信谊(1),信谊(1/2),信谊(1/3);信谊(1/2),信谊(1/3),信谊(1/4);信谊(1/3),信谊(1/4),信谊(1/5))

答:^ (2 * 1 (3))
ans =
                 
                  
                   
                    
                     
                      
                       
                        
                         一个
                       
                      
                     
                     
                      
                      
                       
                        
                         
                          2
                         
                         
                         
                          
                           
                            1
                          
                          
                           
                            
                             3.
                           
                           
                           
                            
                             3.
                           
                          
                         
                        
                       
                      
                     
                    
                   
                   
                    symmatrix('A', [3 3]) .^ 2*symmatrix(ones(3,3))
                  
                 
B a . ^
ans =
                 
                  
                   
                    
                     
                      
                       
                        
                         一个
                       
                      
                     
                     
                      
                      
                       
                        
                         
                          B
                        
                       
                      
                     
                    
                   
                   
                    symmatrix('A', [3 3]) .^ symmatrix('B', [3 3])
                  
                 
克隆亚麻(A, B)
ans =
                 
                  
                   
                    
                     
                      
                       
                        一个
                      
                     
                     
                     
                      
                       
                        B
                      
                     
                    
                   
                   
                    克隆亚麻(symmatrix (' A ', 3 [3]), symmatrix (" B ", [3 3]))
                  
                 
伴随(A)
ans =
                 
                  
                   
                    
                     
                      邻接的
                    
                    
                     
                     
                      
                       
                        
                         
                          一个
                        
                       
                      
                     
                     
                    
                   
                   
                    的(symmatrix (A, 3 [3]))
                  
                 
trace ()
ans =
                 
                  
                   
                    
                     
                      Tr
                    
                    
                     
                     
                      
                       
                        
                         
                          一个
                        
                       
                      
                     
                     
                    
                   
                   
                    Tr (symmatrix (' A ', 3 [3]))
                  
                 

参考

||

関連するトピック