/ / Resolviendo sistema de ecuaciones usando matlab - matlab, sistema, ecuaciones

Resolviendo el sistema de ecuaciones usando matlab - matlab, sistema, ecuaciones

Entonces tengo el siguiente sistema de ecuaciones

 x1 - x2 =  20
x2 - x3 =  30
x3 - x4 =  75
x4 - x5 = -49
-x1 + x5 = -20

¿Cómo resolvería el sistema usando Matlab? Yo estoy un poco atrapado.

Existe una buena posibilidad de que no haya solución, pero si alguien me deja saber cómo hacerlo, ¡sería genial!

Respuestas

9 para la respuesta № 1

Primero, convierta esta ecuación en notación de matriz:

A = [ 1 -1  0  0  0
0  1 -1  0  0
0  0  1 -1  0
0  0  0  1 -1
-1  0  0  0  1];

b = [ 20
30
75
-49
-20];

Estás tratando de encontrar x dando Ax = b. No puedes tomar el inverso de A ya que es singular. Para ver esto verifica su rango; rank(A) == 4. Sería 5 si A no eran singulares

Entonces, deberías encontrar lo mejor x aproximándose b cuando se multiplica por A desde la izquierda. Este es un problema de optimización: desea minimizar el error entre Ax y b. Por lo general, las personas usan el método de mínimos cuadrados. Es decir, minimizas la suma de cuadrados de los residuos. Esto puede hacerse por pseudo inverso como sigue:

x = pinv(A) * b

da

x =

31.8000
23.0000
4.2000
-59.6000
0.6000

La mejor aproximación se encuentra por

b2 = A*x


b2 =

8.8000
18.8000
63.8000
-60.2000
-31.2000

Se encuentra que el error de mínimos cuadrados es

e = norm(b-b2)

e =

25.0440

Si quieres probar otros métodos alternativos a los mínimos cuadrados para minimizar Ax-b, puedes google l1-minimization, sparse encoding, etc.


0 para la respuesta № 2

Solo míralo y mentalmente suma las ecuaciones. LHS es cero, el lado derecho es algo positivo, ¡así que no hay solución!