1 votos

Transforma esta ecuación matricial, ¿es solucionable?

Este problema ha ocurrido al trabajar en mi tesis de licenciatura: Tengo la siguiente ecuación matricial $A\vec{x}=\vec{b}$

$$\begin{pmatrix} \dots & \dots & \dots \\ \dots & \dots & \dots \\ \dots & \dots & \dots \\ \dots & \dots & \dots \\ \end{pmatrix} \begin{pmatrix} \vdots \\ x_m \\ 0 \\ \vdots \\ \end{pmatrix} = \begin{pmatrix} \vdots \\ 0 \\ b_m \\ \vdots \\ \end{pmatrix} $$ donde $A$ es solo alguna matriz. (Las entradas son funciones de Bessel) En principio, la matriz y los vectores tienen dimensiones infinitas pero nos gustaría restringir el problema a dimensiones finitas y llegar a una afirmación si hay soluciones o no para cualquier $x_m, b_m$. No necesito encontrar una solución, mostrar que hay / no hay una solución sería absolutamente suficiente. Por lo tanto, nos gustaría calcular el determinante (numéricamente). Sin embargo, en este momento hay variables "libres" $b_m$ en el vector solución a la derecha. Obviamente, antes de calcular el determinante tendría que de alguna manera cambiar estas variables al vector $\vec{x}$ y transformar la ecuación presente en una homogénea.

Veamos un ejemplo $2\times2$ para ilustrar mis puntos: $$\begin{pmatrix} A & B \\ C & D \\ \end{pmatrix} \begin{pmatrix} x_1 \\ 0 \\ \end{pmatrix} = \begin{pmatrix} 0 \\ b_1 \\ \end{pmatrix}$$

Lo que hemos ideado hasta ahora:

Para empezar, las ecuaciones representadas por esta ecuación matricial son $$ A x_1 = 0\\ C x_1 = b_1$$ Si $C$ fuera distinto de cero, uno podría invertir la segunda ecuación a $x_1 = C^{-1} b_1$, e insertarlo en la primera. Esto arrojaría: $$ A x_1 =0 \\ \frac{A}{C} b_1 = 0 $$ lo cual se podría escribir como una ecuación matricial homogénea $$\begin{pmatrix} A & 0 \\ 0 & \frac{A}{C} \\ \end{pmatrix} \begin{pmatrix} x_1 \\ b \\ \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\ \end{pmatrix}$$

Creo que este método podría aplicarse a dimensiones arbitrarias, la advertencia es que invertir las entradas de mi matriz probablemente no sea una buena idea, ya que las funciones de Bessel tienen ceros que arruinarían toda la situación.

Otra observación interesante es que el lado derecho de la matriz es completamente obsoleto. Mirando el ejemplo $2\times2$, las entradas $B$ y $D$ no contribuyen en absoluto al problema. Mirando casos mayores, por ejemplo $4\times4$, siempre se puede separar la ecuación matricial en una homogénea y una inhomogénea con las entradas de arriba a la izquierda y las entradas de abajo a la izquierda. Esto me hace creer que podría haber algún truco para lograr lo que quiero. (Ver ejemplo a continuación) $$ \begin{pmatrix} A & B & C & D\\ E & F & G & H\\ M & N & O & P\\ Q & R & S & T\\ \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ 0 \\ 0 \\ \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\ b_1 \\ b_2 \\ \end{pmatrix} $$

en realidad es solo $$ \begin{pmatrix} A & B \\ E & F \\ \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\ \end{pmatrix}$$ (homogénea) y $$ \begin{pmatrix} M & N \\ Q & R \\ \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ \end{pmatrix} = \begin{pmatrix} b_1 \\ b_2 \\ \end{pmatrix}$$ (inhomogénea) Quizás, se podría usar la ecuación homogénea para establecer alguna restricción en los $x_i$ y luego usar la ecuación inhomogénea.

Aquí es donde estoy atascado. Por favor, comparte cualquier idea. También, si crees que conoces una forma diferente de afirmar algo acerca de si las ecuaciones son resolubles en general.

1voto

Mark L. Stone Puntos 290

En primer lugar, computar numéricamente el determinante es algo terrible debido a la inestabilidad numérica.

No mencionas nada sobre la necesidad de velocidad, por lo que asumiré que solo quieres obtener una decisión correcta sobre la viabilidad y no te preocupas por trucos para hacer la determinación lo más rápido posible. Tienes un sistema de ecuaciones lineales (sistema de igualdades lineales). Por lo tanto, puedes usar un Solver de Programación Lineal u otro optimizador que acepte restricciones lineales (de igualdad) para determinar si el problema es viable.

Declara qué variables son "optimización" (también conocidas como variables de decisión), incluyendo cualquier b. Puedes ingresar cualquier función objetivo que desees, incluyendo una función objetivo trivial como cero. Muchas interfaces de optimización no te exigen ingresar un objetivo en absoluto. El optimizador te devolverá si el problema es viable o inviable.

Aquí tienes un ejemplo usando CVX como interfaz. Puedes adaptar y corregir la forma de la(s) ecuación(es) y las declaraciones de variables como mejor te parezca, pero he asumido que los últimos n componentes del vector del lado izquierdo deben ser cero y los primeros m componentes del vector del lado derecho deben ser cero.

cvx_begin
variables x(m) b(n)
Giant_matrix * [x;zeros(n,1)] == [zeros(m,1);b]
cvx_end

o

cvx_begin
variables x(m+n) b(m+n)
Giant_matrix * x == b
x(m+1:m+n) == 0
b(1:m) == 0
cvx_end

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