matlab中旋度函数的几个问题
我的问题与向量场的旋度有关。我无法找到为什么我的代码与解析解相比会抛出不同的结果。我感谢你对这个问题的帮助 代码如下:matlab中旋度函数的几个问题,matlab,Matlab,我的问题与向量场的旋度有关。我无法找到为什么我的代码与解析解相比会抛出不同的结果。我感谢你对这个问题的帮助 代码如下: N=20; [X,Y]=meshgrid(linspace(-4,4,N),linspace(-4,4,N)); u =Y*X.^2+3*Y.^2; v =2*X.*Y+X.^2; % analitic curl CURL=-X.^2+2*X-4*Y; subplot(2,1,1),contourf(X,Y,CURL),colorbar % using matlab fun
N=20;
[X,Y]=meshgrid(linspace(-4,4,N),linspace(-4,4,N));
u =Y*X.^2+3*Y.^2;
v =2*X.*Y+X.^2;
% analitic curl
CURL=-X.^2+2*X-4*Y;
subplot(2,1,1),contourf(X,Y,CURL),colorbar
% using matlab function (curl)
[cur,va]=curl(X,Y,u,v);
subplot(2,1,2),contourf(X,Y,cur),colorbar
在您的代码中
u =Y*X.^2+3*Y.^2;
这是一个问题:在Y
和X.^2
之间应用矩阵。改变它会有很大帮助:
u =Y.*X.^2+3*Y.^2;
出于这个原因,我建议使用非对称输入(至少在开发/调试阶段),例如20x21网格。这样,许多这样的错误可以在早期被发现
结果:
从您的帖子中删除了
curl
标签。您使用的标记指的是终端命令curl
。。。不是实际的MATLAB函数。删除此项以避免混淆。MATLAB必须以数值方式近似任何解,而解析解直接考虑导数。例如,请参阅关于复杂导数的帖子。我使用以下公式计算旋度:Vx Uy nd给出了以下公式:-X^2+2X-4Y。我对比较数值解和解析解感兴趣。但是这些方程的数值结果与解析解相差甚远,谢谢@AndrasDeak!!