vechinv_JPH {lazy.symbolic} | R Documentation |
vech 関数で作成されたベクトルから対称行列を復元
Description
英語のヘルプファイルは: vechinv
Arguments
v |
vech 関数で取得した下三角または上三角の要素を含む列ベクトルまたは行列 |
nodiag |
= 1 の場合は、入力ベクトルに対角要素が含まれていない |
byrow |
= 0 の場合、入力ベクトルは列優先で格納 |
lowerh |
= 0 の場合、入力ベクトルは上三角の要素 |
diagval |
nodiag=1 の場合、対角要素を含むベクトル |
array |
= 1 の場合、結果を配列として返す |
Details
M を 4 x 4 行列とする。
vech 関数はデータを以下のように格納する:
byrow=1 かつ lowerh=1 の場合:
vech(M)=c( m11, m21, m22, m31, m32, m33, ..., mn1, mn2, ..., mnn )
byrow=1 かつ lowerh=0 の場合:
vech(M)=c( m11, m12, m13, ..., m1n, m22, m23, m24, ..., m2n, ..., mnn )
byrow=0 かつ lowerh=1 の場合: 行優先で下三角をベクトル化:
vech(M)=c( m11, m21, m31, ..., mn1, m22, m32, ..., mn2, m33, ...., mnn )
byrow=0 かつ lowerh=0 の場合: 行優先で上三角をベクトル化:
vech(M)=c( m11, m12, m22, m13, m23, m33, m14, ..., m44, m1n, m2n, ..., mnn )
Value
v がベクトルの場合は行列を、v が行列の場合は配列を返す
Examples
vechinv( vech(demomat(3,3,2)) )
ndim=4
M=demomat(ndim,ndim,root="m")
cat( "nodiag=0: byrow=1, lower=1 と byrow=0, lower=1\n" )
Print( vechinv(vech(M,0,1,1),0,1,1), vechinv(vech(M,0,0,1),0,0,1) )
cat( "nodiag=0: byrow=1, lower=0 と byrow=0, lower=0\n" )
Print( vechinv(vech(M,0,1,0),0,1,0),vechinv(vech(M,0,0,0),0,0,0) )
cat( "nodiag=1: byrow=1, lower=1 と byrow=0, lower=1\n" )
Print( vechinv(vech(M,1,1,1),1,1,1), vechinv(vech(M,1,0,1),1,0,1) )
cat( "nodiag=1: byrow=1, lower=0 と byrow=0, lower=0\n" )
Print( vechinv(vech(M,1,1,0),1,1,0),vechinv(vech(M,1,0,0),1,0,0) )
[Package lazy.symbolic version 1.0.0.20250830 ]