0

首先,我需要声明我并不是一个数学爱好者或狂热的 Matlab 用户。这是我过去 3 个小时一直在尝试解决的大学作业,但没有成功。我疯狂地用谷歌搜索,甚至通过 Facebook 寻求帮助(我得到了回复,但没有解决我的问题)。

这是我第一次使用这个软件,我需要快速绘制一些东西。但无论我读了多少书,我都会不断收到语法错误等。

基本上,我有这个等式:

4*x^2 + y^2 + z^2 - 8*x + 2*y + 3 = 0

我正在尝试绘制它/绘制它。我认为这会非常简单,但我在做这件事时遇到了问题。

谷歌搜索向我展示了函数 ezplot() 和 ezsurf(),但是:

当我执行 ezplot('4*x^2 + y^2 + z^2 - 8*x + 2*y + 3') 时,出现以下错误:

??? Error using ==> char
Cell elements must be character arrays.
Error in ==> ezplot at 158
      fmsg = char(f);

当我做 ezsurf('4*x^2 + y^2 + z^2 - 8*x + 2*y + 3')

The expression 4*x^2 + y^2 + z^2 - 8*x + 2*y + 3 must only have 2 symbolic variables
Error in ==> ezgraph3>surfplot at 526
[F,var] = ezfixfun(F,fargs,flabel);
Error in ==> ezgraph3 at 49
   [dummy,h] = surfplot(f,domain,surfstyle,cax,Npts,fixdomain,flabel,fargs);
Error in ==> ezsurf at 65
    h = ezgraph3('surf',args{:});

同样,这真的是我第一次使用这个软件。老师没有给我们任何解释,所以我不知道这些错误应该是什么意思,更不用说解决它们了。我不知道我在做什么或我应该做什么。

我尝试使用solve()首先求解'z',然后绘制我得到的两个结果。

s = solve('4*x^2 + y^2 + z^2 - 8*x + 2*y + 3', 'z')
s =
   -(- 4*x^2 + 8*x - y^2 - 2*y - 3)^(1/2)
    (- 4*x^2 + 8*x - y^2 - 2*y - 3)^(1/2)

但这也行不通。当我使用 ezplot() 时,它告诉我使用 ezsurf,而当我使用 ezsurf() 时,它告诉我一个我从未声明过的变量“h”:

>> ezsurf('-(- 4*x^2 + 8*x - y^2 - 2*y - 3)^(1/2)', '(- 4*x^2 + 8*x - y^2 - 2*y - 3)^(1/2)')
??? Undefined function or variable "h".
Error in ==> ezgraph3 at 66
    hh = h;
Error in ==> ezsurf at 65
    h = ezgraph3('surf',args{:});

任何帮助绘图将不胜感激。我的脑袋要爆炸了,因为人们一直告诉我这应该很简单。

谢谢!

4

1 回答 1

1

以下对我有用:

ezsurf('(8*x - 4*x^2 - y^2 - 2*y -3)^(1/2)');

请注意,它ezsurf接受二维函数(映射到第三维)。因此,您必须以 f(x, y) = blah 的形式表达该函数,其中 blah 是您想要作为ezsurf. 我所做的只是将你的函数重新排列成 z = blah 的形式,然后将 blah 输入到ezsurf.

哦,还有两件事,1)结果图只说明了一半,因为 z^2 的平方根可以是 z 或负 z(默认情况下,matlab 采用正平方根)。2) 上面的函数只能在没有复数的情况下进行分析(例如我在这里所做的),对于x和的一个非常有限的域y

于 2012-10-01T01:34:41.907 回答