1 réponse
Bonsoir
Tu ne peux pas effectuer la minimisation dans la définition de la fonction, c'est le serpent qui se mord la queue :)
Tu peux définir ta fonction à minimiser :
1) Dans un fichier seul (private function),
2) À l'intérieur de la fonction de minimisation (nested function),
3) Après la fonction de minimisation (local function).
4) Comme fonction anonyme, auquel cas tu n'as pas besoin de fichier (mais rien n'empêche de définir la fonction à minimiser comme fonction anonyme dans les cas 1, 2, 3).
1) Dans le fichier myfun.m :
2) Dans le fichier minif.m :
3) Dans le fichier minif.m :
4) Dans un fichier ou dans le workspace :
Tu devrais songer à chercher de l'aide ailleurs quand tu as un problème, c'est un vrai ramassis de branquignols ici.
Tu ne peux pas effectuer la minimisation dans la définition de la fonction, c'est le serpent qui se mord la queue :)
Tu peux définir ta fonction à minimiser :
1) Dans un fichier seul (private function),
2) À l'intérieur de la fonction de minimisation (nested function),
3) Après la fonction de minimisation (local function).
4) Comme fonction anonyme, auquel cas tu n'as pas besoin de fichier (mais rien n'empêche de définir la fonction à minimiser comme fonction anonyme dans les cas 1, 2, 3).
1) Dans le fichier myfun.m :
function f=myfun(x)Puis dans le workspace ou dans un autre fichier :
f=-x(1)*x(2)*x(3);
end
A=[[-1,-2,-2];[1,2,2]];
b=[0;72];
x0=[10;10;10];
[x,fval]=fmincon(@myfun,x0,A,b);
2) Dans le fichier minif.m :
function [x,fval]=minif
function f=myfun(x)
f=-x(1)*x(2)*x(3);
end
A=[[-1,-2,-2];[1,2,2]];
b=[0;72];
x0=[10;10;10];
[x,fval]=fmincon(@myfun,x0,A,b);
end
3) Dans le fichier minif.m :
function [x,fval]=minif
A=[[-1,-2,-2];[1,2,2]];
b=[0;72];
x0=[10;10;10];
[x,fval]=fmincon(@myfun,x0,A,b);
end
function f=myfun(x)
f=-x(1)*x(2)*x(3);
end
4) Dans un fichier ou dans le workspace :
myfun=@(x)(-x(1)*x(2)*x(3));
A=[[-1,-2,-2];[1,2,2]];
b=[0;72];
x0=[10;10;10];
[x,fval]=fmincon(myfun,x0,A,b);
Tu devrais songer à chercher de l'aide ailleurs quand tu as un problème, c'est un vrai ramassis de branquignols ici.