/ / Résolution d'un système d'équation linéaire à deux variables dans MATLAB - matlab, algèbre linéaire, résolution d'équation, bissection

Résoudre un système d'équations linéaire à deux variables dans MATLAB - matlab, algèbre linéaire, résolution d'équations, bissection

Cela peut sembler une question simple. J'en ai besoin, cependant. Supposons que nous avons deux équations:

2 * y + x + 1 = 0

et

y - 2 * x = 0

Je voudrais trouver leur bissection qui peut être calculée à partir de cette équation:

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

Pour résumer la longue histoire, il suffit de résoudre le système d'équation ci-dessous:

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

Cependant, en utilisant solve fonction 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)   ;

Va me donner:

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

Mais je cherche les équations de résultat qui sont:

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

Alors, est-ce que quelqu'un sait comment je peux obtenir l'équation de la ligne ci-dessus au lieu du point de résultat? Merci,

Réponses:

2 pour la réponse № 1

Ce qui suit devrait résoudre les deux équations avec y sur le côté gauche:

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

Résultat:

y1 =

- 3*x - 1

y2 =

x/3 - 1/3

En passant, il serait beaucoup plus rapide de résoudre ce système en le considérant comme un problème d'inversion de matrice Ax=b plutôt que d’utiliser les outils symboliques de MATLAB:

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

Résultat:

x =

-0.2000
-0.4000