How do i use fminsearch to find the minimum or maximum of a function . x.^4-3.*x.*y+2.*y.^2
30 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I trying to use fmin search for a function of 2 variable
2 commentaires
Réponse acceptée
James Tursa
le 13 Oct 2022
Modifié(e) : James Tursa
le 13 Oct 2022
You need to have your function handle accept a vector and return a scalar. I.e., the x argument to the function handle is a vector of two elements representing your original x and y variables. Assuming x(1) and x(2) are your intended original x and y variables, that would mean something like this:
fun = @(x) x(1).^4-3.*x(1).*x(2) +2.*x(2).^2;
x0 = [-0.5,0.5];
x = fminsearch(fun,x0)
3 commentaires
James Tursa
le 13 Oct 2022
Modifié(e) : James Tursa
le 13 Oct 2022
format longg
fun = @(x) x(1).^4-3.*x(1).*x(2) +2.*x(2).^2;
x0 = [-0.5,0.5];
x = fminsearch(fun,x0)
fun(x)
fun([3/4,9/16])
Also note that fminsearch( ) can only find local minimums, of which there can be more than one depending on the function. So different starting points can result in different answers.
x = fminsearch(fun,[3/4+0.1,9/16-0.1])
fun(x)
Plus de réponses (1)
the cyclist
le 13 Oct 2022
Modifié(e) : the cyclist
le 13 Oct 2022
Did you try reading the documentation for fminsearch? The very first example is exactly like your problem.
fun = @(x)(x(1)^4 - 3*x(1)*x(2) + 2*x(2)^2);
x0 = [-0.5, 0.5];
x = fminsearch(fun,x0)
0 commentaires
Voir également
Catégories
En savoir plus sur Calculus dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!