双积分 - Matlab

Double integral - Matlab

正在尝试求出该函数的二重积分:

Matlab代码:

x = -1:0.05:1;
y = 0:0.05:1;
[x,y] = meshgrid(x);
F = sqrt((x).^2.*y) * ((sin((x).^2 .* (y).^2)).^3) - ((cos((x).^3.*(y).^3)).^5);
surfl(x,y,F);
colormap summer;
shading interp;
dblquad('sqrt((x).^2.*y) * (sin((x).^2 .* (y).^2)).^3 - (cos((x).^3.*(y).^3)).^5', -1, 1, 0, 1)

错误:

Untitled Error using surf (line 57) X, Y, Z, and C cannot be complex.

Error in surfl (line 129) h = surf(cax,x,y,z);

Error in Untitled (line 5) surfl(x,y,F);

如何解决这些错误?

这一行:

[x,y] = meshgrid(x);

你基本上是在做:

[x,y] = meshgrid(x, x);

所以基本上 xy 都是从 -11 并且由于等式有一个 sqrt(x.^2 .* y),你会得到复数。要使用具有您为 x,y 指定的边界的 x、y 生成网格,请使用:

[x,y] = meshgrid(x, y);