# ERROR: FSOLVE requires all values returned by functions to be of data type double.

4 views (last 30 days)
Dhawal Beohar on 18 Mar 2022
Commented: Dhawal Beohar on 19 Mar 2022
I understand FSOLVE does not work with sym variables but it is not working using fzero as well. OR is there any alternative?
function fval = fun(u)
d1=20;
n=10^-11.4;
m=2.7;
a=0.5;
T=1;
PsByN_0dB=25;
PsByN_0=10.^(PsByN_0dB/10);
fun2 = @(u) ((1./u).*log(expint(2,sym(-PsByN_0.*u))).*exp(-PsByN_0*u));
u0 = -0.0031622776;
U = fsolve(fun2,u0)
I have also tried using fzero:
function fval = fun(u)
d1=20;
n=10^-11.4;
m=2.7;
a=0.5;
T=1;
PsByN_0dB=25;
PsByN_0=10.^(PsByN_0dB/10);
fun2 = @(u) ((1./u).*log(expint(2,sym(-PsByN_0.*u))).*exp(-PsByN_0*u));
u0 = -0.0031622776;
fzero (fun2, u0)
##### 2 CommentsShowHide 1 older comment
Dhawal Beohar on 19 Mar 2022
thats the expression with Two-Argument Exponential Integral and if I not use sym it is giving a error.

Walter Roberson on 19 Mar 2022
fun2 = @(u) ((1./u).*log(double(expint(2,sym(-PsByN_0.*u)))).*exp(-PsByN_0*u));
Dhawal Beohar on 19 Mar 2022
Thanks Walter !

R2022a

### Community Treasure Hunt

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

Start Hunting!