编写MATLAB代码,同时绘制z=sqrt(x^2+y^2)以及x^2+y^2=2*x的图像
时间: 2024-10-27 19:10:24 浏览: 46
Homework 2 Matlab 编程基础1
在MATLAB中,你可以使用`surf`函数来绘制三维函数`z = sqrt(x^2 + y^2)`的等值面,而`contourf`函数则可以用于二维函数`z = x^2 + y^2 - 2*x`的轮廓图。以下是相应的代码示例:
```matlab
% 设置网格范围
x = linspace(-4, 4, 100); % x轴范围,100个采样点
y = linspace(-4, 4, 100); % y轴范围,100个采样点
[X, Y] = meshgrid(x, y); % 创建x和y网格
% 计算两个函数的值
Z1 = sqrt(X.^2 + Y.^2); % z = sqrt(x^2 + y^2)
Z2 = X.^2 + Y.^2 - 2*X; % z = x^2 + y^2 - 2x
% 绘制第一个函数的等值面
figure;
surf(X, Y, Z1)
title('z = sqrt(x^2 + y^2)')
xlabel('X')
ylabel('Y')
zlabel('sqrt(x^2 + y^2)')
% 绘制第二个函数的轮廓图
figure;
contourf(X, Y, Z2, 'ShowText', true) % 显示文本标签
title('Contour plot of x^2 + y^2 - 2x = 0')
xlabel('X')
ylabel('Y')
colorbar % 添加颜色条
hold on % 保持当前图形以便添加更多线
line([1 1], [-4 4], 'Color', 'r') % 添加直线x=1作为参考
hold off
% 提问相关问题
阅读全文