注册 登录
编程论坛 Matlab

[求助]新手求助:如何让sqrt函数体现出正负实数根,比如四的正负二

zxye 发布于 2007-04-05 14:48, 2920 次点击
各位大虾请帮忙;
在使用Matlab时需要画一个涉及到平方的图形,比喻x^2+y^2=5;现在准备以x 为变量画y的图,y=sqrt(x);解结果体现不出y的负值,
画的图也只用一半正的在那里形影孤单,请问大虾如何使y的正负值一下子全部体现出来呢?
先谢谢各位了,小生有礼了。
9 回复
#2
尘埃1222007-04-05 16:33
呵呵,你如果只是想从图上表示的话,可以用一个数组表示Y值的相反数,分两次在图上画出也许可以

a=rand(1,100)*100;
b=sqrt(a);
c=-b;
plot(a,b,'r.',a,c,'b.');

看是不是你需要的结果
#3
zxye2007-04-05 17:42
谢谢,你的帮忙。在用surf命令式怎么老是出来一张空白的图啊,你看看:
clf %椭圆折射球
x=-1.5:0.01:1.5;y=x;[x,y]=meshgrid(x,y);
na=1.49;nb=1.40;nc=1.47;
kx=x./na;
ky=y./nb;
s=1-kx.^2-ky.^2
z=sqrt(s);t=-z;
surf(x,y,z,x,y,t)
#4
尘埃1222007-04-05 18:37

呵呵,z求出来好像是虚数,也许就画不出来了
#5
zxye2007-04-06 17:34

哦,你说的有道理啊,我改改看看

#6
zxye2007-04-06 17:37
不行啊,把s=1-kx.^2-ky.^2改成s=5-kx.^2-ky.^2后,z全为实数,也是不行啊
#7
zxye2007-04-06 17:41

再问一下:??? Attempt to execute SCRIPT line as a function.这个错误是怎么引起的如何改正阿
#8
abingchem2007-04-06 18:57
上面的错误提示是说:把脚本文件当成函数来运行了
#9
abingchem2007-04-06 19:17
为什么不用ezplot呢?
#10
zxye2007-04-13 15:47
谢谢abingchem的帮助,
发现只要运行过一个mfile出错后,再运行其它的正确的,上面的提示还是老是出现,重起程序后,有恢复正常,不知道是怎么回事。
还请大虾帮忙解释一下。
1