Funkcje sklejane z kawałków
Bardzo często mamy do czynienia z funkcją, która dla każdego przedziału zmienności argumentu określona jest innym wzorem. Na przykłąd dla x <= 0 jest to x^2, a dla x > 0 [LongDash] x^3. Funkcje takie można w każdym przedziale rozpatrywać osobno:
In[1]:= f1[x_]:= x^2
In[2]:= f2[x_]:= x^3
In[3]:= wykres1=Plot[f1[x],{x,-5,0},PlotRange->{{-5,3},{0,27}}]
Out[3]=
In[4]:= wykres2=Plot[f2[x],{x,0,3},PlotRange->{{-3,3},{0,27}}]
Out[4]=
In[5]:= Show[wykres1,wykres2]
Out[5]=
Nie jest to najwygodniejszy sposób operowania takimi funkcjami. Ale można inaczej:
In[6]:= f[x_]:= x^2 /; x<0
In[7]:= f[x_]:= 0 /; 0<=x<1
In[8]:= f[x_]:= x^3-1 /; x>= 1
I teraz możemy prawie wszędzie używać symbolu f
In[9]:= Plot[f[x],{x,-5,3},PlotRange->{{-5,3},{0,27}}]
Out[9]=
In[10]:= f[0.5]
Out[10]= 0
In[11]:= f[-1]
Out[11]= 1
In[12]:= f[1.3]
Out[12]= 1.197
Można też skorzystać z wbudowanego operatora Piecewise:
In[13]:= Plot[Piecewise[{{x^2,x<=0},{0,0<x<=1},{x^3-1,x>1}}],{x,-2,3}]
Out[13]=
In[14]:= pw=Piecewise[{{x^2,x<=0},{0,0<x<=1},{x^3-1,x>1}}]
$$f=\begin{cases} x^2 & x\le 0\0 & 0 < x \le 1\ -1+x^3 & x > 1 \end{cases}$$
In[15]:= pw/.{{x->0},{x->-1},{x->1.3}}
Out[15]= {0,1,1.197}
In[16]:= Plot[pw,{x,-3,3}]
Out[16]=
A teraz sobie poróżniczkujemy:
In[17]:= dpw=D[pw,x]
$$\mathit{dpw} = \begin{cases} 2x & x< 0\ 0 & x = 0 || 0<x<1\ 3x^2 & x>1\end{cases}$$
Wykres otrzymamy równie łatwo:
In[18]:= Plot[dpw,{x,-3,3}]
Out[18]=