1.
x = -1:0.05:1;
y = x;
[X, Y] = meshgrid(x, y);
f = @(X, Y) (sin(pi * X) .* sin(pi * Y)) .^ 2.*sin(2.*X+2.*Y);
mesh(X, Y, f(X, Y)); % 调用函数f并传递X和Y
xlabel('X-axis');
ylabel('Y-axis');
zlabel('Z-axis');
title('Surface Plot of (sin(pi * X) .* sin(pi * Y)) .^ 2.*sin(2.*X+2.*Y');
2.
x = -1:0.05:1;
y = x;
[X, Y] = meshgrid(x, y);
f = @(X, Y) (sin(pi * X) .* sin(pi * Y)) .^ 2;
mesh(X, Y, f(X, Y)); % 调用函数f并传递X和Y
xlabel('X-axis');
ylabel('Y-axis');
zlabel('Z-axis');
title('Surface Plot of (sin(pi*X) * sin(pi*Y))^2');
3.
f = @(x,y,z)x.*y.*( x.^2 + y.^2 -1).^2-z;
fimplicit3(f,[-1 1 -1 1 -0.1 0.1]);
4.
f = @(x, y, z) x .* y .* (x.^2 + y.^2 - 1).^2 - z;
fimplicit3(f, [-1 1 -1 1 -1 1], 'MeshDensity', 50); % 增加MeshDensity以提高网格密度
axis equal; % 保持坐标轴比例一致
xlabel('X-axis');
ylabel('Y-axis');
zlabel('Z-axis');
title('Implicit Surface Plot within the Unit Circle');
5.
% 创建一个球体
[X, Y, Z] = sphere;% 绘制球体
h = surf(X, Y, Z);% 添加光照
camlight; % 添加一个光源
lighting gouraud; % 设置光照模型为Gouraud,使颜色更平滑% 添加轴标签和标题
xlabel('X-axis');
ylabel('Y-axis');
zlabel('Z-axis');
title('3D Sphere with Lighting');
6.
% 定义极坐标下的网格
[theta, phi] = meshgrid(linspace(0, 2*pi, 100), linspace(0, pi, 100));
rho = 1; % 球体的半径% 将极坐标转换为笛卡尔坐标
x = rho * cos(theta) .* sin(phi);
y = rho * sin(theta) .* sin(phi);
z = rho * cos(phi);% 绘制球体
surf(x, y, z);% 添加轴标签和标题
xlabel('X-axis');
ylabel('Y-axis');
zlabel('Z-axis');
title('3D Sphere in Spherical Coordinates');
axis equal; % 保持坐标轴比例一致
7.
% 定义x和y的范围
x = linspace(-1, 1, 100);
y = linspace(-1, 1, 100);% 生成x和y的网格
[X, Y] = meshgrid(x, y);% 计算Z值,这里是一个示例函数,您可以根据需要替换为其他函数
Z = X .* exp(-X.^2 - Y.^2) .* sin(3*sqrt(X.^2 + Y.^2));% 创建曲面图
mesh(X, Y, Z);% 添加轴标签和标题
xlabel('x');
ylabel('y');
zlabel('u(x,y)');
title('3D Surface Plot');% 设置视角
view(3);
8.x和y限制在圆x.^2 + y.^2 - 1内,圆外的f不画,
函数 f,使其在 x2+y2>1x2+y2>1 时结果为0,这样在单位圆外就不会绘制任何图形。这是通过乘以一个逻辑表达式 (x.^2 + y.^2 <= 1)
来实现的,当 xx 和 yy 在单位圆内时,该表达式为1,否则为0。
f = @(x,y,z) (x .* y .* (x.^2 + y.^2 - 1).^2 - z ).* (x.^2 + y.^2 <= 1);% 定义x和y的范围
interval = [-1 1 -1 1 -0.1 0.1];% 绘制隐函数
fimplicit3(f, interval);% 添加标题
title('Implicit Surface Plot within the Unit Circle');
9.它将生成一个3D曲面图,展示函数 f(x,y)=x⋅y⋅(x2+y2−1)2f(x,y)=x⋅y⋅(x2+y2−1)2 的图形,但仅当 xx 和 yy 在单位圆 x2+y2=1x2+y2=1 内时。
% 定义x和y的范围
x = linspace(-1, 1, 100);
y = linspace(-1, 1, 100);% 生成x和y的网格
[X, Y] = meshgrid(x, y);% 计算Z值,这里是一个示例函数,您可以根据需要替换为其他函数
Z = X .* Y .* (X.^2 + Y.^2 - 1).^2;% 确定圆内的点
insideCircle = X.^2 + Y.^2 <= 1;% 将圆外的Z值设置为NaN,这样surf就不会绘制这些点
Z(~insideCircle) = NaN;% 创建曲面图
surf(X, Y, Z, 'EdgeColor', 'none');% 添加轴标签和标题
xlabel('x');
ylabel('y');
zlabel('u(x,y)');
title('3D Surface Plot within the Unit Circle');% 设置视角
view(3);
我们首先计算整个网格的 Z
值,然后使用逻辑索引 insideCircle
来选择圆内的点。接着,我们将圆外的 Z
值设置为 NaN
,这样 surf
函数就不会绘制这些点。最后,我们使用 surf
函数来绘制这些点,
10.
x = linspace(-1, 1, 100);
y = linspace(-1, 1, 100);% 生成x和y的网格
[X, Y] = meshgrid(x, y);% 计算Z值,这里是一个示例函数,您可以根据需要替换为其他函数
Z = X .* Y .* (X.^2 + Y.^2 - 1).^2;% 确定圆内的点
insideCircle = X.^2 + Y.^2 <= 1;% 将圆外的Z值设置为NaN,这样surf就不会绘制这些点
Z(~insideCircle) = NaN;% 创建曲面图
mesh(X, Y, Z);
11. 它将生成一个3D曲面图,展示函数 Z=X^3*Y^3*(X4+Y4−1)3(X4+Y4−1/16)3Z=X3Y3(X4+Y4−1)^3*(X4+Y4−1/16)^3 的图形,但仅当 XX 和 YY 满足 X4+Y4≤1/16,X4+Y4≤1/16 时。
% 定义x和y的范围,确保满足X^4 + Y^4 <= 1/16
x = linspace(-1/2, 1/2, 100);
y = linspace(-1/2, 1/2, 100);% 生成x和y的网格
[X, Y] = meshgrid(x, y);% 计算Z值
Z = X.^3 .* Y.^3 .* (X.^4 + Y.^4 - 1).^3 .* (X.^4 + Y.^4 - 1/16).^3;% 确定满足条件的点
condition = (X.^4 + Y.^4 <= 1/16) & (X.^4 + Y.^4 <= 1);% 将不满足条件的Z值设置为NaN,这样surf就不会绘制这些点
Z(~condition) = NaN;% 创建曲面图
mesh(X, Y, Z);% 添加轴标签和标题
xlabel('x');
ylabel('y');
zlabel('Z');
title('3D Surface Plot within the Specified Conditions');% 设置视角
view(3);
我们首先定义了 XX 和 YY 的取值范围为 [−1/2,1/2][−1/2,1/2],这是因为当 XX 和 YY 的绝对值大于 1/21/2 时,X4+Y4X4+Y4 将大于 1/161/16。然后,我们计算了整个网格的 ZZ 值,并使用逻辑索引 condition
来选择满足条件的点。接着,我们将不满足条件的 ZZ 值设置为 NaN
,这样 surf
函数就不会绘制这些点。最后,我们使用 surf
函数来绘制这些点,并设置了视角。
12.
x = linspace(-1, 1, 100);
y = linspace(-1, 1, 100);% 生成x和y的网格
[X, Y] = meshgrid(x, y);% 计算Z值,这里是一个示例函数,您可以根据需要替换为其他函数
Z = (X.^2 + Y.^2 - 1).*sin((X.^2+Y.^2).*pi);% 确定圆内的点
insideCircle = X.^2 + Y.^2 <= 1;% 将圆外的Z值设置为NaN,这样surf就不会绘制这些点
Z(~insideCircle) = NaN;% 创建曲面图
mesh(X, Y, Z);
13.
x = linspace(-1, 1, 100);
y = linspace(-1, 1, 100);% 生成x和y的网格
[X, Y] = meshgrid(x, y);% 计算Z值,这里是一个示例函数,您可以根据需要替换为其他函数
Z = -(X.^2 + Y.^2 - 1).*exp(X+Y);% 确定圆内的点
insideCircle = X.^2 + Y.^2 <= 1;% 将圆外的Z值设置为NaN,这样surf就不会绘制这些点
Z(~insideCircle) = NaN;% 创建曲面图
mesh(X, Y, Z);
注,上述mesh都可用surf替代,只是个人比较喜好mesh颜色。