How to use the solve function?!!

3 views (last 30 days)
Alex Mannings
Alex Mannings on 19 Nov 2013
Commented: Alex Mannings on 19 Nov 2013
Hi Everyone, this is my second question since the first one i stated it with a mistake.
I am trying to solve this equation for Mx :
nux= ((gam+1)/(gam-1))^(1/2) * atan(((gam-1)/(gam+1))*(Mx^2-1))^(1/2)-atan(Mx^2-1)^(1/2);
The values of nux and gam are given.
I tried solve this equation using the solve function (according to http://www.mathworks.com/help/symbolic/solve.html this link) but it didn't work, this is how i wrote it:
Mx=solve(nux-((gam+1)/(gam-1))^(1/2) * atan(((gam-1)/(gam+1))*(Mx^2-1))^(1/2)-atan(Mx^2-1)^(1/2)==0, Mx, 'Real');
The error that i kept getting was:
"Cannot find an exact (case-sensitive) match for 'Mx'
The closest match is: mx in C:\Program Files\MATLAB\R2012a\toolbox\robust\rctobsolete\mutools\commands\mx.m"
Please help me fix this problem, because i need the solution for that equation asap.
Thank you.

Answers (1)

Walter Roberson
Walter Roberson on 19 Nov 2013
syms Mx
output_MX = solve(nux-((gam+1)./(gam-1)).^(1/2) * atan(((gam-1)./(gam+1)).*(Mx.^2-1)).^(1/2)-atan(Mx.^2-1).^(1/2)==0, Mx, 'Real');
  1 Comment
Alex Mannings
Alex Mannings on 19 Nov 2013
Thank you Walter, your change did get the code to move little bit but i got this error now:
Error using solve>processOnOff (line 294)
'Real' requires a value.
Error in solve>getEqns (line 257) [k, options] = processOnOff(k, options, v, vc, nargin, varargin);
Error in solve (line 150)
[eqns,vars,options] = getEqns(varargin{:});
Error in DDcode (line 36)
output_MX = solve(nux-((gam+1)./(gam-1)).^(1/2) * atan(((gam-1)./(gam+1)).*(Mx.^2-1)).^(1/2)-atan(Mx.^2-1).^(1/2)==0, Mx, 'Real');

Sign in to comment.

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!