Hi everyone
I've been struggling to solve a non-linear system of parametric equations for a certain range of of values with the command fsolve.
Here is my discribed system function :
function F=thsol(th)th3=1 F = @(th) [1.*cos(th1)+0.6.*cos(th2)+0.2.*cos(th3)1.*sin(th1)+0.6.*sin(th2)+0.2.*sin(th3)-1];
this works :
sol = fsolve (thsol(th),[1,1])
but when i define th3 as a variable as followed :
function F=thsol(th,th3) F = @(th,th3) [1.*cos(th1)+0.6.*cos(th2)+0.2.*cos(th3)1.*sin(th1)+0.6.*sin(th2)+0.2.*sin(th3)-1];
and write down :
th3=1sol = fsolve (@(th) thsol(th,th3),[1,1])
i get this :
"Warning: Trust-region-dogleg algorithm of FSOLVE cannot handle non-square systems; usingLevenberg-Marquardt algorithm instead. > In fsolve at 314??? Undefined function or method 'isfinite' for input arguments of type 'function_handle'.Error in ==> levenbergMarquardt at 14if any(~isfinite(costFun))Error in ==> fsolve at 373 [x,FVAL,JACOB,EXITFLAG,OUTPUT,msgData] = ..."
I really don't get what's going wrong since i'm trying to solve the exact same system with the exact same values, only calling th3 as variable parameter. Anyone could tell me where i went wrong? thank you all
Best Answer