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)

Risposte (2)

Torsten
Torsten il 1 Apr 2022
"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 Commenti

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

Accedi per commentare.

Categorie

Scopri di più su Mathematics in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by