0

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

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

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

如何使用轮廓来绘制此函数?

4

3 回答 3

1

x 和 y 是否正确定义为 2x2 矩阵?如果是这样,那么“power”运算符需要在组件方面完成(.^3 而不是 ^3)。

这有效:

[x,y] = meshgrid(-2:.2:2,-2:.2:2);
contour(3*y+y.^3-x.^3-5)
于 2013-08-29T18:25:09.780 回答
0

也许您可以尝试fcontour,它为 x 和 y 的默认区间 [-5 5] 上的恒定水平 z 绘制函数 z = f(x,y) 的等高线。

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

输出:

在此处输入图像描述

于 2018-10-28T16:03:58.533 回答
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))

等高线图

直接方法 (不是首选但有效)
请注意,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
于 2018-10-18T18:26:44.963 回答