Le 27/01/2016 16:54, fujimoto2005 a écrit :
The feature of my f(x) defined for x>0 is as follows.
f(x)<0 for x<x1
f(x1)=0
f(x) >0 for x1<x<x2
f(x)=0 for x>=x2
'fsolver' gives some x such as x>x2 as a solution.
I want to get x1 as a solution.
--
View this message in context:
http://mailinglists.scilab.org/fsolver-tp4033340p4033345.html
Sent from the Scilab users - Mailing Lists Archives mailing list archive at
Nabble.com.
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users
A quick and dirty way of finding the minimum norm solution is to use
lsqrsolve and to penalize the residual with the squared norm of the
solution, like in this example (find one of the two closest to zero
solution of cos(x)=0) :
function res=f1(x)
res=cos(x)
endfunction
function res=f2(x, m)
res=[f1(x)
%eps^(1/4)*x]
endfunction
format(20)
[x1,v,info]=fsolve(0,f1)
disp(x1)
[x2,v,info]=lsqrsolve(0,f2,2)
[x1,v,info]=fsolve(x2,f1)
disp(x1)
But the main problem is the tuning of the penalization parameter. But when it
works well, you can then start from x2, hoping that you are in the basin of
attraction of your solution.
S.
--
Département de Génie Informatique
EA 4297 Transformations Intégrées de la Matière Renouvelable
Université de Technologie de Compiègne - CS 60319
60203 Compiègne cedex
_______________________________________________
users mailing list
[email protected]
http://lists.scilab.org/mailman/listinfo/users