How could I program a "for loop" in Matlab to calculate the function's minimum value?
1 view (last 30 days)
Show older comments
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
1 Comment
Stephen23
on 22 Jun 2022
Rather than combining slow symbolic maths with deprecated and inefficient INLINE(), you should use:
Answers (2)
Stephen23
on 22 Jun 2022
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,'*')
0 Comments
Star Strider
on 22 Jun 2022
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
The first derivative of ‘G’ is simply ‘2*x-b’ so an analytic solution is:
xq = b/2
Giving the same result.
.
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!