如何在以下公式中绘制圆锥曲面:
ax^2+by^2+cz^2+dxy+exz+fyz+gx+hy+iz+k=0
在Matlab中好吗?
答案 0 :(得分: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);
现在你需要使用定义X,Y,Z矩阵并使用surf来绘制它。如果有效,请告诉我,否则我会稍后再试。
答案 1 :(得分:0)
如果其他人正在寻找这个:我的问题是
的重复