Failure in initial user-supplied objective function evaluation. FSOLVE cannot continue.
1 view (last 30 days)
Show older comments
Marios Karatiso
on 15 Apr 2019
Commented: Marios Karatiso
on 15 Apr 2019
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
0 Comments
Accepted Answer
madhan ravi
on 15 Apr 2019
Edited: madhan ravi
on 15 Apr 2019
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)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!