13 890
modifications
Aucun résumé des modifications |
(→Optimisation non linéaire : utilisation de numderivative()) |
||
function [f, g, ind] = cout(x, ind)
f = x.*x + 5*sin(x);
g = 2*x + 5*cos(x);
endfunction
x0 = 0;
[fopt, xopt] = optim(cout, x0);
plot(x, y);▼
plot(xopt, fopt, "k+");▼
</source>
Si l'on ne connaît pas de forme analytique de la fonction dérivée, on peut utiliser la fonction <code>numderivative()</code> :
<source lang="scilab">
function [y] = fonction(x)
y = x.*x + 5*sin(x);
endfunction
function [f, g, ind] = cout(x, ind)
f = fonction(x);
g = numderivative(fonction, x);
endfunction
n = 40;
x = linspace(-2*%pi, 2*%pi, n);
y = cout(x);
x0 = 0;
[fopt, xopt] = optim(cout, x0);
plot(x, y);
plot(xopt, fopt, "k+");
▲plot(x, y)
▲plot(xopt, fopt, "k+")
</source>
|