sigma = svd(A)
がシンボリック数で正確な特異値を求めることができない場合に、代わりに関数 root
で正確な特異値を返すようになりました。以前のリリースでは、sigma = svd(A)
は特異値を浮動小数点数で返します。
たとえば、5 行 5 列のシンボリック行列の特異値を計算します。関数 svd
は、関数 root
で正確な特異値を返します。これは、多項式の根を解くときに関数 solve
または root
によって返される結果と一致します。
sigma =
root(z^5 - 11357*z^4 + 26691022*z^3 - 17903673324*z^2 + 979310921328*z - 1676258447616, z, 5)^(1/2)
root(z^5 - 11357*z^4 + 26691022*z^3 - 17903673324*z^2 + 979310921328*z - 1676258447616, z, 4)^(1/2)
root(z^5 - 11357*z^4 + 26691022*z^3 - 17903673324*z^2 + 979310921328*z - 1676258447616, z, 3)^(1/2)
root(z^5 - 11357*z^4 + 26691022*z^3 - 17903673324*z^2 + 979310921328*z - 1676258447616, z, 2)^(1/2)
root(z^5 - 11357*z^4 + 26691022*z^3 - 17903673324*z^2 + 979310921328*z - 1676258447616, z, 1)^(1/2)
vpa
を使用して特異値を数値的に近似します。
sigmaVpa =
91.903382299388875598380645217105
41.667523645705677947038130902387
33.389311761352625550607303429805
7.6138651481371046117950798870896
1.3299296132187199146053915272808