How do i use fminsearch to find the minimum or maximum of a function . x.^4-3.*x.*y+2.*y.^2
21 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Ibraheem
am 13 Okt. 2022
Bearbeitet: James Tursa
am 13 Okt. 2022
I trying to use fmin search for a function of 2 variable
2 Kommentare
Akzeptierte Antwort
James Tursa
am 13 Okt. 2022
Bearbeitet: James Tursa
am 13 Okt. 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 Kommentare
James Tursa
am 13 Okt. 2022
Bearbeitet: James Tursa
am 13 Okt. 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)
Weitere Antworten (1)
the cyclist
am 13 Okt. 2022
Bearbeitet: the cyclist
am 13 Okt. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Calculus finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!