/ / Resolver un sistema lineal de ecuaciones con dos variables en MATLAB: matlab, álgebra lineal, resolución de ecuaciones, bisección

Resolviendo un sistema lineal de ecuaciones con dos variables en MATLAB - matlab, álgebra lineal, resolución de ecuaciones, bisección

Podría parecer una pregunta simple. Aunque lo necesito. Asumamos que tenemos dos ecuaciones:

2 * y + x + 1 = 0

y

y - 2 * x = 0

Me gustaría encontrar su bisección que se puede calcular a partir de esta ecuación:

  |x + 2 * y + 1|        |-2 *x +  y |
------------------- = -----------------
(sqrt(2^2 + 1^2))      (sqrt(1^2 + 2^2))

Para resumir la larga historia, solo necesitamos resolver este sistema de ecuación a continuación:

2 * y + x + 1 = -2 *x +  y
and
2 * y + x + 1 =  2 *x -  y

Sin embargo, utilizando solve función de MATLAB:

syms x y
eqn1   = 2 * y + x + 1 == -2 *x +  y ;
eqn2   = 2 * y + x + 1 ==  2 *x -  y ;
[x, y] = solve (eqn1 , eqn2, x, y)   ;

Me dara

x = -1/5 y y = -2/5

Pero, estoy buscando las ecuaciones de resultado, que es:

y = -3 * x - 1 y 3 * y = 2 * x - 1

Entonces, ¿alguien sabe cómo puedo obtener la ecuación de la línea anterior en lugar del punto de resultado? Gracias,

Respuestas

2 para la respuesta № 1

Lo siguiente debe resolver ambas ecuaciones con y en el lado izquierdo:

y1 = solve(eqn1,y)
y2 = solve(eqn2,y)

Resultado:

y1 =

- 3*x - 1

y2 =

x/3 - 1/3

Dejando de lado, sería mucho más rápido resolver este sistema pensándolo como un problema de inversión matricial. Ax=b En lugar de usar las herramientas simbólicas de MATLAB:

A = [1 2; -2 1];
b = [-1; 0];
x = Ab

Resultado:

x =

-0.2000
-0.4000