#範例3-6:3D曲面方程式 from sympy import * #from sympy.plotting import plot3d #(1).橢圓拋物面 z = x^2/a^2 + y^2/b^2 x,y = symbols('x y') #若要求值,就一定要: expand(方程式) z = expand('x**2/2**2 + y**2/2**2') plotting.plot3d(z) print('橢圓拋物面求值(x=5,y=5)=', z.subs({x:5,y:5})) #(2).雙曲拋物面 z = x^2/a^2 - y^2/b^2 #若要求值,就一定要: expand(方程式) z = expand('x**2/3**2 - y**2/4**2') plotting.plot3d(z) print('雙曲拋物面求值(x=5,y=5)=', z.subs({x:5,y:5})) #單葉雙曲面 f = x^2/a^2 + y^2/b^2 -z^2/c^2- 1 x,y,z = symbols('x y z') #定義函數一定要用expand,後續才能求值 f = expand('x**2/3**2 + y**2/2**2 -z**2/2**2 -1') #定義三個symbols,可以計算函數值 print('單葉雙曲面求值(x=5,y=5,z=5)=', f.subs({x:5,y:5,z:5})) #定義三個symbols,無法plot3D #plotting.plot3d(f) #無法使用使用隱函數implicit 來畫圖 #plot_implicit(Eq(x**2/2+y**2/2+z**2/2,1))