¿Cómo se resuelve la solución (no trivial) Ax = 0 para x en MATLAB?¿Cómo resolver una matriz en MATLAB?
A = matrix
x = matrix trying to solve for
He intentado resolver ('A * x = 0', 'x'), pero solo me dan 0 para una respuesta.
¿Cómo se resuelve la solución (no trivial) Ax = 0 para x en MATLAB?¿Cómo resolver una matriz en MATLAB?
A = matrix
x = matrix trying to solve for
He intentado resolver ('A * x = 0', 'x'), pero solo me dan 0 para una respuesta.
Tenga en cuenta que nulo (A) hace lo mismo (para una matriz de rango deficiente) como el siguiente, pero esto es usar la función svd(A)
en MATLAB (que como he mencionado en mis comentarios es lo null(A)
hace).
[U S V] = svd(A);
x = V(:,end)
Para más información sobre esto, he aquí un link relacionado con este (no se puede publicarla en aquí debido a las fórmulas).
Si desea una sensación más intuitiva de descomposiciones singulares y de valores propios, consulte eigshow
en MATLAB.
gracias por la explicación :) – yxk
Puede usar N = null(A)
para obtener una matriz N
. Cualquiera de las columnas de N
(o, de hecho, cualquier combinación lineal de columnas de N
) satisfará Ax = 0
. Esto describe todo lo posible x
- acaba de encontrar una base ortogonal para el espacio nulo de A
.
Nota: solo puede encontrar un x
si A
tiene un espacio nulo no trivial. Esto ocurrirá si rank(A) < #cols of A
.
Puede ver si MATLAB tiene una descomposición de valor singular en su caja de herramientas. Eso te dará el espacio nulo del vector.
null(A)
le dará la respuesta directa. Si necesita una solución no trivial, intente con el formulario de escala escalonada reducida y consulte la primera página del pdf.
R = rref(A)
es invertible A? – manji
invertibilidad no es particularmente relevante (por sí mismo). – Peter
si A es invertible, la única solución para Ax = 0 es 0, ¿no? – manji