/ / Risolvere un sistema di equazioni lineare con due variabili in MATLAB - matlab, algebra lineare, equazione-risoluzione, bisection

Risolvere un sistema lineare di equazioni con due variabili in MATLAB - matlab, algebra lineare, equazione-risoluzione, bisection

Potrebbe sembrare una domanda semplice. Ne ho bisogno, comunque. Supponiamo di avere due equazioni:

2 * y + x + 1 = 0

e

y - 2 * x = 0

Mi piacerebbe trovare la loro bisection che può essere calcolata da questa equazione:

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

Per rendere la lunga storia breve, abbiamo solo bisogno di risolvere questo sotto il sistema di equazione:

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

Tuttavia, usando solve funzione di 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)   ;

Mi darà:

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

Ma, sto cercando le equazioni di risultato, che è:

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

Quindi, qualcuno sa come posso ottenere l'equazione della riga precedente anziché il punto di risultato? Grazie,

risposte:

2 per risposta № 1

Il seguente dovrebbe risolvere entrambe le equazioni con y sul lato sinistro:

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

Risultato:

y1 =

- 3*x - 1

y2 =

x/3 - 1/3

Per inciso, sarebbe molto più veloce risolvere questo sistema considerandolo un problema di inversione di matrice Ax=b piuttosto che usare gli strumenti simbolici di MATLAB:

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

Risultato:

x =

-0.2000
-0.4000