Numerical search for the singular points of a complex matrix
Hello, I have a function that takes in a complex number and generates a square matrix of complex numbers. What I am trying to do is to locate the values of s such that , ie that the matrix Z is singular.
To do this, the method I implemented a grid of s values and computed the condition number at each point. From what I gathered from the answers on this site, using MATLAB’s det function outright was not the way to go. While visually this gives the answer I am looking for, it is extremely time intensive and the accuracy of the answer is dependent on the refinement of that grid.
In a research paper I have read (admittedly quite dated ~1972), the method they claim to use is a Newton-Rahpson method to locate the singular points.
They use the Taylor expansion to find the singular point
In this case, I can get as arbitrarily close to as I would like to, and it is easy for me to procure initial guesses that work. However, the implementation of this requires not only the determinant but the derivative of the determinant as well. On top of this, the output must be a complex number, as the final answer must also be a complex number. I’m not sure how they implemented this (and in 1972 no less) such that near the singular point their computation didn’t go crazy, but their answers are certainly correct.
Therefore my question is, is there a good way to apply MATLAB’s det function here to get what I need? Or is there another way for me to do this search for the singular points that doesn’t involve a full sweep of the search space? And less importantly but still curious, how the heck might they have done this in 1972?
Thanks in advance
My code is too long to post but the current setup with the grid formation is basically (this is dummy code, not real, just to give an idea)
num_x = 100;
num_y = 51;
omega = linspace(0, 1, num_x));
sigmas = linspace(0, 2, num_y);
for i=1:num_x
for j=1:num_y
s = sigmas(j) + 1i.*omegas(i);
Z = % some involved square matrix computation here
conds(ii,jj) = cond(Z);
end
endHello, I have a function that takes in a complex number and generates a square matrix of complex numbers. What I am trying to do is to locate the values of s such that , ie that the matrix Z is singular.
To do this, the method I implemented a grid of s values and computed the condition number at each point. From what I gathered from the answers on this site, using MATLAB’s det function outright was not the way to go. While visually this gives the answer I am looking for, it is extremely time intensive and the accuracy of the answer is dependent on the refinement of that grid.
In a research paper I have read (admittedly quite dated ~1972), the method they claim to use is a Newton-Rahpson method to locate the singular points.
They use the Taylor expansion to find the singular point
In this case, I can get as arbitrarily close to as I would like to, and it is easy for me to procure initial guesses that work. However, the implementation of this requires not only the determinant but the derivative of the determinant as well. On top of this, the output must be a complex number, as the final answer must also be a complex number. I’m not sure how they implemented this (and in 1972 no less) such that near the singular point their computation didn’t go crazy, but their answers are certainly correct.
Therefore my question is, is there a good way to apply MATLAB’s det function here to get what I need? Or is there another way for me to do this search for the singular points that doesn’t involve a full sweep of the search space? And less importantly but still curious, how the heck might they have done this in 1972?
Thanks in advance
My code is too long to post but the current setup with the grid formation is basically (this is dummy code, not real, just to give an idea)
num_x = 100;
num_y = 51;
omega = linspace(0, 1, num_x));
sigmas = linspace(0, 2, num_y);
for i=1:num_x
for j=1:num_y
s = sigmas(j) + 1i.*omegas(i);
Z = % some involved square matrix computation here
conds(ii,jj) = cond(Z);
end
end Hello, I have a function that takes in a complex number and generates a square matrix of complex numbers. What I am trying to do is to locate the values of s such that , ie that the matrix Z is singular.
To do this, the method I implemented a grid of s values and computed the condition number at each point. From what I gathered from the answers on this site, using MATLAB’s det function outright was not the way to go. While visually this gives the answer I am looking for, it is extremely time intensive and the accuracy of the answer is dependent on the refinement of that grid.
In a research paper I have read (admittedly quite dated ~1972), the method they claim to use is a Newton-Rahpson method to locate the singular points.
They use the Taylor expansion to find the singular point
In this case, I can get as arbitrarily close to as I would like to, and it is easy for me to procure initial guesses that work. However, the implementation of this requires not only the determinant but the derivative of the determinant as well. On top of this, the output must be a complex number, as the final answer must also be a complex number. I’m not sure how they implemented this (and in 1972 no less) such that near the singular point their computation didn’t go crazy, but their answers are certainly correct.
Therefore my question is, is there a good way to apply MATLAB’s det function here to get what I need? Or is there another way for me to do this search for the singular points that doesn’t involve a full sweep of the search space? And less importantly but still curious, how the heck might they have done this in 1972?
Thanks in advance
My code is too long to post but the current setup with the grid formation is basically (this is dummy code, not real, just to give an idea)
num_x = 100;
num_y = 51;
omega = linspace(0, 1, num_x));
sigmas = linspace(0, 2, num_y);
for i=1:num_x
for j=1:num_y
s = sigmas(j) + 1i.*omegas(i);
Z = % some involved square matrix computation here
conds(ii,jj) = cond(Z);
end
end singular matrix, root search, determinants, nonlinear eigenvalue problem MATLAB Answers — New Questions