使用轮廓绘制功能

时间:2013-08-29 17:59:28

标签: matlab plot contour

我尝试用轮廓绘制这个函数

3y + y ^ 3 - x ^ 3 = 5

我尝试轮廓(3 * y + y ^ 3-x ^ 3-5)但它不起作用。

如何使用轮廓绘制此功能?

3 个答案:

答案 0 :(得分:1)

x和y是否正确定义为2x2矩阵?如果是这样,那么“power”操作符需要在组件的基础上完成(。^ 3而不是^ 3)。

这有效:

[x,y] = meshgrid(-2:.2:2,-2:.2:2);
contour(3*y+y.^3-x.^3-5)

答案 1 :(得分:0)

我不认为这可以解决您问题的所有部分,但这只是一个开始。如果您绝对希望contour调用函数,则可以将我的示例调整为contour(X,Y,fh(X,Y))

更好的方法

fh=@(x,y) 3*y + y.^3 - x.^3 -5;  % <--- This is your function
x = (-4:.25:4)';
y = (-2:.25:2)';
[X,Y] = meshgrid(x,y);
Z = fh(X,Y);
contour(X,Y,fh(X,Y))

ContourPlot

直接方法(不是首选方法,但可以使用)
请注意,Z已换位以完成此工作。

fh=@(x,y) 3*y + y.^3 - x.^3 -5;    % <----this is your function
X = (-4:.25:4)';
Y = (-2:.25:2)';
Z = zeros(length(X),length(Y));
for i = 1:length(X)
    for j = 1:length(Y)
        xi = X(i);
        yj = Y(j);
        Z(i,j) = fh(xi,yj);
    end
end
contour(X,Y,Z','LevelList',-60:10:60,'ShowText','on','LineWidth',1.4)  % Fancied it up a bit

答案 2 :(得分:0)

也许您可以尝试使用fcontour,它会在x和y的默认间隔[-5 5]上绘制恒定z值的函数z = f(x,y)的轮廓线。

f = @(x,y) 3*y + y.^3 - x.^3 - 5;
fcontour(f)

输出:

enter image description here