How to find the maximum value of a function?
Show older comments
The function is:
f=sin(x)+sin(x*2)
and I want to find the scalar maximum and this is my code as of now.
f = sin(x)+sin(x*2);
f2 = diff(f,x)==0;
x = solve(f2,x);
X = max(x);
However this code gives:
acos(- 33^(1/2)/8 - 1/8)
and I want a numerical value because I need to use the scalar maximum for other calculations. If I procede with this code then "acos(- 33^(1/2)/8 - 1/8)" shows in every following calculation. Please let me know how to convert this or use a different code, thanks.
Accepted Answer
More Answers (2)
KurtanWagner
on 26 Apr 2021
0 votes
Can you graph this as well?
2 Comments
KurtanWagner
on 26 Apr 2021
I got this max value, but I would like to see just how big my variable is
syms x
f = sin(x)+sin(x*2);
f2 = diff(f,x)==0;
extreme_points = solve(f2,x);
extreme_values = subs(f, x, extreme_points);
[maxX, maxidx] = max(extreme_values);
best_location = extreme_points(maxidx);
best_value = simplify(maxX, 'steps', 50);
fplot(f, [-10 5])
hold on
plot(double(best_location), double(best_value), 'r*');
hold off
.. it is periodic. With a little change to the code you can show that it repeats every 2*pi
syms x
f = sin(x)+sin(x*2);
f2 = diff(f,x)=0;
extreme_points = solve(f2,x);
extreme_values = subs(f, x, extreme_points);
[maxX, maxidx] = max(extreme_values);
best_location = extreme_points(maxidx);
best_value = simplify(maxX, 'steps', 50);
fplot(f, [-10 5])
hold on
plot(double(best_location), double(best_value), 'r*');
hold off
1 Comment
syms x
f = sin(x)+sin(x*2);
f2 = diff(f,x)==0;
extreme_points = solve(f2,x);
extreme_values = subs(f, x, extreme_points);
[maxX, maxidx] = max(extreme_values);
best_location = extreme_points(maxidx);
best_value = simplify(maxX, 'steps', 50);
fplot(f, [-10 5])
hold on
plot(double(best_location), double(best_value), 'r*');
hold off
Categories
Find more on Stateflow 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!
