固有ベクトルの向き
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Kohei Nishizawa
il 26 Set 2022
Commentato: Kohei Nishizawa
il 29 Set 2022
固有ベクトルを算出するときにベクトルの符号を指定することは可能でしょうか?
4 Commenti
Hernia Baby
il 26 Set 2022
Modificato: Hernia Baby
il 27 Set 2022
※修正:日本語がおかしかったので書き直しました
----------
可能です。
どのように指定するかで回答を考えたいので、具体的な内容をお聞きしたいです。
その前に、まずはシンプルな例で検証をしてみましょう。
X = [-1,1,2];
Xi = MyEigVec(X)
function y = MyEigVec(x)
if x(1) < 0
y = - x;
else
y = x;
end
end
Risposta accettata
Hernia Baby
il 27 Set 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 Commenti
Più risposte (1)
Kohei Nishizawa
il 28 Set 2022
6 Commenti
Hernia Baby
il 29 Set 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の各列ベクトルは異なるように思えます。
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!