How to solve symbolic system of equations?
10 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Kenneth Eaton
2011 年 1 月 26 日
>> 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 件のコメント
Walter Roberson
2011 年 1 月 27 日
You can use symvar() and coeff() to extract the variables and their coefficients from multinomial systems.
その他の回答 (1 件)
Paulo Silva
2011 年 1 月 27 日
%'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 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!