0
$\begingroup$

Recently, I studied A research paper where author has compared his proposed method with several other existing method on a randomly sigular matrices with fixed condition number. My question is can we generate a random matrices with desired condition number using matlab?

Here is the link of paper: An improved method for the computation of the Moore-Penrose inverse matrix, table 3

Please clarify my doubt. I would be very much thankful to you.

  • 0
    I am sorry I don't know how to insert hyperlink. I am giving here http://arxiv.org/pdf/1102.1845.pdf2012-09-18
  • 0
    I think the question has a little problem. Singular matrices have at least one singular value equals zero.2012-09-18

1 Answers 1

4

Matrices in Table 3 are well-known matrices which are close to singular. The condition number is defined as the ratio between the maximal and the minimal singular values. In order to generate a matrix with a desired condition number, you can use SVD decomposition and modify the matrix with the singular values:

nr=4; %Number of rows nc=5; %Number of columns CondNumb=10*sqrt(2); %Desired condition number A=randn(nr,nc); [U,S,V]=svd(A); S(S~=0)=linspace(CondNumb,1,min(nr,nc)); A=U*S*V'; 

Regards, Fernando

  • 0
    Thanks dear it is really helpful to me. I have few queries please clarify me. I didn't get this : CondNumb=10*sqrt(2). Also how to modify the matrix with the singular vectors. I am sorry for my silly question.2012-09-18
  • 1
    You are welcome! CondNumb=10*sqrt(2) is just an example. For instance, if you want a condition number of 1000, you have to set CondNumb=1000. Regarding the modification of the matrix with the singular vectors, it was an error. I was refering to the matrix of singular values S. Modifying the orifinal matrix S with the instruction S=diag(linspace(CondNumb,1,N)), allows you to change the condition number. Hope this helps2012-09-19
  • 0
    Thanks for your answer. Your suggested method is working for square matrices but I want to use that for rectangular matrices. Whenever I am running the code it is showing error for S. Error is matrix dimension is not agree. I am unable to aplly proper code to make it rectangular. This is my last question from you. Please help me.2012-09-19
  • 1
    You are welcome! I edit the original code for rectangular matrices. Hope it helps.2012-09-20