Prev: Simulink duplicate data logging
Next: How to copy and add a matrix for a large number of times?
From: drgz on 30 Jun 2010 05:07 As the topic says, does anyone have any tips for improving the conditioned number of a rectangular matrix? I'm using rectangular matrices for estimating a system according to a linear model, y = H*w, however, with the code I use now, the condition number of the complex matrix H can be in the order of 10^6 ~ 10^20. Although I don't get any errors or warnings, and the results in most cases do look OK, however, when going through some literature reg. solving these systems numerically, I always see a paragraph regarding the condition number of the matrix and that it should be as low as possible. I make the H matrix with the following code x - N x 1 complex signal vector (typically a rrc-filtered qam-signal or something) H = zeros(N,(D+1)*(P+1)) P = 7; % max order of nonlinearity (i.e. 7) D = 5; % max memory order (i.e. 5) idx = 0; % iterator for column index for d = 0:D xd = [zeros(d,1); x(1:end-d)]; for P = 0:P idx = idx + 1; H(:,idx) = xd.*abs(xd).^p; % (or some orthogonal polynomial basis functions, e.g., hermitian, laguerre, etc) end end Is it something that I can do in order to improve the condition number of this? I've read a bit about preconditioning, however, if I've understood it correct, most methods are for square matrices, which I don't have in my problem.
From: Faraz Afzal on 30 Jun 2010 06:11 "drgz " <syrehue(a)hotmail.com> wrote in message <i0f1fn$dov$1(a)fred.mathworks.com>... > As the topic says, does anyone have any tips for improving the conditioned number of a rectangular matrix? > > I'm using rectangular matrices for estimating a system according to a linear model, > > y = H*w, > > however, with the code I use now, the condition number of the complex matrix H can be in the order of 10^6 ~ 10^20. Although I don't get any errors or warnings, and the results in most cases do look OK, however, when going through some literature reg. solving these systems numerically, I always see a paragraph regarding the condition number of the matrix and that it should be as low as possible. > > I make the H matrix with the following code > > x - N x 1 complex signal vector (typically a rrc-filtered qam-signal or something) > H = zeros(N,(D+1)*(P+1)) > P = 7; % max order of nonlinearity (i.e. 7) > D = 5; % max memory order (i.e. 5) > idx = 0; % iterator for column index > for d = 0:D > xd = [zeros(d,1); x(1:end-d)]; > for P = 0:P > idx = idx + 1; > H(:,idx) = xd.*abs(xd).^p; % (or some orthogonal polynomial basis functions, e.g., hermitian, laguerre, etc) > end > end > > Is it something that I can do in order to improve the condition number of this? I've read a bit about preconditioning, however, if I've understood it correct, most methods are for square matrices, which I don't have in my problem. Hi Mr/Ms. (drgz) Similar problem has been asked and solved artistically in the past , and your problem falls into the same category, I would say you can still apply the left preconditioning methods where a diagonal matrix of max values of rows are used to improve conditions.. Following post will be helpful for you. http://www.mathworks.com/matlabcentral/newsreader/view_thread/268503 Let me know if this proved to be help. Regards, Muhammad Faraz
From: drgz on 6 Jul 2010 05:28 "Faraz Afzal" <farazafzal(a)gmail.com> wrote in message <i0f57n$fiv$1(a)fred.mathworks.com>... > "drgz " <syrehue(a)hotmail.com> wrote in message <i0f1fn$dov$1(a)fred.mathworks.com>... > > As the topic says, does anyone have any tips for improving the conditioned number of a rectangular matrix? > > > > I'm using rectangular matrices for estimating a system according to a linear model, > > > > y = H*w, > > > > however, with the code I use now, the condition number of the complex matrix H can be in the order of 10^6 ~ 10^20. Although I don't get any errors or warnings, and the results in most cases do look OK, however, when going through some literature reg. solving these systems numerically, I always see a paragraph regarding the condition number of the matrix and that it should be as low as possible. > > > > I make the H matrix with the following code > > > > x - N x 1 complex signal vector (typically a rrc-filtered qam-signal or something) > > H = zeros(N,(D+1)*(P+1)) > > P = 7; % max order of nonlinearity (i.e. 7) > > D = 5; % max memory order (i.e. 5) > > idx = 0; % iterator for column index > > for d = 0:D > > xd = [zeros(d,1); x(1:end-d)]; > > for P = 0:P > > idx = idx + 1; > > H(:,idx) = xd.*abs(xd).^p; % (or some orthogonal polynomial basis functions, e.g., hermitian, laguerre, etc) > > end > > end > > > > Is it something that I can do in order to improve the condition number of this? I've read a bit about preconditioning, however, if I've understood it correct, most methods are for square matrices, which I don't have in my problem. > > > Hi Mr/Ms. (drgz) > > Similar problem has been asked and solved artistically in the past , and your problem falls into the same category, > > I would say you can still apply the left preconditioning methods where a diagonal matrix of max values of rows are used to improve conditions.. > > Following post will be helpful for you. > > http://www.mathworks.com/matlabcentral/newsreader/view_thread/268503 > > Let me know if this proved to be help. > > Regards, > Muhammad Faraz Thanks for the link! I haven't had time to try to implement the various methods disucssed in the other post yet, but I'll give it a try the coming week. Best regards, drgz
From: Greg Heath on 6 Jul 2010 09:07 On Jun 30, 5:07 am, "drgz " <syre...(a)hotmail.com> wrote: > As the topic says, does anyone have any tips for improving the conditioned number of a rectangular matrix? > > I'm using rectangular matrices for estimating a system according to a linear model, > > y = H*w, > > however, with the code I use now, the condition number of the complex matrix H can be in the order of 10^6 ~ 10^20. Although I don't get any errors or warnings, and the results in most cases do look OK, however, when going through some literature reg. solving these systems numerically, I always see a paragraph regarding the condition number of the matrix and that it should >be as low as possible. especially if you are using w = inv(H)*y. However, I hope you aren't doing that. help slash Greg
From: drgz on 6 Jul 2010 09:29 Greg Heath <heath(a)alumni.brown.edu> wrote in message <a74d56d1-1acc-48eb-b23e-0838de7b82f1(a)i28g2000yqa.googlegroups.com>... > On Jun 30, 5:07 am, "drgz " <syre...(a)hotmail.com> wrote: > > As the topic says, does anyone have any tips for improving the conditioned number of a rectangular matrix? > > > > I'm using rectangular matrices for estimating a system according to a linear model, > > > > y = H*w, > > > > however, with the code I use now, the condition number of the complex matrix H can be in the order of 10^6 ~ 10^20. Although I don't get any errors or warnings, and the results in most cases do look OK, however, when going through some literature reg. solving these systems numerically, I always see a paragraph regarding the condition number of the matrix and that it should >be as low as possible. > > especially if you are using > > w = inv(H)*y. > > However, I hope you aren't doing that. > > help slash > > Greg So far I've mostly used w = pinv(H)*y; (or pseudoinverse by Bruno Luong) since I for some other similar matrices (constructed with different polynomial basis functions) tend to get rank deficiency problems if I use w = H\y; So basically I'd like to see if by improving the condition number, the modeling of the nonlinear system will be improved as well (better MSE or such). But I'll come back to this when I've made some attempts on preconditioning the data matrix :)
|
Next
|
Last
Pages: 1 2 Prev: Simulink duplicate data logging Next: How to copy and add a matrix for a large number of times? |