matlab作函数图像,matlab绘制函数图像

matlab绘制函数图像

(2011-06-02 14:46:40)

标签:

杂谈

前两天在一个偶然机会下画了这个函数图像,命令如下:

plot(linspace(-2,2,100),(linspace(-2,2,100).^(1/3))

发现一个很有意思的现象:负半轴的图像处于正半轴,命令行提示:Warning: Imaginary parts of complex X

and/or Y arguments

ignored.且图形画出来并不对称,经查证提示的错误是指算出的数值为复数,但在绘图时自动省略虚部。这样,就把一个典型的奇函数画成了一个“四不象”!思考后个人估计出现复数的根本原因如下:在MATLAB点的分数次方计算中,底数不是以我们正常认为的实数做法出现的,例如:初中生都知道(-8)^(1/3)=-2,但用MATLAB算出的结果却是1+1.7321i。

说明在MATLAB中-8不是-8,而是8(cos(π)+isin(π)),这样,在作开三次根号时就有2(cos(π/3)+isin(π/3))=1+1.7321i。

当时的解决办法如下:

x=linspace(-2,2,200);

x1=x([1:length(x)/2]);

x2=x([length(x)/2+1:end]);

y=[-(-x1).^(1/3)';x2.^(1/3)'];

line(x,y,’color’,’r’)

呵呵…办法比较老土!但在MATLAB群中交流这个问题时,朋友们给出了更好的建议:第一位朋友建议对上述方法作如下更改:

x=linspace(-2,2,100); y=sign(x).*(abs(x).^(1/3));

plot(x,y,’r’)

这样看起来就好多啦!然后另外一位朋友发现MATLAB7.0中已经自带一个“nthroot”命令来解决这个问题(据另一网友说在6.5中未发现这个命令,我还没有确实这个问题),这样这个问题就圆满解决了

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值