How to solve symbolic system of equations?
22 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I am dynamically generating a system of symbolic linear equations that I trying to figure out how to solve. For example,
syms a b c
Eqs = [3*a + 4*b + 7*c + 11; 5*a + 3*b + 3*c + 4; 7*a + 13*b + 5*c + 9];
Since these equations are dynamically generated based on user parameters, the variables names can change and so forth, so that is why I need to do this symbolically.
If you do:
rref(Eqs)
you get ans =[1; 0; 0] which is weird.
If anyone knows how to solve this, please let me know. I would appreciate it. If anyone can let me know how to parse these symbolic expressions, I would appreciate it too. How to separate and isolate different variables.
Thanks, Ali
0 commentaires
Réponse acceptée
Kenneth Eaton
le 26 Jan 2011
>> S = solve(Eqs)
S =
a: [1x1 sym]
b: [1x1 sym]
c: [1x1 sym]
And you can convert the symbolic results in these fields to numeric values using the functions SUBS or DOUBLE:
>> subs(S.a)
ans =
0.2773
Or you could convert all the fields to numeric values and place them in a vector with one call to STRUCTFUN:
>> structfun(@subs,S)
ans =
0.2773 % The value for a
-0.2455 % The value for b
-1.5500 % The value for c
5 commentaires
Walter Roberson
le 27 Jan 2011
You can use symvar() and coeff() to extract the variables and their coefficients from multinomial systems.
Plus de réponses (1)
Paulo Silva
le 27 Jan 2011
%'3*a + 4*b + 7*c + 11=0' -> '3*a + 4*b + 7*c = -11'
%'5*a + 3*b + 3*c + 4=0' -> '5*a + 3*b + 3*c = -4'
%'7*a + 13*b + 5*c + 9=0' -> '7*a + 13*b + 5*c = -9'
A=[3 4 7
5 3 3
7 13 5];
B=[-11
-4
-9];
X=linsolve(A,B); or X=A\B , same results
a=X(1);
b=X(2);
c=X(3);
0 commentaires
Voir également
Catégories
En savoir plus sur Conversion Between Symbolic and Numeric dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!