4

我有二次曲面方程 在此处输入图像描述

我知道 A,B,C... 如何在 matlab 中绘制我的方程?

4

1 回答 1

7

最好的办法是生成函数的 3D 等高线图,其中函数值为 0 的单个等高线。要以合理的精度执行此操作,请在 x、y、z 的多个点处计算函数 F,如下所示:

gv = linspace(-30,30,50); % adjust for appropriate domain
[xx yy zz]=meshgrid(gv, gv, gv);
F = A*xx.*xx + B*yy.*yy + C*zz.*zz+ ... etc

figure
isosurface(xx, yy, zz, F, 0)

这样做的原因是你的函数通常是多值的——也就是说,对于给定的 X 和 Y 值,Z 可能有两个可能的答案。通过这种方式你可以有效地绕过这个问题——指导 matlab将曲面放在函数为零的任何地方。

请注意,我gv为网格提供了一个任意向量 - 即评估函数的点。要获得准确且视觉上令人愉悦的结果,您可能需要在可能的解决方案范围内的每个维度中大约 50 个点(这可能在三个维度上有所不同);

例如,与

F = xx.^2 + 2*yy.^2 + 0.5*zz.^2 + .4*xx.*yy + .5*xx.*zz + .6*yy.*zz + 7*xx + 8*yy + 9*zz - 100;

你得到下图:

在此处输入图像描述

于 2013-02-26T22:13:59.617 回答