2014-12-08 52 views
0

我怎样才能在一般方程得出一个圆锥面:绘制一个圆锥体表面一般方程在Matlab

ax^2+by^2+cz^2+dxy+exz+fyz+gx+hy+iz+k=0 

在Matlab中吗?

+0

http://au.mathworks.com/help/matlab/ref/surf.html – David 2014-12-08 00:29:27

+0

重复它需要定义x,y和z的向量。你如何根据我提供的公式来定义它们? – NESHOM 2014-12-08 00:34:24

+0

http://au.mathworks.com/help/matlab/visualize/representing-a-matrix-as-a-surface.html这应该有所帮助,阅读它,然后问一个更精确的问题,如果你不明白。 – David 2014-12-08 00:39:29

回答

1

这不是您的问题的完整答案(但对于评论来说太笨重),希望它能帮助您继续。关于你提到的关于Z = F(X,Y),就可以得到它解决一个简单的二次方程针对z关注:

clear all; 
a = - 90.53; 
b = @(x,y)(66.66*x - 33.67*y + 50429.65); 
c = @(x,y)(-11.56*x.^2 - 10.24*y.^2 + 16.43*x*y - 19156.33*x + 7731.95*y - 6899727.01); 
D = @(x,y)(b(x,y).^2 - 4 * a * c(x,y)); 
z1 = @(x,y)((-b(x,y) + sqrt(D(x,y)))/(2*a)); 
z2 = @(x,y)((-b(x,y) - sqrt(D(x,y)))/(2*a)); 

注意,对于一些(X,Y)的d < 0和Z1和Z2将这些点相当于你的锥体外部的空间。您可以选择相关子空间,如

xD = -100:100; 
yD = arrayfun(@(x)(fzero(@(y)(D(x,y)),0.0)),xD); 

现在您需要使用define X,Y,Z矩阵并使用surf来绘制它。请让我知道这是否有效,否则我会再试一次。

+0

感谢您的评论。我找到了解决方案并发布了它的链接。 – NESHOM 2014-12-10 00:02:31