MATLAB根據已知數學公式畫三維圖像

X=[0:0.1:1];
Y=[0:0.1:1];
[X,Y]=meshgrid(X,Y);
Z=(3.9*exp((-0.25)*(9*X-2)^2-0.25*(9*Y-2)^2)+3.9*exp((-1)*(9*X+1)^2/49-(9*Y+1)/10.0)+2.6*exp((-0.25)*((9*X-7)^2+(9*Y-3)^2))-1.04*exp((-1)*(9*X-4)^2-(9*Y-7)^2));
%MATLAB的語句是以行爲單位解釋執行的,大多數語句不允許斷爲多行(少數情況下,例如輸入數組,是允許分爲多行輸入的)
%乘法的地方不能省略符號 * 
surf(X,Y,Z);
mesh(X,Y,Z);

提問:按照講課的PPT中的數學公式做三維圖,運行出來的圖爲什麼跟老師的完全不一樣?
解答:公式輸入不規範
在這裏插入圖片描述
在這裏插入圖片描述
更改後代碼:

[X,Y]=meshgrid(0:0.001*pi:1);
Z=(3.9*exp((-0.25)*(9*X-2).^2-0.25*(9*Y-2).^2)+3.9*exp(((-1)*(9*X+1).^2)./49-(9*Y+1)./10.0)+2.6*exp((-0.25)*((9*X-7).^2+(9*Y-3).^2))-1.04*exp((-1)*(9*X-4).^2-(9*Y-7).^2));
% %MATLAB的語句是以行爲單位解釋執行的,大多數語句不允許斷爲多行(少數情況下,例如輸入數組,是允許分爲多行輸入的)
% %乘法的地方不能省略符號 * 
surf(X,Y,Z);
mesh(X,Y,Z);
xlabel('x維方向');
ylabel('y維方向');
zlabel('z維方向');

PS:輸入公式的時候,由於x,y都是矩陣,乘法除法運算時後面應有點號

運行結果:

在這裏插入圖片描述
ps:可以更改比例
X1=[0:0.001:2];
Y1=[0:0.001:1];
[X,Y]=meshgrid(X1,Y1);
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章