How could I program a "for loop" in Matlab to calculate the function's minimum value?

1 次查看(过去 30 天)
How could I program a "for loop" in Matlab to calculate the function's minimum value?
The goal is to locate the function G's minimum value point that corresponds to the particular parameter b=[1 2 3 4 5]. Like:
syms x
for b=1:1:5;
G=x.^2-b.*x+1;
f=inline(G);
x=fminbnd(f,0,10)
end

回答(2 个)

Stephen23
Stephen23 2022-6-22
X = [1,2,3,4,5];
Y = nan(size(X));
for k = 1:numel(X)
b = X(k);
G = @(x) x.^2 - b.*x + 1;
Y(k) = fminbnd(G,0,10);
end
plot(X,Y,'*')

Star Strider
Star Strider 2022-6-22
G = @(x,b) x.^2-b.*x+1;
b=1:1:5;
for k = 1:numel(b)
xv(k) = fminsearch(@(x)G(x,b(k)), rand);
end
xv
xv = 1×5
0.5000 1.0000 1.5000 2.0000 2.5000
The first derivative of ‘G’ is simply ‘2*x-b’ so an analytic solution is:
xq = b/2
xq = 1×5
0.5000 1.0000 1.5000 2.0000 2.5000
Giving the same result.
.

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by