Return if No Solution
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Allison Bushman
 el 13 de Sept. de 2019
  
    
    
    
    
    Comentada: Walter Roberson
      
      
 el 13 de Sept. de 2019
            I am asked to solve the equation: Ax = B for two randomly generated matrices. Furthermore, I am instructed that the script should return if no solution is found. 
Here is my code:
n=100;
A=randn(n);
B=randn(n);
x = A\B;
I believe I know how to solve the equation, but don't know how to return if no solution is found. Is there a different way that I should be writing this? If not, how to I return if no solution is found?
1 comentario
  the cyclist
      
      
 el 13 de Sept. de 2019
				Can you be more specific as to what you mean by "no solution"?
Do you mean if
x = A\B;
returns an error message, or something else?
Respuesta aceptada
  Walter Roberson
      
      
 el 13 de Sept. de 2019
        You can test rank(A) . If it is < n then no solution is possible.
However, there are full rank matrices for which the matrix is too ill-conditioned for an inverse to be calculated. You can example cond() or rcond() and make a decision as to whether the matrix is too badly conditioned to proceed on.
0 comentarios
Más respuestas (1)
  David Hill
      
      
 el 13 de Sept. de 2019
        If A will always be a square matrix, then if the det(A)==0 then return (no solution).
1 comentario
  Walter Roberson
      
      
 el 13 de Sept. de 2019
				det()==0 is not as good a test as rank() because det() is more prone to round-off error.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!