MATLAB code to find the maximum of a function over an interval

181 visualizaciones (últimos 30 días)
Liam Bouchereau
Liam Bouchereau el 27 de Oct. de 2020
Editada: Salman Zaheer el 23 de Mzo. de 2023
Could someone please help with writing a code to solve the following?
Write a MATLAB code that will find the maximum of the following function over the interval x1 < x < x2 :
f(x) = cos(4x) sin(10x) e^-2x
Find the value of f(x) which corresponds to the maximum over the given interval and print it out
using: fprintf('%.4f',fmax).
For example:
TestResult
x1 = 0.7;
x2 = 0.9;
Result
-0.0611

Respuestas (2)

Rohit Pappu
Rohit Pappu el 29 de Oct. de 2020
Editada: Rohit Pappu el 29 de Oct. de 2020
MATLAB doesn't have any functions which can explicit calculate the local maxima. A possible workaround would be to find the minima of -f(x)in the same interval.
Code for calculating maxima
x1 = 0.7;
x2 = 0.9;
[x_max,val] = fminbnd(@(x) -cos(4*x)*sin(10*x)*exp(-2*x),x1,x2); %%x_max is the maxima of f(x) and val is the value of f(x_max)
val = -val; %% Negate the value because -f(x) was the function worked upon
Additional documentation can be found here

Salman Zaheer
Salman Zaheer el 23 de Mzo. de 2023
Editada: Salman Zaheer el 23 de Mzo. de 2023
How to get max|| Tx-Sx|| of two functions in interval [-1,1] where Tx= x if x belongs to [-1,0) and Tx= -x if x belongs to [0,1]. Similarly for S any function.

Categorías

Más información sobre Programming en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by