%% datan sovitus murtopisteellä 

%% Luodaan synteettistä dataa 
x = -2:.1:4; y = .2*sin(3*x);
small = x<1;
y(small)= y(small)+.5*(x(small)-1);
y(~small) = y(~small)+2*(x(~small)-1);
plot(x,y)
grid on;shg
% datassa selvä murtopiste kohdassa 1

%% Murtopisteen valinta manuaalisesti

[s,t] = ginput(1)

%% Luokitellaan data

x_small = x(x<s);
x_big = x(~(x<s));
y_small = y(x<s);
y_big = y(~(x<s));

%% Lasketaan kertoimet

% pienet
Kerroinmatriisi_pienet = [x_small', ones(size(x_small))'];
kertoimet_pienet = Kerroinmatriisi_pienet\y_small';
% isot
Kerroinmatriisi_isot = [x_big', ones(size(x_big))'];
kertoimet_isot = Kerroinmatriisi_isot\y_big';
 
%% Tutkitaan tulosta

hold on 
plot(x_small,kertoimet_pienet(1)*x_small+kertoimet_pienet(2),'r')
plot(x_big,kertoimet_isot(1)*x_big+kertoimet_isot(2),'r')
shg
hold off