У меня такой вопрос, и я сделаю это в Matlab. Но я получаю некоторые ошибки:
Найти значение x ∈ [0, 1], которое минимизирует наибольшее собственное значение матрицы A (x) = xM + (1 − x) P, где M - это квадрат 5 × 5 волхвов c, а P - матрица 5 × 5 Pascal.
Мой код Matlab:
%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)
Я получаю эту ошибку;
Ошибка при использовании fmincon (строка 221). Для FMINCON следующие данные должны иметь тип данных double: 'X0'.
Или Если я использую другую функцию: fminsearch
x = fminsearch (цель, ограничение, x0) В этом случае я получаю следующую ошибку:
Ошибка при использовании fminsearch (строка 96 ) FMINSEARCH принимает входные данные только типа данных double.
Как я могу справиться с этими ошибками? Где моя ошибка? Как я могу их исправить?