日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB二元隐函数绘图命令fimplicit3详解

發布時間:2023/12/8 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB二元隐函数绘图命令fimplicit3详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、引言

fimplicit3功能是繪制二元隱函數的曲面圖形。
類似于一元函數分為顯函數和隱函數,二元函數也有顯函數和隱函數之分。形如z=f(x,y)的二元函數稱為顯函數,而由三元方程f(x,y,z)=0確定的二元函數稱為隱函數。
二元函數對應的幾何圖形是空間曲面,也稱為三維曲面。
對于二元顯函數繪圖,可以使用matlab命令mesh、fmesh、surf和fsurf以及相應的擴展函數來實現。
對于隱函數,有些可以顯化,此時可以使用上述matlab繪圖命令來繪圖,但是仍舊有很多二元函數不易顯化,這就需要使用fimplicit3實現曲面的繪制。

二、implicit3基本語法

fimplicit3基本語法主要包括以下幾種:
1)fimplicit3(@(varibles)function)
其中varibles是方程f( ·, ·, · ) = 0中全部的變量,function是確定隱函數的三元方程f( ·, ·, · ) = 0中左端項,也就是三元函數f( ·, ·, · )。
此語法沒有給出自變量的取值范圍,如果因變量|z|的最大值可以達到5,則以此來限制自變量的取值范圍,否則限制自變量的取值范圍為[-5,5]。
2)fimplicit3(@(varibles)function, interval, linespec)
其中:
varibles是方程f( ·, ·, · ) = 0中全部的變量,function是確定隱函數的三元方程f( ·, ·, · ) = 0中左端項,也就是三元函數f( ·, ·, · );
interval表示方程中三個變量的區間;
linespec表示圖元的屬性。
補充:當f( ·, ·, · )中只給出一組取值范圍時,是表示三個變量的取值范圍相同,以豎坐標z優先。
3)fimplicit3(@(varibles)function, name,value)
其中
varibles是方程f( ·, ·, · ) = 0中全部的變量,function是確定隱函數的三元方程f( ·, ·, · ) = 0中左端項,也就是三元函數f( ·, ·, · );
name表示曲面屬性的名稱;
value是name的取值。
★★★ 參數name的常見取值有
‘EdgeColor’ 表示曲面上網格線的顏色
‘FaceAlpha’ 表示透明度
‘FaceColor’ 表示曲面的顏色
‘MeshDensity’ 表示每個方向上的計算點數
‘LineStyle’ 表示網格線的線型
‘LineWidth’ 表示網格線的線條寬度
補充:
fimplicit3參數function的定義形式即可以是使用@法定義的,也可以是通過syms定義符號變量而得到的符號函數,
例如:
fun = @(x,y,z)x.^2 + y.^2 - z.^2
或者:
syms x y z;
fun = x^2 + y^2 - z^2;
注意:使用@法生成的符號函數,必須在變量的后面加. ,表示數組元素的運算,否則會提示告警信息。

三、implicit3繪圖示例

Demo1:繪制如下方程表示的曲面圖形。

%示例代碼 fimplicit3( @(x,y,z)x.^2 + y.^2 - z ); axis equal title( 'x^2 + y^2 - z = 0:旋轉拋物面' ); %運行結果

Demo2:繪制如下方程表示的曲面圖形。

%示例代碼 fun = @(x,y,z)x.^2 + y.^2 + z fimplicit3( fun ); axis equal title( 'x^2 + y^2 + z = 0:旋轉拋物面' ); %運行結果


從以上兩個demo可以發現,|z|的最大值達到了5,此時由z限制了x和y的取值范圍。

Demo3:繪制如下方程表示的橢球面曲面圖形。

%示例代碼 syms x y z; fun = x^2/16 + y^2/9 - z fimplicit3( fun ); axis equal title( 'x^2/16 + y^2/9 - z = 0:橢圓拋物面' ); %運行結果


由此圖可以看出,x和y的取值范圍是[-5,5],而z的取值最大值小于5,曲面圖形看起來也不夠美觀,為了改善這個問題,可以使用下面的語法來實現。

Demo4:繪制如下方程表示的旋轉拋物面圖形,給定變量的取值范圍,并指定繪圖的顏色。

%示例代碼 fimplicit3( @(x,y,z)x.^2 + y.^2 - z, [-5, 5, -5, 5, 0, 25], 'r' ); axis equal title( 'x^2 + y^2 - z = 0:旋轉拋物面' ); %運行結果


Demo5:繪制如下方程表示的曲面圖形,給定一組變量取值范圍,并指定繪圖的線元。

%示例代碼 fimplicit3( @(x,y,z)x.^2 + y.^2 + z, [-20, 5], 'o' ); axis equal title( 'x^2 + y^2 + z = 0:旋轉拋物面' ); %運行結果


Demo6:繪制如下方程表示的曲面圖形,指定繪圖的線元顏色。

%示例代碼 fimplicit3( @(x,y,z)x.^2 + y.^2 - z.^2 - 1, 'b' ); axis equal title( 'x^2 + y^2 - z^2 - 1 = 0:旋轉單葉雙曲面' ); %運行結果


Demo7:繪制如下方程表示的曲面圖形,指定繪圖的線元顏色。

%示例代碼 fimplicit3( @(x,y,z)-x.^2 + y.^2 + z.^2 + 1, 'c' ); axis equal title( '-x^2 + y^2 + z^2 + 1 = 0:旋轉雙葉雙曲面' ); %運行結果


Demo8:繪制如圓錐面的曲面圖形,指定繪圖的線元顏色、曲面顏色和變量取值范圍。

%示例代碼 syms x y z fun = x^2 + y^2 - z^2; fimplicit3( fun,[ -1, 1 ], 'EdgeColor', 'c', 'Facecolor', [ 1, 0.5, 0.5 ] ); axis equal title( ' x^2 + y^2 - z^2 = 0:圓錐面' ) %運行結果


Demo9:繪制如下方程對應的馬鞍面圖形。

%示例代碼 fun = @(x,y,z)x.*y - z; fimplicit3( fun, 'FaceColor', 'b', 'FaceAlpha', 0.5 ); axis equal title( 'z = x * y:馬鞍面' ); xlabel( 'x' ) ylabel( 'y' ) zlabel( 'z' ) view( [-0.2, 0.8, 0.5] );%調整視角 %運行結果


Demo10:繪制馬鞍面圖形。

%示例代碼 fun = @(x,y,z)x.^2 - y.^2 - z; fimplicit3( fun, [ -10, 10 ], 'EdgeColor', 'None', 'FaceAlpha', 0.8 ); axis equal title( 'z = x^2 - y^2:馬鞍面' ); xlabel( 'x' ) ylabel( 'y' ) zlabel( 'z' ) view( [-0.2, 0.8, 0.5] );%調整視角 cmap = colorbar %運行結果


Demo11:采用不同的顏色和網格數繪制單位球面。

%示例代碼 subplot( 1, 3, 1 ) syms x y z fun = x^2 + y^2 + z^2 - 1; fimplicit3( fun, 'EdgeColor', 'c', 'Facecolor', 'm', 'MeshDensity', 20 ); subplot( 1, 3, 2 ) fimplicit3( fun, 'EdgeColor', 'b', 'Facecolor', 'm', 'MeshDensity', 50 ); subplot( 1, 3, 3 ) fun = @(x,y,z)x.^2 + y.^2 + z.^2 - 1; fimplicit3( fun, 'EdgeColor', 'None', 'Facecolor', 'c' ); suptitle( 'x^2 + y^2 + z^2 = 1:單位球面' ) %運行結果

總結

以上是生活随笔為你收集整理的MATLAB二元隐函数绘图命令fimplicit3详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。