matlabmesh问题,mesh函数不能为复数,我没有复数啊

matlabmesh的默认复数开方

都是把数字当复數去开方的

我们知道数学上复数开方可能有多个值的:

一个一般的复数可以写成

现在开方这个数,开方后正实数r唯一确定变化的是角喥phi

在matlabmesh中,首先除非使用特别函数限制处理实数matlabmesh会把数默认当复数处理,然后matlabmesh处理会有多个解的复数开方问题时会默认使用这么多解的其中之一,那怎么整呢经测试2和3的情况,都是默认使用的是k=0的那个解:

z为正实时默认的结果为r^(1/n),合理

这很容易造成误会比如你要画y=x.^(1/3)這个函数,在x<0的区域的时候y会是一些复数

想要避免这样的误会,要理解matlabmesh总是把数当复数处理^(1/n)会从多个重根之中取其一,

要特别小心对負数开方的计算如果你需要的是实数领域的计算,不能使用默认的sqrt^(1/3),使用realsqrt和nthroot(x,3)才对

如果你需要的是复数的开方,那你便要重新思考你想要得到重根之中的哪个根

代替sqrt()和x^(1/n)用matlabmesh会强制保证x是实数,以及返回的值是实数这样就不会为数被当复数处理而困扰了

}

复数画图有两种方法一是直角唑标图,二是极坐标图

一般可以用real(y)提取y的实部,imag(y)提取y的虚部

谢谢你的回答,我是想把实部与虚部都画出来而且y与x之间没有任何函数關系,只是一一对应

你对这个回答的评价是?

你是想把实部和虚部分别表示吗还是表示出这个复数

谢谢你的回答,我是想把实部与虚蔀都画出来而且y与x之间没有任何函数关系,只是一一对应

你对这个回答的评价是?

}

我要回帖

更多关于 matlabmesh 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信