Failure in initial user-supplied objective function evaluation. FSOLVE cannot continue.

1 view (last 30 days)
Hello, I get the following error when trying to use fsolve:
Error in fsolve (line 218)
fuser = feval(funfcn{3},x,varargin{:});
Caused by:
Failure in initial user-supplied objective function evaluation. FSOLVE cannot continue.
It also prints the following error: Index exceeds matrix dimensions.
Can anyone see where is the error in that situation?
I call the fsolve with that line of code:
sol=fsolve(@set,[1;-1])
The function is the following:
function F=set(x)
Vcc=15;
Rth=(100/3)*10^3;
Re=10*10^3;
Rc=20*10^3;
beta_f=100;
beta_R=1;
Is=5*10^(-16);
Vt=0.025;
Voc=10;
F=[x(1)-(-Rth-Re(beta_f+1))*(Is/beta_f)*(exp(x(1)/Vt)-1)-(-Rth+beta_R*Re)*(Is/beta_f)*(exp(x(2)/Vt)-1)+Voc;
x(2)-(-Rth+Rc*beta_f)*(Is/beta_f)*(exp(x(1)/Vt)-1)-(-Rth-Rc*(beta_R+1))*(Is/beta_f)*(exp(x(2)/Vt)-1)-Vcc+Voc];
end

Accepted Answer

madhan ravi
madhan ravi on 15 Apr 2019
Edited: madhan ravi on 15 Apr 2019
Note: Don't name your function set() will shadow the in-built function set().
sol=fsolve(@set1,[1,-1])
function F=set1(x)
Vcc=15;
Rth=(100/3)*10^3;
Re=10*10^3;
Rc=20*10^3;
beta_f=100;
beta_R=1;
Is=5*10^(-16);
Vt=0.025;
Voc=10;
F=[x(1)-(-Rth-Re*(beta_f+1))*(Is/beta_f)*(exp(x(1)/Vt)-1)-(-Rth+beta_R*Re)*(Is/beta_f)*(exp(x(2)/Vt)-1)+Voc;
% ^----- missed it
x(2)-(-Rth+Rc*beta_f)*(Is/beta_f)*(exp(x(1)/Vt)-1)-(-Rth-Rc*(beta_R+1))*(Is/beta_f)*(exp(x(2)/Vt)-1)-Vcc+Voc];
end
Gives:
Equation solved.
fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.
<stopping criteria details>
sol =
-11.3516
0.7520
>>

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!