我的问题与矢量场的卷曲有关。我无法找到为什么我的代码与分析解决方案相比会产生不同的结果。我对这个问题有任何帮助表示感谢。
这是代码:
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
答案 0 :(得分:2)
在您的代码中
array_column()
这是一个问题:您在u =Y*X.^2+3*Y.^2;
和Y
之间应用矩阵乘法。改变它应该有很多帮助:
X.^2
出于这个原因,我建议使用非对称输入(至少在开发/调试阶段),例如20x21网格。这样就可以在很早的时候发现许多这样的错误。