将m-file matlab更改为mathematica

问题描述 投票:-2回答:1

我写了一个matlab m文件来绘制一个双积分,如下所示。每个人都可以在mathematica中向我展示它的等价物吗???

tetha = pi/4;
lamb = -1;
h = 4;
tetha0 = 0;
syms x y l

n = [h.*((cos(tetha)).^2)./sin(tetha); h.*abs(cos(tetha)); 0];
ft = ((tetha - pi/2)./sin(tetha)).^4;
Rt = [cos(tetha) -sin(tetha); sin(tetha) cos(tetha)];
zt = [cos(tetha0) -sin(tetha0); sin(tetha0) cos(tetha0)];
lt = [x;y];

integrand = @(x,y)(ft.*h.*((abs(cos(tetha)).*      (x.*cos(tetha)-y.*sin(tetha)))-((cos(tetha)).^2/sin(tetha)).*(x.*sin(tetha)+y.*cos(tetha))));
PhiHat = @(a,b)(dblquad(integrand,0,a,0,b));
ezsurfc(PhiHat,[0,5,0,5])
matlab wolfram-mathematica
1个回答
4
投票

这里你去(只做了很少的改动),但是你必须做你的功课来理解Mathematica中的功能定义,集成,绘图等。此外,这不是惯用的Mathematica,但让我们不去那里......

tetha=Pi/4;
lamb=-1;
h=4;
tetha0=0;

n={h*((Cos[tetha])^2)/Sin[tetha],h*Abs[Cos[tetha]],0};
ft=((tetha-Pi/2)/Sin[tetha])^4;
Rt={{Cos[tetha], -Sin[tetha]}, {Sin[tetha], Cos[tetha]}};
zt={{Cos[tetha0], -Sin[tetha0]}, {Sin[tetha0], Cos[tetha0]}};

integrand[x_,y_]:= (ft*h*((Abs[Cos[tetha]]*(x*Cos[tetha]-y*Sin[tetha]))-((Cos[tetha])^2/Sin[tetha])*(x*Sin[tetha]+y*Cos[tetha])));
PhiHat[a_,b_]:=NIntegrate[integrand[x,y],{x,0,a},{y,0,b}];
Plot3D[PhiHat[x,y],{x,0,5},{y,0,5}]

© www.soinside.com 2019 - 2024. All rights reserved.