How do I set a parameter in a symbolic expression?

15 views (last 30 days)
Dear Matlab Community,
I got a problem on how to set a parameter in my program. I solved some equations and the solution is a symbolic equation. This solution is correct. To keep it easy in this question: let the solution be like this:
syms a b
...%here are some equations that solve for a
...%this is the symbolic solution:
a = 3*b
Now I want to set b = 2 for example and wish to get the value for a. It should be a = 6 in that case. How can I set b = 2 and get the solution for a after getting the symbolic solution.
I tried:
a2 = solve(b == 2,a)
but it did not work. I hope someone could help me solving this maybe easy problem, then I can apply it to my original code which is a little more complicated. So I need to set b after solving symbolic for a.
Thank you! Stefan

Answers (2)

Mischa Kim
Mischa Kim on 11 Feb 2015
Edited: Mischa Kim on 11 Feb 2015
Stefan, use
syms a(b)
a = 3*b;
a2 = subs(a,b,2)
  2 Comments
Mischa Kim
Mischa Kim on 11 Feb 2015
Use the double command, see the example below.
syms y(x)
y = x^(1/2)
a1 = subs(y,x,2)
a1 =
2^(1/2)
a2 = double(subs(y,x,2))
1.4142

Sign in to comment.


Stefan Henning
Stefan Henning on 11 Feb 2015
Thanks a lot! Now I get a solution. But one more thing: The value of my specific case has some form like this:
y = -1000/(300*3^(1/2)-100)
How do I get just one value and not an expression? In this case I would like to get
y = -2.383135547
Thank you!
  1 Comment
Mischa Kim
Mischa Kim on 11 Feb 2015
Please add follow-up comments and questions as comments, not as answers. I have answered your question above.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!