\begin{Tehtava}
\begin{tehtava}    \textbf{DOKU}  mlCF017.tex \\
Oletetaan, että meille on annettu dataa muodossa $(x_k,y_k). k = 1 \ldots m$, johon muodustuu kaksi murtopisteen erottamaa lineaarista suuntausta. Esimerkiksi 
\begin{verbatim}
x=-2:0.1:4; y=0.2*sin(3*x);
y(x<1)=y(x<1)+0.5*(x(x<1)-1);
y(x>=1)=y(x>=1)+2*(x(x>=1)-1);
\end{verbatim}
muodostaa selvän murtopisteen kohtaan $x=1$. Intuitiivisesti tuntuu selvältä, että tällaiseen dataan kannattaa sovittaa PNS-suoran sijaan paloittain lineaarinen funktio, ts. ''suora murtopisteellä.''

Kirjoita ohjelma joka tekee tämän: ohjelman tulee valita murtopiste $(s,t)$ tasosta hiiren klikkauksen perusteella (kts. vihje) ja sovittaa paloittain lineaarisen funktion dataan tätä murtopistettä käyttäen, ts. sovittaa suoran 
\[
y = k_1x+b_1 ,x<s 
\]
pisteisiin $(x_k,y_k), x_k<s $ ja suoran  
\[
y = k_2x+b_2 ,x>s
\] 
pisteisiin $(x_k,y_k), x_k>s $.
\end{tehtava}
\begin{vihje}
Teht\"av\"an keskeinen osa on murtopisteen valinta ja datapisteiden suodatus. 

Murtopisteen valintaan kannattaa k\"aytt\"a\"a \texttt{ginput} funktiota, joka valitsee klikatun pisteen kuvasta tyyliin 
\begin{verbatim}
[x y] = ginput(1);
\end{verbatim}
Datan suodatukseen kannattaa k\"aytt\"a\"a MATLABin loogista indeksointia: esimerkiksi valitaan kaikki vektorin $\mathbb{b}$ pisteet, jotka ovat pienempi\"a kuin 5.
\begin{verbatim}
a = b(b<5);
\end{verbatim}
\end{vihje}

\end{Tehtava}
