matlab怎麼畫出4維函式圖形

時間 2021-07-09 19:22:11

1樓:天蠍神經俠侶

你的 v 是關於 x, y, z 的函式,對應的圖形是由四維空間內所有滿足v = f(x,y,z)的點 (x,y,z,v) 的集合。而人類視覺能夠看到的最大空間是三維空間,超過3維空間一般就得靠想象了。 所以,據我所知,matlab 裡並沒有所謂的 4維畫圖函式。

也就是說你是沒法在一個三維空間體現四維影象 v=f(x,y,z) 的全貌 (即 點(x,y,z,v) 的集合) 的。不過,很多時候,我們未必需要關心這個4維圖形的全貌,我們也許只關心這個4維空間裡某一個截面上(如 v = 常數)的圖形。比如固定x y, z, v 中某一個後,得到的是一個3維函式。

對於這個3維函式圖形,我覺得,你可以有以下三種處理方法:

1. 如果這個3維函式有顯式的話,你可以用mesh畫圖

例如: v = f(x,y,z) = x^2 + y^2 + z^3  檢視 v = 10 的三維圖形。我們可以求出3維顯式函式:z = (10 - x^2 - y^2)^(1/3)

2. 如果這個3維函式沒有顯式,你可以用 mupad 提供的三維隱函式畫圖

例如: v = f(x,y,z) = x*y*z*ln(1+x^2+y^2+z^2)  檢視 v = 10 的三維圖形。很顯然,我們無法求出這個函式在 v = 10 的顯式表示式,所以,只好用3維隱函式作圖。

好在 matlab 的符號引擎 mupad 為我們提供了3維隱含作圖的函式,可以直接使用。只不過,我們需要先在command window 裡輸入 mupad 來啟動一個notebook

本帖最後由 winner245 於 2013-8-13 10:06 編輯

你的 v 是關於 x, y, z 的函式,對應的圖形是由四維空間內所有滿足v = f(x,y,z)的點 (x,y,z,v) 的集合。而人類視覺能夠看到的最大空間是三維空間,超過3維空間一般就得靠想象了。 所以,據我所知,matlab 裡並沒有所謂的 4維畫圖函式。

也就是說你是沒法在一個三維空間體現四維影象 v=f(x,y,z) 的全貌 (即 點(x,y,z,v) 的集合) 的。不過,很多時候,我們未必需要關心這個4維圖形的全貌,我們也許只關心這個4維空間裡某一個截面上(如 v = 常數)的圖形。比如固定x y, z, v 中某一個後,得到的是一個3維函式。

對於這個3維函式圖形,我覺得,你可以有以下三種處理方法:

1. 如果這個3維函式有顯式的話,你可以用mesh畫圖

例如: v = f(x,y,z) = x^2 + y^2 + z^3  檢視 v = 10 的三維圖形。我們可以求出3維顯式函式:z = (10 - x^2 - y^2)^(1/3)

[x,y] = meshgrid(linspace(-2,2));

z = (10 - x.^2 - y.^2).^(1/3);

mesh(x,y,z)

複製**

2. 如果這個3維函式沒有顯式,你可以用 mupad 提供的三維隱函式畫圖

例如: v = f(x,y,z) = x*y*z*ln(1+x^2+y^2+z^2)  檢視 v = 10 的三維圖形。很顯然,我們無法求出這個函式在 v = 10 的顯式表示式,所以,只好用3維隱函式作圖。

好在 matlab 的符號引擎 mupad 為我們提供了3維隱含作圖的函式,可以直接使用。只不過,我們需要先在command window 裡輸入 mupad 來啟動一個notebook,在notebook裡再輸入:

plot(plot::implicit3d(x*y*z*ln(1+x^2+y^2+z^2)-10, x = -10..10, y = -10..

10, z = -10..10), scaling = constrained)

複製**

給個mupad的**和圖形截圖:

3. 無論是否有顯式,matlab 還提供一種畫切片圖形的函式slice,slice做出的圖是在切片上用顏色表示v的值

以  v = f(x,y,z) = x*y*z*exp(-(x^2+y^2+z^2))  為例,假設我們希望看 v = f(x,y,z) 在 x = 0, y = 1, z = 1 這些平面切片的圖形,我們可以用以下**:

[x,y,z] = meshgrid(linspace(-2,2));

v = x.*y.*z.*exp(-(x.^2+y.^2+z.^2));

xslice = 0; yslice = 1; zslice = 1;

slice(x,y,z,v,xslice,yslice,zslice)

xlabel('x'); ylabel('y'); zlabel('z');

colormap hsv

複製**

得到圖形為:

2樓:匿名使用者

參考四維資料怎麼畫平面圖 用matlab

如何用matlab畫出函式曲線

3樓:星願下的期盼

1、用matlabc開啟命令列視窗,直接輸入相關的內容。

2、下一步如果沒問題,就根據實際情況來設定圖示的**。

3、這個時候通過確定操作以後,需要填寫註釋的資訊。

4、這樣一來會得到對應的效果圖,即可畫出函式曲線了。

4樓:木生子識時務

matlab畫圖的命令一般用plot,其基本原理是把散點連起來構成影象。所以,畫二維圖時,plot的引數中需要有x,y軸的資料

下面,給出來幾個例子。

1.畫sin(x)的函式影象

x = 0:pi/100:2*pi;

y = sin(x);

figure % opens new figure windowplot(x,y)

結果如下:

2. 將多個影象畫在一張圖中

x = 0:pi/100:2*pi;

y1 = sin(x);

y2 = sin(x-0.25);

y3 = sin(x-0.5);

figure

plot(x,y1,x,y2,'--',x,y3,':')legend('sin(x)','sin(x-0.25)','sin(x-0.5)');

結果如下:

doc plot

來檢視詳細的資訊。

5樓:匿名使用者

matlab有很多畫圖函式,比如二維的有plot(),三維的有其他,可根據你畫的函式來選擇作圖函式,選擇合適的工具函式會讓你事半功倍。

matlab怎麼畫出積分函式的影象??求救

路雪天涯 plot作圖基本的兩種輸入方式 1 plot y 這個y是乙個矩陣,n行m列的話,一共會畫出m條,每條n個點 2 plot x,y x與y是同維矩陣,比如 同是1行n列,或者同是n行1列,都能作圖,只要能找到x與y一一對應的點就行,如果x與y的元素個數不能一一對應 比如不同維 那就做不出來...

matlab怎樣畫出方波的頻譜圖

顛倒的世界 1 首先在電腦中開啟matlab軟體,輸入simulink啟動 如下圖所示。2 然後輸入zero新增取樣器,如下圖所示。3 然後輸入sin新增正弦波,如下圖所示。4 接著輸入scope新增示波器,如下圖所示。5 然後連線模組,雙擊各個模組,設定引數。6 最後執行模組,正弦波成為方波,如下...

雙足機械人行走棍圖怎麼用MATLAB畫出來

沒有慣量和固定端,請在模型中加入慣量和接地。求助,如何用matlab畫出多機械人運動軌跡 弊頻贍此茨 說實話,不懂怎麼畫,因為機械人運動是三維2次微分方程決定的,那個速度,角速度都不一樣,實在不行搞個數值解算了,沒見過速度曲線,可能是自己外行吧 用matlab建立的機械人模型 怎麼plot出來? 天...