固有ベクトルの向き
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Kohei Nishizawa
le 26 Sep 2022
Commenté : Kohei Nishizawa
le 29 Sep 2022
固有ベクトルを算出するときにベクトルの符号を指定することは可能でしょうか?
4 commentaires
Hernia Baby
le 26 Sep 2022
Modifié(e) : Hernia Baby
le 27 Sep 2022
※修正:日本語がおかしかったので書き直しました
----------
可能です。
どのように指定するかで回答を考えたいので、具体的な内容をお聞きしたいです。
その前に、まずはシンプルな例で検証をしてみましょう。
X = [-1,1,2];
Xi = MyEigVec(X)
function y = MyEigVec(x)
if x(1) < 0
y = - x;
else
y = x;
end
end
Réponse acceptée
Hernia Baby
le 27 Sep 2022
各列ベクトルの符号が必ず対応しているものとして話を進めます
まずは準備
clc,clear
A = [-0.0449 -0.5388 -0.8413; -0.6687 0.6418 -0.3754; 0.7422 0.5457 -0.3891];
A(:,:,2) = [-0.0453 -0.5361 -0.8429; -0.6897 0.6272 -0.3618; 0.7227 0.5649 -0.3982];
A(:,:,3) = [0.0464 0.5318 -0.8456; 0.7089 -0.6139 -0.3472;-0.7038 -0.5834 -0.4055];
A(:,:,4) = [0.0469 -0.5288 -0.8475; 0.7276 0.5994 -0.3337;-0.6844 0.6010 -0.4128];
ここでAの符号を算出します
Sgn_A = sign(A)
すべて1の行列を作成し、3番目と4番目の符号を1番目と2番目のものとかけることで反転すべきか決めます
idx = ones(size(A));
for ii = 1:size(A,3)/2
idx(:,:,ii+2) = Sgn_A(:,:,ii).*Sgn_A(:,:,ii+2);
end
B = A.*idx;
Bの符号を見てみましょう
sign(B)
1,2番目と対応していることがわかりました
0 commentaires
Plus de réponses (1)
Kohei Nishizawa
le 28 Sep 2022
6 commentaires
Hernia Baby
le 29 Sep 2022
すみません、少し教えてください。
「ベクトルの方向が変わっていない」というのは、どこを指しますか?
B = [-0.0412 -0.7211 -0.6916; -0.0365 0.6928 -0.7202; 0.9985 -0.0045 -0.0549];
B(:,:,2) = [-0.0417 -0.7310 -0.6811; -0.0515 0.6823 -0.7292; 0.9978 0.0046 -0.0661]
上記ですと1と2の各列ベクトルは異なるように思えます。
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!