Ex 5.17

Hjälpfunktion till 5.17

function [xmin, min_value, xmax, max_value] = ...
    fminmax(first_value, last_value, num_steps, func)
%FMINMAX Genererar max och min värde från en funktion
% Indata är:    first_value:    första värdet i intervallet
%               last_value:     sista värdet i intervallet
%               num_steps:      antal steg i intervallet
%               func:           funktionen att undersöka
% Utdata är:    xmin:           x för minsta funktionsvärde
%               min_value:      minsta funktionsvärde
%               xmax:           x för största funktionsvärde
%               max_value:      största funktionsvärde

% Kolla om tillräckligt antal argument är givna
msg = nargchk(4,4,nargin);
error(msg);

% Skapa intervall
x = first_value:(last_value-first_value)/num_steps:last_value;

% Generera funktionsvärden
y = feval(func,x);

% Hitta min/max
[min_value, i1] = min(y);
[max_value, i2] = max(y);
xmin = x(i1);
xmax = x(i2);

end