LMI in Matlab scaling to improve condition number?

Click For Summary
SUMMARY

The discussion focuses on optimizing the condition number of a matrix A in MATLAB by scaling it with a diagonal matrix D, which incorporates different units for time (T) and length (L). The user seeks a method to determine optimal values for T and L, specifically through gradient-based or Linear Matrix Inequalities (LMI) approaches. Suggestions include exploring global optimization methods like genetic algorithms, but the user emphasizes a preference for gradient-based techniques or MATLAB's LMI capabilities. Key references include MATLAB's LMI documentation and a book by Byod for further context.

PREREQUISITES
  • Understanding of matrix operations in MATLAB
  • Familiarity with Linear Matrix Inequalities (LMI)
  • Knowledge of optimization techniques, particularly gradient-based methods
  • Basic concepts of condition numbers in linear algebra
NEXT STEPS
  • Learn MATLAB's LMI toolbox for formulating and solving LMIs
  • Study gradient descent algorithms for optimization in MATLAB
  • Explore genetic algorithms for global optimization in MATLAB
  • Review literature on condition number minimization techniques
USEFUL FOR

Researchers, mathematicians, and engineers working on optimization problems in MATLAB, particularly those focusing on matrix condition numbers and LMI applications.

ytht100
Messages
20
Reaction score
0
A=[ 8147 6324 9575 9572
9058 0975 9649 4854
1270 2785 1576 8003
9134 5469 9706 1419];

D=diag([T^(-3)*L^2 T^(-3)*L^2 T^(-1)*L T^0*L^0]);

I have matrix A whose first two columns are of the units T^3/L^2, third columns unit is T/L, and the last column is non-dimensional. T is time and L is length.

Therefore, if I give different (including non-integer) units to T and L by multiplying A with D for scaling A, I have different resulting matrix A*D with different condition number.

Question: how can obtain an optimal T and L?

Attempted solutions: 1, it seems like an optimization problem. But I don't know how to optimize it, I don't know how to obtain the gradient? The real situation has much bigger A, therefore can't be solved analytically for eigenvalue, therefore can'b be solved analytically for condition number.
2, it seems the problem can be converted into Linear Matrix Inequalities for solution in Matlab (http://users.isy.liu.se/rt/andersh/teaching/lmi.pdf). But I don't know exactly how? Specifically, I don't know to code the problem into a style of https://www.mathworks.com/help/robust/lmis.html.

Could you please provide any suggestions? I am stucked weeks on this problem.
 
Physics news on Phys.org
Can you provide some context here?

What is it you’re trying to solve?

Is this a physics problem? Is it homework?

Did it come from some book?

Is it something for your work or research?

One way to optimiz is to try a range of values for t and for l and then see which one gives you the best results.

It’s not clear to me what best results means in this case. Is the determinate of the AD product at a minimal value? Or something else entirely?
 
It is my own research. I am trying to solve a kind of least-square problem. If you see the link I provided above (http://users.isy.liu.se/rt/andersh/teaching/lmi.pdf) you will understand more what I am talking about. Also you can read the book of Byod (https://people.eecs.berkeley.edu/~elghaoui/Pubs/lmibook.pdf, page37-38) you will understand more.

Actually the question does NOT need a context because it is a basic and fundamental math problem.

I can understand your suggestion "One way to optimiz is to try a range of values for t and for l and then see which one gives you the best results.", your suggestion is a kind of global optimization method such as genetic algorithm. I am looking for a gradient-based method or Matlab's LMI-based method.

As I have said in the topic, the best result means the smallest condition number.
 
Last edited:

Similar threads

  • · Replies 3 ·
Replies
3
Views
4K