verzija: SageMath 9.4
%display latex
var('u v')
Zadana je funkcija $f(x,y)=\ln{\big(x+y^2\big)}$.
f(x,y)=log(x+y^2)
region_plot(x+y^2>0,(x,-5,5),(y,-5,5),incol='cyan',bordercol='black',borderstyle='dashed',figsize=[5,5])
Nivo-linije su krivulje $y^2=-x+e^C$ za $C\in\mathbb{R}$.
contour_plot(f(x,y),(x,-10,60),(y,-20,20),fill=False,contours=40,cmap='winter',plot_points=300,axes=True,figsize=[8,6])
Nivo-linija za vrijednost $z=\ln{5}$ je krivulja $y^2=-x+5$.
contour_plot(f(x,y),(x,-5,8),(y,-5,5),fill=False,contours=[log(5)],axes=True,frame=False,figsize=[5,5])
Crvena krivulja je zapravo nivo-linija za vrijednost $z=\ln{5}$.
Plava krivulja je krivulja na plohi u koju se preslikavaju točke iz crvene krivulje u domeni. Ona je presjek grafa funkcije i ravnine $z=\ln{5}$.
ploha1=parametric_plot3d([-u^2+v,u,log(v)],(u,-4,4),(v,0.1,30),color='orange')
krivulja1=parametric_plot3d([-u^2+5,u,0],(u,-4,4),thickness=5,color='red')
krivulja2=parametric_plot3d([-u^2+5,u,log(5)],(u,-4,4),radius=0.03,color='blue')
xy_ravnina=parametric_plot3d([u,v,0],(u,-15,30),(v,-5,5),color='green',opacity=0.5)
z_ravnina=parametric_plot3d([u,v,log(5)],(u,-15,30),(v,-5,5),color='pink',opacity=0.5)
(ploha1+krivulja1+krivulja2+xy_ravnina+z_ravnina).show(viewer='threejs',online=True,aspect_ratio=[0.5,2,3])
Nultočke funkcije dobijemo tako da pronađemo nivo-liniju za vrijednost $z=0$. Stoga sve nultočke funkcije $f$ leže na krivulji $y^2=-x+1$.
contour_plot(f(x,y),(x,-8,4),(y,-5,5),fill=False,contours=[0],axes=True,frame=False,figsize=[5,5])
Nultočke funkcije leže na crvenoj krivulji. Ta krivulja je presjek grafa funkcije i $xy$-ravnine.
ploha1=parametric_plot3d([-u^2+v,u,log(v)],(u,-4,4),(v,0.1,30),color='orange')
krivulja=parametric_plot3d([-u^2+1,u,0],(u,-4,4),radius=0.05,color='red')
xy_ravnina=parametric_plot3d([u,v,0],(u,-15,30),(v,-5,5),color='green',opacity=0.5)
(ploha1+krivulja+xy_ravnina).show(viewer='threejs',online=True,aspect_ratio=[0.5,2,3])
diff(f(x,y),x)
diff(f(x,y),y)
[diff(f(x,y),x),diff(f(x,y),x,2),diff(f(x,y),x,3),diff(f(x,y),x,3,y)]
Zadana je funkcija $f(x,y)=\sqrt{1-x^2}+\sqrt{1-y^2}$.
f(x,y)=sqrt(1-x^2)+sqrt(1-y^2)
region_plot([1-x^2>=0,1-y^2>=0],(x,-2,2),(y,-2,2),incol='cyan',bordercol='black',borderstyle='solid',figsize=[5,5])
Nivo-linije su krivulje $\sqrt{1-x^2}+\sqrt{1-y^2}=C$ za $C\in[0,2]$.
contour_plot(f(x,y),(x,-1,1),(y,-1,1),fill=False,contours=15,cmap='winter',axes=True,figsize=[5,5])
Nultočke funkcije dobijemo tako da pronađemo nivo-liniju za vrijednost $z=0$. U ovom slučaju nivo-linija se sastoji od samo četiri točke: $(1,1), (1,-1), (-1,1), (-1,-1)$.
list_plot([(1,1),(1,-1),(-1,1),(-1,-1)],frame=True,pointsize=40,figsize=[4,4],xmax=1.5,xmin=-1.5,ymax=1.5,ymin=-1.5)
Sa slike vidimo da graf funkcije siječe $xy$-ravninu u točno četiri točke.
ploha2=plot3d(sqrt(1-x^2)+sqrt(1-y^2),(x,-1,1),(y,-1,1),color='orange')
xy_ravnina=parametric_plot3d([u,v,0],(u,-1.5,1.5),(v,-1.5,1.5),color='green',opacity=0.5)
(ploha2+xy_ravnina).show(viewer='threejs',online=True,aspect_ratio=[1,1,1.3])
Nivo-linija ne mora općenito biti krivulja u ravnini. Nivo-linija se može sastojati od samo konačno mnogo točaka, a može se sastojati od više dijelova. Na primjer, u ovom slučaju:
contour_plot(f(x,y),(x,-1,1),(y,-1,1),fill=False,contours=[3/4],cmap='winter',plot_points=200,axes=True,figsize=[4,4])
ploha2=plot3d(sqrt(1-x^2)+sqrt(1-y^2),(x,-1,1),(y,-1,1),color='orange')
krivulja11=parametric_plot3d([sqrt(1-0.5625*cos(u)^4),sqrt(1-0.5625*sin(u)^4),0],(u,0,2*pi),thickness=5,color='red')
krivulja12=parametric_plot3d([sqrt(1-0.5625*cos(u)^4),-sqrt(1-0.5625*sin(u)^4),0],(u,0,2*pi),thickness=5,color='red')
krivulja21=parametric_plot3d([-sqrt(1-0.5625*cos(u)^4),sqrt(1-0.5625*sin(u)^4),0],(u,0,2*pi),thickness=5,color='red')
krivulja22=parametric_plot3d([-sqrt(1-0.5625*cos(u)^4),-sqrt(1-0.5625*sin(u)^4),0],(u,0,2*pi),thickness=5,color='red')
krivuljaz11=parametric_plot3d([sqrt(1-0.5625*cos(u)^4),sqrt(1-0.5625*sin(u)^4),0.75],(u,0,2*pi),radius=0.02,color='blue')
krivuljaz12=parametric_plot3d([sqrt(1-0.5625*cos(u)^4),-sqrt(1-0.5625*sin(u)^4),0.75],(u,0,2*pi),radius=0.02,color='blue')
krivuljaz21=parametric_plot3d([-sqrt(1-0.5625*cos(u)^4),sqrt(1-0.5625*sin(u)^4),0.75],(u,0,2*pi),radius=0.02,color='blue')
krivuljaz22=parametric_plot3d([-sqrt(1-0.5625*cos(u)^4),-sqrt(1-0.5625*sin(u)^4),0.75],(u,0,2*pi),radius=0.02,color='blue')
xy_ravnina=parametric_plot3d([u,v,0],(u,-1.5,1.5),(v,-1.5,1.5),color='green',opacity=0.5)
z_ravnina=parametric_plot3d([u,v,0.75],(u,-1.5,1.5),(v,-1.5,1.5),color='pink',opacity=0.5)
(ploha2+krivulja11+krivulja12+krivulja21+krivulja22+krivuljaz11+krivuljaz12+krivuljaz21+
krivuljaz22+xy_ravnina+z_ravnina).show(viewer='threejs',online=True,aspect_ratio=[1,1,1.3])
contour_plot(f(x,y),(x,-1,1),(y,-1,1),fill=False,contours=[3/2],cmap='winter',plot_points=200,axes=True,figsize=[4,4])
ploha2=plot3d(sqrt(1-x^2)+sqrt(1-y^2),(x,-1,1),(y,-1,1),color='orange')
krivulja11=parametric_plot3d([sqrt(1-9/4*cos(u)^4),sqrt(1-9/4*sin(u)^4),0],(u,0.61548,0.955316),thickness=5,color='red')
krivulja12=parametric_plot3d([sqrt(1-9/4*cos(u)^4),-sqrt(1-9/4*sin(u)^4),0],(u,0.61548,0.955316),thickness=5,color='red')
krivulja21=parametric_plot3d([-sqrt(1-9/4*cos(u)^4),sqrt(1-9/4*sin(u)^4),0],(u,0.61548,0.955316),thickness=5,color='red')
krivulja22=parametric_plot3d([-sqrt(1-9/4*cos(u)^4),-sqrt(1-9/4*sin(u)^4),0],(u,0.61548,0.955316),thickness=5,color='red')
krivuljaz11=parametric_plot3d([sqrt(1-9/4*cos(u)^4),sqrt(1-9/4*sin(u)^4),3/2],(u,0.61548,0.955316),radius=0.02,color='blue')
krivuljaz12=parametric_plot3d([sqrt(1-9/4*cos(u)^4),-sqrt(1-9/4*sin(u)^4),3/2],(u,0.61548,0.955316),radius=0.02,color='blue')
krivuljaz21=parametric_plot3d([-sqrt(1-9/4*cos(u)^4),sqrt(1-9/4*sin(u)^4),3/2],(u,0.61548,0.955316),radius=0.02,color='blue')
krivuljaz22=parametric_plot3d([-sqrt(1-9/4*cos(u)^4),-sqrt(1-9/4*sin(u)^4),3/2],(u,0.61548,0.955316),radius=0.02,color='blue')
xy_ravnina=parametric_plot3d([u,v,0],(u,-1.5,1.5),(v,-1.5,1.5),color='green',opacity=0.5)
z_ravnina=parametric_plot3d([u,v,3/2],(u,-1.5,1.5),(v,-1.5,1.5),color='pink',opacity=0.5)
(ploha2+krivulja11+krivulja12+krivulja21+krivulja22+krivuljaz11+krivuljaz12+
krivuljaz21+krivuljaz22+xy_ravnina+z_ravnina).show(viewer='threejs',online=True,aspect_ratio=[1,1,1.3])
diff(f(x,y),x)
diff(f(x,y),y)
[diff(f(x,y),x),diff(f(x,y),x,y),diff(f(x,y),x,y,2),diff(f(x,y),x,y,3)]
Zadana je funkcija $z=\sqrt{36-4x^2+12y^2}$.
f(x,y)=sqrt(36-4*x^2+12*y^2)
region_plot(36-4*x^2+12*y^2>=0,(x,-10,10),(y,-10,10),incol='cyan',bordercol='black',borderstyle='solid',figsize=[5,5])
contour_plot(f(x,y),(x,-10,10),(y,-10,10),fill=False,contours=15,cmap='winter',axes=True,figsize=[5,5])
Nivo-linija za vrijednost $z=2\sqrt{5}$ je hiperbola $x^2-3y^2=4$.
contour_plot(f(x,y),(x,-10,10),(y,-10,10),fill=False,
contours=[2*sqrt(5)],cmap='winter',axes=True,frame=False,figsize=[5,5],plot_points=200)
xy=(1-v)*vector((-3*cosh(asinh(u/sqrt(3))),u))+v*vector((3*cosh(asinh(u/sqrt(3))),u))
ploha3=parametric_plot3d([xy[0],xy[1],f(xy[0],xy[1])],(u,-5,5),(v,0.00001,0.99999),adaptive=True,color='orange',opacity=0.8)
krivulja11=parametric_plot3d([2*cosh(u),sqrt(4/3)*sinh(u),0],(u,-2.15,2.15),thickness=3,color='red')
krivulja12=parametric_plot3d([-2*cosh(u),sqrt(4/3)*sinh(u),0],(u,-2.15,2.15),thickness=3,color='red')
krivulja21=parametric_plot3d([2*cosh(u),sqrt(4/3)*sinh(u),2*sqrt(5)],(u,-2.15,2.15),radius=0.05,color='blue')
krivulja22=parametric_plot3d([-2*cosh(u),sqrt(4/3)*sinh(u),2*sqrt(5)],(u,-2.15,2.15),radius=0.05,color='blue')
xy_ravnina=parametric_plot3d([u,v,0],(u,-9,9),(v,-5,5),color='green',opacity=0.5)
z_ravnina=parametric_plot3d([u,v,2*sqrt(5)],(u,-9,9),(v,-5,5),color='pink')
(ploha3+krivulja11+krivulja12+krivulja21+krivulja22+xy_ravnina+z_ravnina).show(viewer='threejs',online=True,aspect_ratio=[1,2,0.9])
Nivo-linija za vrijednost $z=3\sqrt{10}$ je hiperbola $-2x^2+6y^2=27$.
contour_plot(f(x,y),(x,-10,10),(y,-10,10),fill=False,contours=[3*sqrt(10)],cmap='winter',axes=True,frame=False,figsize=[5,5])
xy=(1-v)*vector((-3*cosh(asinh(u/sqrt(3))),u))+v*vector((3*cosh(asinh(u/sqrt(3))),u))
ploha3=parametric_plot3d([xy[0],xy[1],f(xy[0],xy[1])],(u,-5,5),(v,0.00001,0.99999),adaptive=True,color='orange',opacity=0.8)
krivulja11=parametric_plot3d([sqrt(27/2)*sinh(u),sqrt(9/2)*cosh(u),0],(u,-1.5,1.5),thickness=3,color='red')
krivulja12=parametric_plot3d([sqrt(27/2)*sinh(u),-sqrt(9/2)*cosh(u),0],(u,-1.5,1.5),thickness=3,color='red')
krivulja21=parametric_plot3d([sqrt(27/2)*sinh(u),sqrt(9/2)*cosh(u),3*sqrt(10)],(u,-1.5,1.5),radius=0.05,color='blue')
krivulja22=parametric_plot3d([sqrt(27/2)*sinh(u),-sqrt(9/2)*cosh(u),3*sqrt(10)],(u,-1.5,1.5),radius=0.05,color='blue')
xy_ravnina=parametric_plot3d([u,v,0],(u,-9,9),(v,-5,5),color='green',opacity=0.5)
z_ravnina=parametric_plot3d([u,v,3*sqrt(10)],(u,-9,9),(v,-5,5),color='pink',opacity=0.8)
(z_ravnina+krivulja11+krivulja12+krivulja21+krivulja22+xy_ravnina+ploha3).show(viewer='threejs',online=True,aspect_ratio=[1,2,0.9])
xy=(1-v)*vector((-3*cosh(asinh(u/sqrt(3))),u))+v*vector((3*cosh(asinh(u/sqrt(3))),u))
ploha3=parametric_plot3d([xy[0],xy[1],f(xy[0],xy[1])],(u,-5,5),(v,0.00001,0.99999),adaptive=True,color='orange',opacity=0.8)
krivulja11=parametric_plot3d([2*cosh(u),sqrt(4/3)*sinh(u),0],(u,-2.15,2.15),thickness=3,color='red')
krivulja12=parametric_plot3d([-2*cosh(u),sqrt(4/3)*sinh(u),0],(u,-2.15,2.15),thickness=3,color='red')
krivulja21=parametric_plot3d([2*cosh(u),sqrt(4/3)*sinh(u),2*sqrt(5)],(u,-2.15,2.15),radius=0.05,color='red')
krivulja22=parametric_plot3d([-2*cosh(u),sqrt(4/3)*sinh(u),2*sqrt(5)],(u,-2.15,2.15),radius=0.05,color='red')
krivulja31=parametric_plot3d([sqrt(27/2)*sinh(u),sqrt(9/2)*cosh(u),0],(u,-1.5,1.5),thickness=3,color='blue')
krivulja32=parametric_plot3d([sqrt(27/2)*sinh(u),-sqrt(9/2)*cosh(u),0],(u,-1.5,1.5),thickness=3,color='blue')
krivulja41=parametric_plot3d([sqrt(27/2)*sinh(u),sqrt(9/2)*cosh(u),3*sqrt(10)],(u,-1.5,1.5),radius=0.05,color='blue')
krivulja42=parametric_plot3d([sqrt(27/2)*sinh(u),-sqrt(9/2)*cosh(u),3*sqrt(10)],(u,-1.5,1.5),radius=0.05,color='blue')
xy_ravnina=parametric_plot3d([u,v,0],(u,-9,9),(v,-5,5),color='green',opacity=0.5)
z1_ravnina=parametric_plot3d([u,v,2*sqrt(5)],(u,-9,9),(v,-5,5),color='pink')
z2_ravnina=parametric_plot3d([u,v,3*sqrt(10)],(u,-9,9),(v,-5,5),color='pink',opacity=0.8)
(ploha3+krivulja11+krivulja12+krivulja21+krivulja22+krivulja31+krivulja32+
krivulja41+krivulja42+xy_ravnina+z1_ravnina+z2_ravnina).show(viewer='threejs',online=True,aspect_ratio=[1,2,0.9])
Nultočke dobijemo tako da pronađemo nivo-liniju za vrijednost $z=0$. U ovom slučaju to je hiperbola $x^2-3y^2=9$.
implicit_plot(x^2-3*y^2==9,(x,-10,10),(y,-10,10),axes=True,frame=False,figsize=[5,5])
Nultočke funkcije leže na crvenoj krivulji. Ta krivulja je presjek grafa funkcije i $xy$-ravnine.
xy=(1-v)*vector((-3*cosh(asinh(u/sqrt(3))),u))+v*vector((3*cosh(asinh(u/sqrt(3))),u))
ploha3=parametric_plot3d([xy[0],xy[1],f(xy[0],xy[1])],(u,-5,5),(v,0.00001,0.99999),adaptive=True,color='orange',opacity=0.8)
krivulja1=parametric_plot3d([3*cosh(u),sqrt(3)*sinh(u),0],(u,-1.75,1.75),radius=0.07,color='red')
krivulja2=parametric_plot3d([-3*cosh(u),sqrt(3)*sinh(u),0],(u,-1.75,1.75),radius=0.07,color='red')
xy_ravnina=parametric_plot3d([u,v,0],(u,-9,9),(v,-5,5),color='green',opacity=0.5)
(ploha3+krivulja1+krivulja2+xy_ravnina).show(viewer='threejs',online=True,aspect_ratio=[1,2,0.9])
diff(f(x,y),x)
diff(f(x,y),y)
diff(f(x,y),x,x).factor()
diff(f(x,y),x,y).factor()
diff(f(x,y),y,y).factor()