Positive eigenvector coefficients with matlab

19 ビュー (過去 30 日間)
crocusy
crocusy 2017 年 11 月 12 日
コメント済み: crocusy 2017 年 11 月 13 日
Hello, I need positive eigenvector coefficients. I am new in Matlab. I've thought to place eig function into fmincon function with the constraint e>=0. However, i couldn't manage it. How can i obtain positive eigenvector coefficients with matlab?
  2 件のコメント
Kaushik Lakshminarasimhan
Kaushik Lakshminarasimhan 2017 年 11 月 12 日
What do you mean by positive eigenvector coefficients? Do you just mean positive coefficients? Can you explain what you're trying to fit?
crocusy
crocusy 2017 年 11 月 12 日
Yes, i mean positive coefficients. I need eigenvector coefficients all positive. I've tried to write something as below.
if true
f=@(e,l,g) eig(S);
e0=zeros(N,N);
e1=fmincon(f,e0,[],[],[],[],lb,[],[],opts);
end
There must be lb for eigenvector coefficients, i.e. e>=0 but I couldn't put it anywhere, since there are three outputs. When i write lb, it doesn't directly affect the coefficients. I know it is not rational, however i wonder if there is a way such that to find positive coefficients.

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2017 年 11 月 12 日
Any scalar constant times an eigenvector remains an eigenvector. Therefore if you have an eigenvector that contains all negative values, multiply it by a negative scalar.
If you have an eigenvector that contains a mix of negative and positive values, you need to reject it (for your purpose) and move on to the next eigenvector. You would not do this with fmincon or the like: you would just look through the list of eigenvectors that were output to find one for which the sign() was the same for all of the elements.
Question: do you consider 0 to be positive for this purpose?
  1 件のコメント
crocusy
crocusy 2017 年 11 月 13 日
Yes, 0 is considered as positive. Indeed, i need nonnegative cofficients. Thank you for your answer. It helped me a lot.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by