方法一,用solve函式把隱函式顯化,然後畫圖。方法二,利用極座標與直角座標的關係,把極座標隱函式變為直角座標隱函式,利用ezplot直接畫直角座標隱函式。方法一提供案例如下:clc;clear;syms r t%r為距離座標 t為角度座標f(r,t)=r-2*cos(t)-3/r==0;%定義一個對r、t的隱函式,f=0時其實這是一個圓r_sln=solve(f,r)%由於是二次的 會有2個解ezpolar(r_sln(1));figure;ezpolar(r_sln(2));畫出的圖一模一樣,證明2個解等價。下面是其中的一個圖方法二。經過測試,這裡有一個大坑,本人一度被坑。角度t寫成 atan(y/x) 和 atan(y,x) 差距巨大,寫成前者會出現完全畫不出圖的情況。程式碼示例(在之前示例後面加上):syms x y;f1(x,y)=f((x^2+y^2)^0.5,atan2(y,x));figureezplot(f1);由於之前答的高質量,所以沒有用你的例子,現在被打回了,倒是無所謂了。不過。。樓主的例子有點問題啊,貌似。用方法一得出了那麼個東西:
方法一,用solve函式把隱函式顯化,然後畫圖。方法二,利用極座標與直角座標的關係,把極座標隱函式變為直角座標隱函式,利用ezplot直接畫直角座標隱函式。方法一提供案例如下:clc;clear;syms r t%r為距離座標 t為角度座標f(r,t)=r-2*cos(t)-3/r==0;%定義一個對r、t的隱函式,f=0時其實這是一個圓r_sln=solve(f,r)%由於是二次的 會有2個解ezpolar(r_sln(1));figure;ezpolar(r_sln(2));畫出的圖一模一樣,證明2個解等價。下面是其中的一個圖方法二。經過測試,這裡有一個大坑,本人一度被坑。角度t寫成 atan(y/x) 和 atan(y,x) 差距巨大,寫成前者會出現完全畫不出圖的情況。程式碼示例(在之前示例後面加上):syms x y;f1(x,y)=f((x^2+y^2)^0.5,atan2(y,x));figureezplot(f1);由於之前答的高質量,所以沒有用你的例子,現在被打回了,倒是無所謂了。不過。。樓主的例子有點問題啊,貌似。用方法一得出了那麼個東西: