m = load('sinfun1.dat'); xd = m(:,1); yd = m(:,2); a = [1.8, 1.1]; f = @(a,x) a(1) .* x .* sin(a(2).*x).^2; a_fit = nlinfit(xd,yd,f,a); fmin = @(xd,a) f(a,xd); fmax = @(xd,a) -f(a,xd); sw = [2,4,7,9]; xmin(1) = fminsearch(fmin,sw(1),xd,a_fit); xmin(2) = fminsearch(fmin,sw(2),xd,a_fit); xmin(3) = fminsearch(fmin,sw(3),xd,a_fit); xmin(4) = fminsearch(fmin,sw(4),xd,a_fit); xmax(1) = fminsearch(fmax,sw(1),xd,a_fit); xmax(2) = fminsearch(fmax,sw(2),xd,a_fit); xmax(3) = fminsearch(fmax,sw(3),xd,a_fit); xmax(4) = fminsearch(fmax,sw(4),xd,a_fit); fi = @(xd,a) f(a_fit,xd); ar = quadl(fi,0,xmin(4)); x = linspace(0,4*pi,200); y = f(a_fit,x); ymax = f(a_fit,xmax); ymin = f(a_fit,xmin); figure g_d = line(xd,yd); hold on set (g_d,'linestyle','none','marker','+','markeredgecolor','b'); g_a = line(x,y); set (g_a,'color','g'); g_min = line(xmin,ymin); set (g_min,'linestyle','none','marker','o','markeredgecolor','r','color',[1 0 0]); g_max = line(xmax,ymax); set (g_max,'linestyle','none','marker','o','markeredgecolor','k','color',[0 0 0]); hold off