All pastes #592040 Raw Edit

Miscellany

public text v1 · immutable
#592040 ·published 2007-06-27 15:23 UTC
rendered paste body
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