Solving equations in Matlab

3 views (last 30 days)
Grant
Grant on 29 Apr 2013
I am trying to solve a transcendental equation in Matlab, as follows:
fAc=solve((QAc-1)/(QAc+1)==f*arccosh(exp(0.693/f)/2),f);
I am getting the error:
Undefined function or variable 'f'.
Error in analyz (line 74)
fAc=solve((QAc-1)/(QAc+1)==f*arccosh(exp(0.693/f)/2),f);
and I'm not sure how to fix it. I have given QAc fake values that are approximately what they will really be.
Adding a "syms fAc" gives the error:
Undefined function 'arccosh' for input arguments of type 'sym'.
If I try to solve it in Mathematica, I get a complex number (and I want to eventually take the absolute value of it if it ends up being complex).
I know that Mathematica solves this a lot easier, but I'm not sure how to use the "ToMatlab.m" package that I've seen people refer to.
Any help is appreciated.
Thanks.
  2 Comments
Walter Roberson
Walter Roberson on 29 Apr 2013
Do you perhaps mean
syms f QAc
Grant
Grant on 29 Apr 2013
I get the same error if I try that.

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 29 Apr 2013
It's not arccosh, It's acosh
  3 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 29 Apr 2013
syms QAc f
fAc=solve((QAc-1)/(QAc+1)==f*acosh(exp(0.693/f)/2),f);
Grant
Grant on 29 Apr 2013
Edited: Grant on 29 Apr 2013
That works, thank you very much.
Would you mind giving a brief explanation as to why it does, as compared to what I was doing?
Thanks a lot.
EDIT: I just want to make sure, this will work if I give QAc a value right? or would I just remove QAc from the line "syms QAc f"?

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!