使用matlab畫相交的平面

2022-05-08 22:57:15 字數 2594 閱讀 3168

matlab 作為科學計算神器,可以輕鬆的實現矩陣的計算和三維圖形的繪製,

因此今天用matlab繪製了一道高數題中的圖形。

題目如下:

其中 x+y = pi/2 已經證明是錯題,應該是 x + z = pi/2。

因此:想要實現所圍封閉區域的繪製,就是要實現:

1) y^2 = x

2) z = 0

3) y = 0

4) x = pi / 2 - z

以上四個平面的繪製。

matlab程式設計 程式如下:

1 [x z] = meshgrid([0:0.1

:pi])

2 y =sqrt(x)

3 mesh(x,y,z,'

facecolor

','r

','edgecolor

','none

') % 繪製曲面 y^2=x

4 x = pi/2 -z

5hold on

6 mesh(x,y,z,'

facecolor

','g

','edgecolor

','none

') % 繪製曲面 x+z=pi/2

7 xlabel('

x');ylabel('

y');zlabel('

z');alpha(0.5

)8 z = ones(size(x))-1

9 mesh(x,y,z,'

facecolor

','b

','edgecolor

','none

') % 繪製曲面 z=0

10 [x z] = meshgrid([0:0.1

:pi])

11 y = ones(size(x))-1

12 mesh(x,y,z,'

facecolor

','y

','edgecolor

','none

') % 繪製曲面 y=0

13 alpha(0.5)

最終效果圖

核心程式分析:

1) meshgrid() 用於網格數,line 1處用於生成 x 和 z 的範圍。[0:0.1:pi] 代表生成x的定義域為(0,pi),每隔0.1作為乙個分隔。

2)line 2的函式 mesh(x,y,z,'facecolor','r','edgecolor','none') 表示生成曲面,x,y,z是未知量,facecolor是面顏色,edgecolor是邊框顏色。

3)line 5的 hold on , 表示 繪製的圖形保持,不擦除,否則會擦除前面的圖形。

4)line 8的 z = ones(size(x))-1 代表 生成乙個全是0的矩陣(單向量陣)。因為需要生成 z = 0 ; 而直接取0,會報錯。錯誤示範如下:

>> [a b] = meshgrid([0:0.1

:pi])

>> c = 0

>>mesh(a,b,c)

error using mesh (line

76)z must be a matrix, not a scalar or vector 此處說明 z 軸,作為乙個無限量,不能為乙個單一數,而應該是矩陣。

z 軸必須是無限個量都為0,才是z=0平面,因此,需要用ones(n) 生成數量為n的,值都是1的有限矩陣,也即單位矩陣,然後生成的平面才是 軸平面。

而 ones(n)-1;生成的即是0矩陣。演示如下:

5)xlabel(str),ylabel(str),zlabel(str)函式傳入的字串,作為軸標題(title),alpha(n)傳入的是浮點數,作為透明百分比。

對上面圖形稍加旋轉,獲得題圖,證明確實題目條件有誤。 應該是x+z = pi/2

進行對比

原題解答:

更近一步可以著手研究交叉線和交叉平面的表示方式,參照參考文獻[6]。

但是參考文獻6使用contourslice函式只是實現了輪廓線的畫法,還不是最終的想法,後續再進行研究。

[3]. 建立三維繪圖 - matlab & simulink example - mathworks 中國

[4]. matlab繪圖基礎——colormap在數字影象處理及三維圖形展示上的應用(分層設色) - 司徒鮮生 -

[5]. matlab繪圖-很詳細,很全面 - octal_h的部落格 - csdn部落格

matlab畫圓的命令 matlab畫半圓

matlab畫半圓 2014 01 07 05 41 01 clear 清除所有workspace中的變數。x,y meshgrid 1 05 1 這是在打網點,自變數x和y的取值範圍都是從 1到1,每個點的間距是0.05,間距越細密圖形越精確 matlab畫圖都是通過把區間離散化為格點的方法畫圖的...

matlab求解平面方程的原理

已知三點p1,p2,p3,求其平面方程 syms x y z p1,p2,p3的座標由自己定義。p1 x1,y1,z1 p2 x2,y2,z2 p3 x3,y3,z3 那麼求解下面矩陣q行列式就是了 q ones 4,1 x,y,z p1 p2 p3 detb det q 最後令 q 0 這裡的求解...

MATLAB 畫訊號頻譜的子函式

輸入訊號序列和取樣率,該子函式可以畫出該訊號的頻譜圖。function f,spec,nfft spec fft plot sample,l,fs 輸入資料說明 sample 訊號序列 l 訊號序列的長度 fs 該訊號的取樣頻率。輸出資料說明 f 頻率 spec 頻譜圖縱座標 nfft 2 next...