2017-10-20 35 views
0

J'utilise la fonction subs dans Matlab après avoir résolu les symboles inconnus x et y en fonction des symboles connus a et b. Après avoir résolu x et y en termes de a et b, je voudrais que Matlab utilise a et b au lieu de x et y. Voir le code ci-dessous:Comment conserver une nouvelle valeur symbolique pour les sous-marins par Matlab Code

clc 
clear all 
syms a b real; 
syms x y real; 
eqns = [x + 2*y + 4*b == 5*a; 
     y == 3*b]; 
vars = [x,y]; 
solution = solve(eqns,vars); 
x = subs(x,solution.x) 
y = subs(y,solution.y) 
tst = 5*vars 

La sortie de ce code est: x = 5 * a - 10 * b

y = 3 * b

tst = [5 * x, 5 * y]

Je voudrais obtenir ma dernière réponse en termes de a et b. Je suppose que la ligne où j'ai utilisé subs pour x et y devrait le changer, mais ce n'est pas le cas.

Merci!

Répondre

0

Vous devez mettre à jour votre vecteur vars après la subs:

clc 
clear all 
syms a b real; 
syms x y real; 
eqns = [x + 2*y + 4*b == 5*a; 
     y == 3*b]; 
vars = [x,y]; 
solution = solve(eqns,vars); 
x = subs(x,solution.x) 
y = subs(y,solution.y) 
vars = [x,y]; 
tst = 5*vars 
+0

oui! c'est correct! Merci! – PatStarks

+0

@PatStarks Pouvez-vous marquer comme répondu? – Alex

+0

oui! mais comment? S'il vous plaît advsie – PatStarks