maximizing the norm of a matrix using fmincon

1 回表示 (過去 30 日間)
MC
MC 2017 年 10 月 6 日
回答済み: Alan Weiss 2017 年 10 月 9 日
Hello! I am trying to find the maximum of |A(z)|_2. A(z) is a n x n real matrix. Each entry in this matrix consists of some nonlinear equation. For context, A is the jacobian of a nonlinear dynamical system and I need to find the upper bound on the norm of this jacobian. the decision vector z (n x 1) is upper and lower bounded. My code works but I get a value of the norm which is extremely large, perhaps I have a bug in the code. Here it is (with some simpliciations):
A = @(z) [....];
lb = [...];
ub = [...];
z0 = [...];
fun = @(z) -norm(A(z),2);
options = optimoptions('fmincon');
options.Algorithm = 'interior-point';
zStar = fmincon(fun,z0,[],[],[],[],lb,ub,[],options);
disp(norm(A(zStar),2));
Is there anything wrong with this code? I am not sure I have defined the objective function correctly, I have not found any examples of this.
Best Regards MC

回答 (1 件)

Alan Weiss
Alan Weiss 2017 年 10 月 9 日
What makes you think that there is anything wrong? You get a very large answer. Great! fmincon was trying to maximize. Is the answer feasible, meaning does the answer satisfy the bounds? If so, then I don't see a problem.
Alan Weiss
MATLAB mathematical toolbox documentation

カテゴリ

Help Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by