首先,我需要声明我不是一个数学爱好者或狂热的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{:});
任何帮助策划都会非常感激。我的脑袋会爆炸,因为人们一直在告诉我这应该是非常简单的。
谢谢!
答案 0 :(得分:1)
以下适用于我:
ezsurf('(8*x - 4*x^2 - y^2 - 2*y -3)^(1/2)');
请注意ezsurf
接受2维的功能(映射到第3维)。因此,您必须以f(x,y)= blah的形式表达函数,其中blah是您想要的ezsurf
输入。我所做的就是将你的函数重新排列成z = blah形式,然后输入blah到ezsurf
。
哦,还有其他两件事,1)结果图只能说明故事的一半,因为z ^ 2的平方根可以是z或负z(默认情况下,matlab取正方根)。 2)对于非常受限制的x
和y
域,只能分析上述函数而不需要复数(例如我在这里完成的)。