1 view (last 30 days)

Question is this;

My matlab code is as follows:

%Define Matrices

>> M = magic(5);

>> P = pascal (5);

% Define the variable x

>> syms x

%Define the given matrix A

>> A = x*M + (1-x)*P;

%Define the eigenvalue lambda as y;

>> syms y

%Find determinant of |A - lambda * I|

>> D = det (A - y*eye(5))

%Define Objective function

objective = @(y) y

%And Define the constraint

constraint = @(x,y) (-1)*D

%initial value x0 = (0:0.001:1);

%Minimization problem solving

x = fmincon(objective, constraint, x0)

I get this error;

Error using fmincon (line 221)

FMINCON requires the following inputs to be of data type double: 'X0'.

If I use another function: fminsearch

x = fminsearch(objective, constraint, x0)

In this case I get the following error:

Error using fminsearch (line 96)

FMINSEARCH accepts inputs only of data type double.

How can I deal with these errors ? Where is my mistake? How can I correct them?

Ameer Hamza
on 29 Mar 2020

This is an example with fmincon

M = magic(5);

P = pascal (5);

f = @(x) max(abs(eig(x*M + (1-x)*P)));

x_sol = fmincon(f, rand, [], [], [], [], 0, 1);

Torsten
on 29 Mar 2020

Edited: Torsten
on 29 Mar 2020

If you mean the eigenvalue largest in magnitude, this should give you a start.

Incorporating fmincon can automatize the search for an optimal x.

M=magic(5);

P=pascal(5);

A=@(x) x*M+(1-x)*P;

x=0:0.02:1;

for i=1:numel(x)

d(i) = abs( eigs(A(x(i)),1) );

end

[dmin,idd] = min(d);

x(idd) %show x for which eigenvalue largest in magnitude is minimum

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

Start Hunting!
## 3 Comments

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/513718-i-m-getting-an-error-related-to-fmincon#comment_817331

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/513718-i-m-getting-an-error-related-to-fmincon#comment_817331

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/513718-i-m-getting-an-error-related-to-fmincon#comment_817336

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/513718-i-m-getting-an-error-related-to-fmincon#comment_817336

## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/513718-i-m-getting-an-error-related-to-fmincon#comment_817337

⋮## Direct link to this comment

https://au.mathworks.com/matlabcentral/answers/513718-i-m-getting-an-error-related-to-fmincon#comment_817337

Sign in to comment.