我在2D中使用有限元方法并获得以下函数
P(x,y,k),其中x = 1:101,y = 1:101,k = 1:2001。
对于每个离散时间k,我想绘制一个3D图形(x,y,P),所以我使用以下代码:
例如,对于k = 3
P = zeros(numx,numy,numt);
for k=1:numt
for i=2:numx-1
for j=2:numy-1
P(i,j,k+1) = P(i,j,k) + 1*(dt/dx^2)*( P(i+1,j,k) - 2*P(i,j,k) + P (i-1,j,k) ) + 1*(dt/dy^2)*( P(i,j+1,k) - 2*P(i,j,k) + P(i,j-1,k) );
end
end
end
figure(1)
xx = 1:100;
yy = 1:100;
[XX,YY] = meshgrid(xx,yy)
PP = eval(P(XX,YY,3));
surf(XX,YY,PP)
然而,matlab说:“输入参数的未定义函数'eval' 输入'double'。“
如何修复它并绘制3D图形?