如何在matlab中绘制x,y,z?

时间:2014-10-28 19:29:10

标签: matlab plot

我在matlab中制作Gauss-Jordan方法,我想绘制这些方程式

x + y + 4*z = -1 
-2*x – y + z= -5 
3*x-2*y+3*z=-4

要查看它们相交的图形的哪一点,但我不知道如何在matlab中绘图

3 个答案:

答案 0 :(得分:3)

这是你在找什么?

clc
clear
close all

%// Generate x and y values to plot from.
[x,y] = meshgrid(linspace(0,10,100),linspace(0,10,100));

%// Get equation for plane; i.e. z position
z1 = 0.25.*(-1-x-y);
z2 = -5+y+2*x;
z3 = (-4-3.*x+2.*y)./3;

%// Use surf to generate surface plots
figure;

surf(x,y,z1,'linestyle','none','facealpha',0.4)
hold on
surf(x,y,z2,'linestyle','none','facealpha',0.4)
surf(x,y,z3,'linestyle','none','facealpha',0.4)
hold off

%// Use to manually rotate the plot
rotate3d on

这给出了这个:

enter image description here

当然,您可以使用'FaceAlpha'属性来使事情更清晰。有关更多选项,请查看surf函数。

修改 作为解决x,y和z的@rayryeng解决方案的替代方案,您可以使用mldivide

A = [1 1 4;-2 -1 1;3 -2 3];
B = [-1;-5;-4];

X = mldivide(A,B)

X =

    1.0000
    2.0000
   -1.0000

答案 1 :(得分:2)

我将如何绘制这些飞机。 surf的第4个参数允许您指定颜色。

% // create function handles of form z = f(x,y)
f1 = @(X,Y) 1/4*(-1 - X -Y);
f2 = @(X,Y) -5 + 2*X + Y;
f3 = @(X,Y) 1/3*(-4 -3*X + 2*Y);

% // create a 2d-grid to plot the functions over
x = linspace(-5, 5, 10);
y = linspace(-10, 10, 20);
[X,Y] = meshgrid(x,y);

% // plot the planes in different colors (4th argument) and without edges
figure
surf(X, Y, f1(X,Y), ones(size(f1(X,Y))), 'EdgeColor', 'None');
hold on
surf(X, Y, f2(X,Y), ones(size(f2(X,Y)))*2, 'EdgeColor', 'None');
surf(X, Y, f3(X,Y), ones(size(f3(X,Y)))*3, 'EdgeColor', 'None');
legend('plane1', 'plane2', 'plane3')
xlabel('x'), ylabel('y'), zlabel('z')

enter image description here

答案 2 :(得分:2)

虽然这不是密谋,但也许这也是你可以使用的东西。如果要确定这些方程的同时解,请考虑使用solve

syms x y z
A = solve('x + y + 4*z == -1', '-2*x - y + z == -5', '3*x - 2*y + 3*z == -4')
disp([A.x A.y A.z]);

[ 1, 2, -1]

这将检查你的Gauss-Jordan消除是否正确。如果您不想使用solve,可以使用线性代数帮助您解决此问题。只需将系统的系数放在矩阵和向量中,然后找到矩阵的逆矩阵并乘以向量。

A = [1 1 4; -2 -1 1; 3 -2 3];
b = [-1;-5;-4];
x = A \ b

x =

1.0000
2.0000
-1.0000

...甚至另一种方法是使用rref将系统缩减为行减少的梯队形式。这是您成功将Gauss-Jordan消除应用于线性系统后的结果。就这样:

A = [1 1 4; -2 -1 1; 3 -2 3];
b = [-1;-5;-4];
rref([A b])


ans =

 1     0     0     1
 0     1     0     2
 0     0     1    -1

阅读上述答案,x = 1y = 2z = -1。这表示增强系统,其中前3列表示系统的系数,第4列表示线性方程组的右侧。