<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><br>
</p>
<div class="moz-cite-prefix">Le 09/01/2020 à 22:32, David Brant a
écrit :<br>
</div>
<blockquote type="cite"
cite="mid:1578605551155-0.post@n3.nabble.com">
<pre class="moz-quote-pre" wrap="">How may i (if possible?) reconfigure the least-squares problem to be solved
with a minimalist call to fmincon (from the fossee toolbox)?
I tried everything, but must be (seriously?) overlooking something! Perhaps
something like:
function z=fun(p)
z=DAT(:,2)-p(1)*exp(p(2)*DAT(:,1))-p(3)*ones(DAT(:,1))
endfunction
function dz=dfun(p)
var=exp(p(2)*DAT(:,1))
dz=[-var..
-p(1)*DAT(:,1).*var..
-ones(var)]
endfunction
//function [f,g,ind]=costf(p,ind)
// f=fun(p); g=dfun(p)
//endfunction
function [f,g,ind]=costf(p,ind)
f=norm(fun(p))^2;
// g=2*dfun(p)'*fun(p);
g=2*numderivative(fun,p)'*fun(p);
endfunction
DAT=[0 0;0 1;1 1;2 1.5;2 2];
p0=[0 0 0];
A=[]; b=[];
[popt,fopt]=fmincon(costf,p0,A,b);
disp(popt,'popt',fopt,'fopt');
fmincon.sce <a class="moz-txt-link-rfc2396E" href="https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/mailinglists.scilab.org/file/t490392/fmincon.sce"><https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/mailinglists.scilab.org/file/t490392/fmincon.sce></a>
Dave</pre>
</blockquote>
<p>By default, fmincon expects costf to return only the objective
function. Hence you should define it like this</p>
<pre class="moz-quote-pre" wrap="">function f=costf(p)
f = norm(fun(p))^2;
endfunction</pre>
<p>There is a way to provide the exact gradient of f, as described
here:
<a class="moz-txt-link-freetext" href="https://scilab.in/fossee-scilab-toolbox/optimization-toolbox/functions/fmincon">https://scilab.in/fossee-scilab-toolbox/optimization-toolbox/functions/fmincon</a></p>
<pre class="moz-quote-pre" wrap="">function g = grad(p)
g = 2*dfun(p)'*fun(p);
endfunction</pre>
<pre class="scilabcode"><span class="default">options = list("GradObj",grad)
xopt</span><span class="default"> = </span><span class="functionid">fmincon</span><span class="default">(</span><span class="default">f</span><span class="default">,</span><span class="default">x0</span><span class="default">,</span><span class="default">A</span><span class="default">,</span><span class="default">b</span><span class="default">,</span><span class="default">[]</span><span class="default">,</span><span class="default">[]</span><span class="default">,</span><span class="default">[]</span><span class="default">,[]</span><span class="default"></span><span class="default">,</span><span class="default">[]</span><span class="default">,</span><span class="default">options</span><span class="default">)</span></pre>
<p>S.<br>
</p>
<blockquote type="cite"
cite="mid:1578605551155-0.post@n3.nabble.com">
<pre class="moz-quote-pre" wrap="">
--
Sent from: <a class="moz-txt-link-freetext" href="https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/mailinglists.scilab.org/Scilab-users-Mailing-Lists-Archives-f2602246.html">https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/mailinglists.scilab.org/Scilab-users-Mailing-Lists-Archives-f2602246.html</a>
_______________________________________________
users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:users@lists.scilab.org">users@lists.scilab.org</a>
<a class="moz-txt-link-freetext" href="https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users">https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users</a>
</pre>
</blockquote>
<pre class="moz-signature" cols="72">--
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
<a class="moz-txt-link-freetext" href="http://www.utc.fr/~mottelet">http://www.utc.fr/~mottelet</a>
</pre>
</body>
</html>