(1) Badanie przebiegu zmienności funkcji  y=((25+2 x+(x^2))/(((1+x))^2))

ClearAll["Global`*"]

y[x_]=(x^2+2x+25)/(x+1)^2

(* Dziedzina funkcji *)
Df=Reduce[1+x ≠0,x,Reals]

(* Albo prościej: *)

Df1=FunctionDomain[y[x],x,Reals]

Df1==Df

(* Przeciwdziedzina (zbiór wartości) funkcji: uwaga na składnię - odpowiedź przy użyciu wartości w ! *)

Rf=FunctionRange[y[x],x,w]

(* Granice *)
g1=Limit[y[x],x->-Infinity]

g2=Limit[y[x],x->Infinity]

g3=Limit[y[x],x->-1,Direction->-1]

g4=Limit[y[x],x->-1,Direction->1]

(* Czy funkcja jest parzysta? *)
FullSimplify[ForAll[x,Df,y[x]==y[-x]]]

(* Czy funkcja jest nieparzysta? *)
FullSimplify[ForAll[x,Df,y[x]==-y[-x]]]

(* Pierwsza pochodna *)

dy1=Simplify[D[y[x],x]]

(* Uwaga: w tym przypadku dziedzina samej funkcji oraz I i II pochodnej są takie same, ale nie zawsze tak musi być *)

(* Znak pierwszej pochodnej -> monotonicznosc funkcji *)
FullSimplify[Reduce[Df&&dy1<0,x,Reals]]

FullSimplify[Reduce[Df&&dy1>0,x,Reals]]

FullSimplify[Reduce[Df&&dy1==0,x,Reals]]

(* Funkcja malejąca dla x>-1, rosnąca dla x<-1, nie ma żadnego ekstremum lokalnego *)

(* Druga pochodna *)

dy2=Simplify[D[dy1,x]]

(* Znak drugiej pochodnej *)

FullSimplify[Reduce[Df&&dy2<0,x,Reals]]

FullSimplify[Reduce[Df&&dy2>0,x,Reals]]

Reduce[Df&&dy2==0,x,Reals]

(* Funkcja jest wypukła w calej dziedzinie i nie ma punktów przegięcia *)

(* W zasadzie nie ma sensu sprawdzać, czy istnieją asymptoty ukośne, ale ... *)

a1=Limit[y[x]/x,x->Infinity]

b1=Limit[y[x]-a1* x,x->Infinity]

a2=Limit[y[x]/x,x->-Infinity]

b2=Limit[y[x]-a2 x, x->-Infinity]

(* Asymptoty poziome y=1 w plus i minus nieskończoności; asymptota pionowa dla x=-1 *)

ClearAll[p1,p2]

(* Aby narysować wykresy "zwykłych funkcji", używam Plot *)

p1=Plot[{y[x],1},{x,-5,5}]

(* Aby narysować asymptotę pionową (to nie jest wykres funkcji y=f(x)), używam ParametricPlot ! *)

p2=ParametricPlot[{-1,t},{t,-10,25},PlotStyle->{Orange, Dashed}]

(* Teraz używam instrukcji Show, by na jednym rysunku pokazać wykres funkcji wraz z asymptotami *)

Show[p1,p2,AxesLabel->{"x","y"}]

(**********************************************************************)

ClearAll["Global`*"]

(2) Badanie przebiegu zmienności funkcji y= ((-4-x+(x^2))/(-1+x))

y[x_]=(x^2-x-4)/(x-1)

(* Dziedzina funkcji *)

Df=FunctionDomain[y[x],x,Reals]

Rf=FunctionRange[y[x],x,w]

(* Granice *)

g1=Limit[y[x],x->-Infinity]

g2=Limit[y[x],x->Infinity]

g3=Limit[y[x],x->1,Direction->-1]

g4=Limit[y[x],x->1,Direction->1]

(* Czy funkcja jest parzysta ? *)
FullSimplify[ForAll[x,Df,y[x]==y[-x]]]

(* Czy funkcja jest nieparzysta ? *)
FullSimplify[ForAll[x,Df,y[x]==-y[-x]]]

(* Pierwsza pochodna *)
dy1=Simplify[D[y[x],x]]

(* W tym przypadku dziedzina samej funkcji oraz I i II pochodnej jest taka sama, ale nie zawsze tak musi być ! *)

(* Znak pochodnej *)
FullSimplify[Reduce[Df&&dy1<0,x,Reals]]

FullSimplify[Reduce[Df&&dy1>0,x,Reals]]

Reduce[Df&&dy1==0,x,Reals]

(* Funkcja jest rosnąca dla x<1 i dla x>1, czyli w calej dziedzinie i nie posiada ekstremum lokalnego *)

(* Druga pochodna *)

dy2=Simplify[D[dy1,x]]

(* Znak drugiej pochodnej *)

FullSimplify[Reduce[Df&&dy2<0,x,Reals]]

FullSimplify[Reduce[Df&&dy2>0,x,Reals]]

Reduce[Df&&dy2==0,x,Reals]

(* Funkcja jest wklęsła dla x>1, wypukła dla x<1; nie posiada punktów przegięcia *)

(* Sprawdźmy, czy są asymptoty ukośne *)

a1=Limit[y[x]/x,x->Infinity]

b1=Limit[y[x]-a1* x,x->Infinity]

a2=Limit[y[x]/x,x->-Infinity]

b2=Limit[y[x]-a2 x, x->-Infinity]

(* Asymptota pionowa *)

p1=ParametricPlot[{1,t},{t,-15,15},PlotStyle->{Orange, Dashed}];

(* Wykres samej funkcji i asymptoty ukośnej y=x w plus i minus nieskończoności *)

p2=Plot[{y[x],x},{x,-5,5},AxesLabel->{"x","y"}];

Show[p2,p1]

(**********************************************************************)

ClearAll["Global`*"]

(3) Badanie przebiegu zmienności funkcji  y=((((3+x))^3)/(((2+x))^2))

y[x_]=(x+3)^3/(x+2)^2

(* Dziedzina funkcji *)

Df=FunctionDomain[y[x],x,Reals]

(* Przeciwdziedzina funkcji  *)

Rf=FunctionRange[y[x],x,w]

(* Granice *)

g1=Limit[y[x],x->-Infinity]

g2=Limit[y[x],x->Infinity]

g3=Limit[y[x],x->-2,Direction->-1]

g4=Limit[y[x],x->-2,Direction->1]

(* Czy funkcja jest parzysta ? *)
FullSimplify[ForAll[x,Df,y[x]==y[-x]]]

(* Czy funkcja jest nieparzysta ? *)
FullSimplify[ForAll[x,Df,y[x]==-y[-x]]]

(* Pierwsza pochodna *)
dy1=Simplify[D[y[x],x]]

(* W tym przypadku dziedzina samej funkcji oraz I i II pochodnej jest taka sama, ale nie zawsze musi tak być ! *)

(* Znak pochodnej *)
FullSimplify[Reduce[Df&&dy1<0,x,Reals]]

FullSimplify[Reduce[Df&&dy1>0,x,Reals]]

l=Solve[Df&&dy1==0,x,Reals]

l1=DeleteDuplicates[l]

zerapochodnej=x/.l1

(* wartosci funkcji w punktach x, gdzie pochodna znika *)

y[zerapochodnej]

(* Funkcja jest malejąca dla -2<x<0 i 
rosnąca dla x<-3 lub dla  -3<x<-2 lub dla x>0.
Punkty podejrzane o to, ze sa ekstremum lokalnym to x=-3 oraz x=0 *)

(* Druga pochodna *)
dy2=Simplify[D[dy1,x]]

(* Wartosc drugiej pochodnej w miejscach, w ktorych znika pierwsza pochodna *)

drugapochodnazerapierwszejpochodnej=dy2/.l1

(* Dla x=0 pierwsza pochodna wynosi zero, a druga pochodna wynosi 9/8 -> to jest minumum lokalne (0,27/4) *)

(* Znak drugiej pochodnej *)

FullSimplify[Reduce[Df&&dy2<0,x,Reals]]

FullSimplify[Reduce[Df&&dy2>0,x,Reals]]

Solve[Df&&dy2==0,x,Reals]

(* Funkcja jest wklęsła dla x<-3; wypukła dla -3<x<-2 lub dla x > -2. Posiada punkt przegięcia w x=-3 *)

(* Druga pochodna zmienia znak dla x=-3 -> to jest punkt przegięcia. Można to też stwierdzić, licząc trzecią pochodną *)

(* Trzecia pochodna *)

dy3=Simplify[D[dy2,x]]

dy3/.{x->-3}

(* W x=-3 pierwsza i druga pochodna znak, ale trzecia pochodna jest różna od zera. W tym punkcie nie ma ekstremum lokalnego; mamy tu punkt przegiecia *)

(* Sprawdźmy, czy są asymptoty *)

a1=Limit[y[x]/x,x->Infinity]

b1=Limit[y[x]-a1* x,x->Infinity]

a2=Limit[y[x]/x,x->-Infinity]

b2=Limit[y[x]-a2 x, x->-Infinity]

(* Asymptoty ukośne y=x+5 w plus i minus nieskończoności; asymptota pionowa dla x=-2 *)

p1=Plot[{y[x],x+5},{x,-7,5},AxesLabel->{"x","y"}]

p2=ParametricPlot[{-2,t},{t,-10,25},PlotStyle->{Orange, Dashed}]

Show[p1,p2]

(**********************************************************************)

ClearAll["Global`*"]

(4) Badanie przebiegu zmienności funkcji  y=x (Sqrt[((2-x)/(2+x))])

y[x_]=x Sqrt[(2-x)/(2+x)]

(* Dziedzina funkcji *)
Df=FunctionDomain[y[x],x,Reals]

(* Przeciwdziedzina funkcji  *)

Rf=FunctionRange[y[x],x,w]

FullSimplify[Rf]

(* Czy funkcja jest parzysta ? *)
FullSimplify[ForAll[x,Df,y[x]==y[-x]]]

(* Czy funkcja jest nieparzysta ? *)
FullSimplify[ForAll[x,Df,y[x]==-y[-x]]]

(* Granice *)

g1=Limit[y[x],x->-2,Direction->-1]

g2=Limit[y[x],x->2,Direction->1]

(* Pierwsza pochodna *)
dy1=Simplify[D[y[x],x],Df]

Df1=FullSimplify[Reduce[Df&&2-x> 0&&2+x>0]]

(* Znak pochodnej *)

FullSimplify[Reduce[Df1&&dy1>0,x,Reals]]

FullSimplify[Reduce[Df1&&dy1<0,x,Reals]]

Solve[Df1&&dy1==0,x,Reals]

zeropochodnej1=FullSimplify[Solve[Df1&&dy1==0]]

zeropochodnej2=Flatten[zeropochodnej1]

(* W tym punkcie pochodna zmienia znak z dodatniego na ujemny, wiec mamy maksimum. Można to potwierdzic, licząc drugą pochodną ... *)

(* Druga pochodna *)

dy2=FullSimplify[D[dy1,x]]

Simplify[dy2/.zeropochodnej2]

N[Simplify[dy2/.zeropochodnej2]]

(* Druga pochodna jest ujemna dla x, w którym pierwsza pochodna znika -> maksimum *)

(* Przybliżona wartość funkcji w tym punkcie *)

N[y[x/.zeropochodnej2]]

(* Funkcja jest malejąca dla -1+(Sqrt[5])<x<2 i rosnąca dla -2<x<-1+(Sqrt[5]).
Dla x=-1+(Sqrt[5]) mamy maksimum lokalne *)

(* Znak drugiej pochodnej *)

FullSimplify[Reduce[Df1&&dy2<0,x,Reals]]

FullSimplify[Reduce[Df1&&dy2>0,x,Reals]]

Solve[Df1&&dy2==0,x,Reals]

(* Funkcja jest wklęsła dla -2<x<2 *)

p1=Plot[y[x],{x,-2.5,2.5},AxesLabel->{"x","y"}]

(* Asymptota pionowa w x=-2 *)

p2=ParametricPlot[{-2,t},{t,-10,2},PlotStyle->{Orange, Dashed}]

p3=ListPlot[{{2,0}},PlotStyle->Blue]

Show[p1,p2,p3]

(**********************************************************************)

ClearAll["Global`*"]

(5) Badanie przebiegu zmienności funkcji  y=ln(((6-5 x+(x^2))/(((1+x))^3)))

y[x_]=Log[(6-5*x+x^2)/(1+x)^3]

(* Dziedzina funkcji *)
Df=FunctionDomain[y[x],x,Reals]

(* Albo "ręcznie": *)

Dfu=Reduce[((6-5 x+(x^2))/(((1+x))^3))>0&&x≠-1,x,Reals]

Dfu==Df

(* Zbiór wartości funkcji, czyli przeciwdziedzina ... *)

Rf=FunctionRange[y[x],x,z]

(* ... to zbiór wszystkich liczb rzeczywistych *)

(* Czy funkcja jest okresowa ? *)

T=FunctionPeriod[y[x],x]

(* Nie jest okresowa, bo okres T=0 jest trywialny *)

(* Miejsca zerowe funkcji *)

mscazerowe=Reduce[y[x]==0,x,Reals]

mscazerowe=N[Reduce[y[x]==0,x,Reals]]

(* Wartość funkcji dla x=0 wynosi ... *)

y[0]

N[y[0]]

(* Granice na krańcach przedziału określoności *)

g1=Limit[y[x],x->-1,Direction->-1]

g2=Limit[y[x],x->2,Direction->1]

g3=Limit[y[x],x->3,Direction->-1]

g4=Limit[y[x],x->Infinity]

(* Dziedzina funkcji to wyklucza, ale zawsze można sprawdzić, czy funkcja jest parzysta *)

FullSimplify[ForAll[x,Df,y[x]==y[-x]]]

(* Czy funkcja jest nieparzysta ? *)
FullSimplify[ForAll[x,Df,y[x]==-y[-x]]]

(* Pierwsza pochodna *)

dy1=Simplify[D[y[x],x]]

(* Tak jest źle ! *)

Df1=Simplify[FunctionDomain[dy1,x]]

(* Tak jest dobrze ! *)

Df1=Simplify[Df&&FunctionDomain[dy1,x]]

(* Znak pierwszej pochodnej -> monotonicznosc funkcji *)
FullSimplify[Reduce[Df1&&dy1<0,x,Reals]]

(* Funkcja jest malejąca w przedziale (-1,2) oraz dla x > 6+(Sqrt[13]) *)

FullSimplify[Reduce[Df1&&dy1>0,x,Reals]]

(* Funkcja jest rosnąca 3 < x < 6+(Sqrt[13]) *)

FullSimplify[Reduce[Df1&&dy1==0,x,Reals]]

(* W tym punkcie I pochodna zmienia znak z dodatniej na ujemną, więc mamy tu maksimum lokalne. Wartość funkcji w tym punkcie wynosi: *)

FullSimplify[y[6+(Sqrt[13])]]

(* Druga pochodna *)

dy2=Simplify[D[dy1,x]]

Df2=Simplify[Df1&&FunctionDomain[dy2,x]]

(* Znak drugiej pochodnej *)

(* Gdzie funkcja jest wklęsła ? *)

FullSimplify[Reduce[Df2&&dy2<0,x,Reals]]

N[Reduce[Df2&&dy2<0,x,Reals]]

(* Gdzie funkcja jest wypukła ? *)

FullSimplify[Reduce[Df2&&dy2>0,x,Reals]]

N[Reduce[Df2&&dy2>0,x,Reals]]

(* Czy ma punkt przegięcia ? *)

Reduce[Df2&&dy2==0,x,Reals]

N[Reduce[Df2&&dy2==0,x,Reals]]

(* Dla x≈0.810441694144794 funkcja z wypukłej staje się wklęsła. Dla x≈18.20327304115102 funkcja z wklęsłej staje się wypukła *)

(* W zasadzie nie ma sensu sprawdzać, czy istnieją asymptoty ukośne, ale ... *)

a1=Limit[y[x]/x,x->Infinity]

b1=Limit[y[x]-a1* x,x->Infinity]

(* Nie ma ani asymptot poziomych, ani ukośnych *)

p1=Plot[y[x],{x,-1,5}]

(* Aby narysować asymptotę pionową (to nie jest wykres funkcji y=f(x)), używam ParametricPlot ! *)

p2=ParametricPlot[{-1,t},{t,-20,20},PlotStyle->{Orange, Dashed}]

p3=ParametricPlot[{2,t},{t,-20,20},PlotStyle->{Orange, Dashed}]

p4=ParametricPlot[{3,t},{t,-20,20},PlotStyle->{Orange, Dashed}]

(* Teraz używam instrukcji Show, by na jednym rysunku pokazać wykres funkcji wraz z asymptotami *)

Show[p1,p2,p3,p4,AxesLabel->{"x","y"}]