如何用matlab绘制场流图?根据题主提供的分段函数φ(x,y),我们可以来做(其中假设V0=10,x、y的取值范围为【-3~3】,a=1):
1、首先我们对x、y数据进行X-Y平面上X-Y平面上数据网格化
2、其二计算各条件下φ(x,y)的数值,相当于求X-Y平面上的高度值
3、其三分段计算φ(x,y)的数值
4、其四使用surfnorm函数,计算曲面图法线向量
5、最后使用streamline函数,绘制流线图
6、实现代码:
V0=10;a=1;
x = -3:0.1:3;y = -3:0.1:3;
[X,Y] = meshgrid(x,y);
phi1=-V0*exp(pi).*sin(pi*Y).*exp(pi*X./a);
phi2=V0./exp(pi).*sin(pi*Y).*exp(-pi*X./a);
phi3=V0./sinh(pi).*sin(pi*Y).*sinh(pi*X./a);
Phi = phi1.*(X<=-a)+phi2.*(X>-a & X=a);
[U,V,W]=surfnorm(X,Y,Phi);
h=streamline(X,Y,Phi,U,V,W); grid on
set(h,'Color','red');
view(2)
xlabel('x');ylabel('y');
运行结果
可以画不规则边界的流场图吗?如果数据很大的话,是不是对内存要求很高啊?我想做一个海湾的流场图。希望matlab方面的高手指点一下,这个图是我师兄用VB画的