Solve function:Error using sym/solve>getEqns

I am having a trouble using the solve function to solve for B
syms B
M= 1024;
solve('1e-6 = (4/log2(M))*qfunc(sqrt(3*B*log2(M)/(M-1)))',B)
I am getting these now
Error using sym/solve>getEqns
List of equations must not be empty.
Error in sym/solve (line 226)
[eqns,vars,options] = getEqns(varargin{:});
Error in untitled (line 65)
solve('1e-6 = (4/log2(M))*qfunc(sqrt(3*B*log2(M)/(M-1)))',B)

Antworten (2)

Torsten
Torsten am 1 Apr. 2022

1 Stimme

"qfunc" does not accept symbolic input, and your B is symbolic.
Looking at the documentation for qfunc it is straightforward to create a symbolic version —
syms B symqfunc(x)
M= 1024;
symqfunc(x) = erfc(x/sqrt(2)) / 2;
Eqn = 1e-6 == (4/log2(M))*symqfunc(sqrt(3*B*log2(M)/(M-1)));
solve(Eqn,B)
Warning: Unable to solve symbolically. Returning a numeric solution using vpasolve.
ans = 
710.5514874680311536574153363861
.

5 Kommentare

Thank you!
My pleasure!
could you explain this line pls
symqfunc(x) = erfc(x/sqrt(2)) / 2;
Star Strider
Star Strider am 12 Jan. 2024
Quoting Torsten’s comment:
"qfunc" does not accept symbolic input, and your B is symbolic.
It creates a symbolic version of qfunc.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Mathematics finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by