1 votos

Resolución de la ecuación lineal de dos vectores columna

Considere lo siguiente ejemplos de dos vectores columna formateados en MatLab x1 y x2 y un resultado escalar x3 por cada ejemplo:

primer ejemplo

x1 = [1;1;1];
x2 = [3;3;3];
x3 = x1\x2; % which is same as x3 = mldivide(x1,x2)

x3 da como resultado 3.


Ahora el segundo ejemplo

x1 = [0.5;1;1];
x2 = [3;3;3];
x3 = x1\x2; % which is same as x3 = mldivide(x1,x2)

x3 da como resultado 3,3333.


Y un tercer ejemplo

x1 = [1;2;3];
x2 = [4;5;6];
x3 = x1\x2; % which is same as x3 = mldivide(x1,x2)

Aquí x3 da como resultado 2,2857.


Podrían decirme cuál es el proceso de solución para obtener ese valor escalar en el segundo y tercero ¿ejemplo?

Entiendo la resolución de ejemplos como éste:

A =

 1     1     1     1
 0     2     5    -1
 2     5    -1     1
 2     2     2     1

B =

 7    14
-5   -10
28    56
13    26

Lo que resulta en X (A \B )

X =

 5    10
 3     6
-2    -4
 1     2

Pero la segunda y la tercera me dejan perplejo ahora mismo. Y he intentado llegar al resultado por mi cuenta así como he buscado en la web. Pero como estoy preguntando aquí es obvio que no he encontrado la solución por mí mismo. :-)

No soy un experto en matemáticas. Y sí, no soy un genio. Pero me interesan las matemáticas y la resolución de "misterios".

¡Muchas gracias por cualquier ayuda!

1voto

arriopolis Puntos 18

El operador de barra invertida en Matlab, cuando se utiliza como A\B intenta encontrar una solución a la ecuación $Ax=B$ . Si se puede encontrar una solución exacta, se devuelve (normalmente una aproximación cercana) a esta solución. Si no es posible, se devuelve la solución $x$ minimizando la norma 2 del vector de error $Ax-B$ se devuelve. Esta solución se calcula encontrando el pseudoinverso de $A$ y multiplicándolo por $B$ . Más concretamente, el operador de barra invertida devuelve:

$$x_{\text{sol}} = \text{argmin}_x \left\|Ax-B\right\|_2$$

y este vector $x_{\text{sol}}$ se calcula multiplicando el pseudoinverso de $A$ con $B$ :

$$x_{\text{sol}} = (A^TA)^{-1}A^TB$$

El cálculo del pseudoinverso de forma numéricamente estable se puede conseguir en Matlab con el programa pinv comando.

En su primer ejemplo, se puede encontrar una solución exacta, por lo que se devuelve (cerca de la precisión de la máquina probablemente). En el segundo y tercer ejemplo, no se puede encontrar una solución exacta, por lo que la solución puede parecer un poco impar a primera vista, pero es la solución $x$ minimizando la norma de $Ax-B$ .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X