MATLAB Problem. How to design matrix from eigenvalues
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Panos Kerezoudis
am 23 Jan. 2023
Bearbeitet: Matt J
am 24 Jan. 2023
This is a previously posted problem that I am working on but I can't find any solutions online. Here is the description:
Write a function that takes one input argument n and outputs a (n x n) square matrix A with the following properties:
- A has an eigenvalue of 3
- all elements of A differ more than .5 from each other
Here is what I have tried so far. I am having difficulty with setting up the specific eigenvalue.
function A = matrix_design(n)
A=randn(n); % set up the matrix
[V,D]=eig(A) % use built-in function for eigendecomposition
abs(A-A.')>0.5 % specify elements of A to differ by 0.5
end
disp(A)
2 Kommentare
Walter Roberson
am 23 Jan. 2023
Is it possible at all?
d = sym(2)/3
syms c
M = [c+0*d, c+1*d, c+2*d
c+3*d, c+4*d, c+5*d
c+7*d, c+9*d, c+8*d]
[V,D] = eig(M);
c0 = solve(D(1)==3, c)
Mnum = double(subs(M, c, c0))
eig(Mnum)
... I guess so, at least for the 3 x 3 case -- and assuming that "A has an eigenvalue of 3" means that at least one of the eigenvalues of the matrix is 3
Akzeptierte Antwort
Matt J
am 23 Jan. 2023
Bearbeitet: Matt J
am 24 Jan. 2023
mindist=@(A) min(sqrt(pdist(real(A(:))).^2+pdist(imag(A(:))).^2));
n=5;
Q=rand(n); Q(1)=0;
Q=(1-eye(n)).*Q*0.5/mindist(Q);
r=max(min(sum(Q,2)),0.5);
Q=diag((1:n)*2*r)-Q;
emin=min(eig(Q));
A=Q+speye(n)*(3-emin);
%%CHECK%%%
min(eig(A))
mindist(A)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!