matlab中复数怎么表示解出来的为何总是复数解

查看: 1220|回复: 4|关注: 0
为什么奇次幂下会出现复数?
<h1 style="color:# 麦片财富积分
新手, 积分 10, 距离下一级还需 40 积分
这是我输入的代码:
&& [x,y]=meshgrid(-10:0.1:10);
&& z=(x.*y).^(1/3);
&& surf(x,y,z);
但是运行后出现如下报错:
Error using surf (line 78)
X, Y, Z, and C cannot be complex
请问一下为什么奇次幂下会出现复数?
<h1 style="color:#5 麦片财富积分
你看看这个就知道了
&& (-8)^(1/3)
& &1.0000 + 1.7321i
开三次方对应三个根,其中两个复根,MATLAB直接开三次幂,好像默认求的是复根,为什么我也想搞清楚。
帖子最佳答案
关注者: 179
因为MATLAB在复数域上定义,所以结果是正确的。如果你想要实数解,可以考虑用nthroot
<h1 style="color:# 麦片财富积分
因为MATLAB在复数域上定义,所以结果是正确的。如果你想要实数解,可以考虑用nthroot ...
恩!谢谢,又知道了一个函数~
那有没有办法得到指定的复数根呢?
<h1 style="color:# 麦片财富积分
你看看这个就知道了
&& (-8)^(1/3)
真的!好奇怪。。
不过我做了个实验,发现MATLAB总是默认输出在第一象限中而且离x轴最近的那个解~
for k=1:10;
& & n=2*k;
& & a=[a,(-1).^(1./n)];
&&Columns 1 through 5
& &0.0000 + 1.0000i& &0.7071 + 0.7071i& &0.8660 + 0.5000i& &0.9239 + 0.3827i& &0.9511 + 0.3090i
&&Columns 6 through 10
& &0.9659 + 0.2588i& &0.9749 + 0.2225i& &0.9808 + 0.1951i& &0.9848 + 0.1736i& &0.9877 + 0.1564i
站长推荐 /2
Powered by[求助]matlab怎么解复数方程? - 饮水思源
饮水思源 - 主题文章阅读  [讨论区: MathTools]本主题共有 7 篇文章,分 1 页, 当前显示第 1 页 []
[][] 发信人: ItIsME (itisme), 信区: MathTools
题: [求助]matlab怎么解复数方程?
发信站: 饮水思源 (日18:59:34 星期五)
用exp表示复数,比如要求解x*exp(i*pi/4)+y*exp(i*pi/2)=0.
用solve('x*exp(i*pi/4)+y*exp(i*pi/2)=0','x','y')不行吗?
※ 来源:?饮水思源 bbs.?[FROM: 2001:da8::5efe:3b4e:2368]
[][] 发信人: (BigOrange), 信区: MathTools
题: Re: [求助]matlab怎么解复数方程?
发信站: 饮水思源 (日19:08:14 星期五), 转信
&& syms x y
&& solve('x*exp(i*pi/4)+y*exp(i*pi/2)=0','y')
(-1/2+1/2*i)*x*2^(1/2)
&& solve('x*exp(i*pi/4)+y*exp(i*pi/2)=0','x')
(-1/2-1/2*i)*y*2^(1/2)
【 在 ItIsME (itisme) 的大作中提到: 】
: 用exp表示复数,比如要求解x*exp(i*pi/4)+y*exp(i*pi/2)=0.
: 用solve('x*exp(i*pi/4)+y*exp(i*pi/2)=0','x','y')不行吗?
____ _ / /_ / /_
/ __ `__ \ / __ `// __// __ \ / __// __ \ / __ \ / // ___/
/ / / / / // /_/ // /_ / / / // /_ / /_/ // /_/ // /(__
/_/ /_/ /_/ \__,_/ \__//_/ /_/ \__/ \____/ \____//_//____/
──────────────四区MathTools板欢迎您────
※ 来源:?饮水思源 bbs.?[FROM: 59.78.37.10]
[][] 发信人: ItIsME (itisme), 信区: MathTools
题: Re: [求助]matlab怎么解复数方程?
发信站: 饮水思源 (日19:10:34 星期五)
此时x,y不是应该有唯一一组解的吗?不能直接求出x,y的值吗
【 在 BigOrange 的大作中提到: 】
: && syms x y
: && solve('x*exp(i*pi/4)+y*exp(i*pi/2)=0','y')
: (-1/2+1/2*i)*x*2^(1/2)
: && solve('x*exp(i*pi/4)+y*exp(i*pi/2)=0','x')
: (-1/2-1/2*i)*y*2^(1/2)
: 【 在 ItIsME (itisme) 的大作中提到: 】
: : 用exp表示复数,比如要求解x*exp(i*pi/4)+y*exp(i*pi/2)=0.
: : 用solve('x*exp(i*pi/4)+y*exp(i*pi/2)=0','x','y')不行吗?
※ 来源:?饮水思源 bbs.?[FROM: 2001:da8::5efe:3b4e:2368]
[][] 发信人: ItIsME (itisme), 信区: MathTools
题: Re: [求助]matlab怎么解复数方程?
发信站: 饮水思源 (日19:14:22 星期五)
应该是说x,y有唯一一对实数解,怎么解出了?
【 在 BigOrange 的大作中提到: 】
: && syms x y
: && solve('x*exp(i*pi/4)+y*exp(i*pi/2)=0','y')
: (-1/2+1/2*i)*x*2^(1/2)
: && solve('x*exp(i*pi/4)+y*exp(i*pi/2)=0','x')
: (-1/2-1/2*i)*y*2^(1/2)
: 【 在 ItIsME (itisme) 的大作中提到: 】
: : 用exp表示复数,比如要求解x*exp(i*pi/4)+y*exp(i*pi/2)=0.
: : 用solve('x*exp(i*pi/4)+y*exp(i*pi/2)=0','x','y')不行吗?
※ 来源:?饮水思源 bbs.?[FROM: 2001:da8::5efe:3b4e:2368]
[][] 发信人: (BigOrange), 信区: MathTools
题: Re: [求助]matlab怎么解复数方程?
发信站: 饮水思源 (日19:18:34 星期五), 转信
我就知道这些了...抱歉...
【 在 ItIsME (itisme) 的大作中提到: 】
: 应该是说x,y有唯一一对实数解,怎么解出了?
: 【 在 BigOrange 的大作中提到: 】
: : (-1/2+1/2*i)*x*2^(1/2)
: : (-1/2-1/2*i)*y*2^(1/2)
____ _ / /_ / /_
/ __ `__ \ / __ `// __// __ \ / __// __ \ / __ \ / // ___/
/ / / / / // /_/ // /_ / / / // /_ / /_/ // /_/ // /(__
/_/ /_/ /_/ \__,_/ \__//_/ /_/ \__/ \____/ \____//_//____/
──────────────四区MathTools板欢迎您────
※ 来源:?饮水思源 bbs.?[FROM: 59.78.37.10]
[][] 发信人: ItIsME (itisme), 信区: MathTools
题: Re: [求助]matlab怎么解复数方程?
发信站: 饮水思源 (日19:21:03 星期五)
【 在 BigOrange 的大作中提到: 】
: 我就知道这些了...抱歉...
: 【 在 ItIsME (itisme) 的大作中提到: 】
: : 应该是说x,y有唯一一对实数解,怎么解出了?
※ 来源:?饮水思源 bbs.?[FROM: 2001:da8::5efe:3b4e:2368]
[][] 发信人: (BigOrange), 信区: MathTools
题: Re: [求助]matlab怎么解复数方程?
发信站: 饮水思源 (日19:24:49 星期五), 转信
等达人来解答吧...
【 在 ItIsME (itisme) 的大作中提到: 】
: 嗯~谢谢了
: 【 在 BigOrange 的大作中提到: 】
: : 我就知道这些了...抱歉...
____ _ / /_ / /_
/ __ `__ \ / __ `// __// __ \ / __// __ \ / __ \ / // ___/
/ / / / / // /_/ // /_ / / / // /_ / /_/ // /_/ // /(__
/_/ /_/ /_/ \__,_/ \__//_/ /_/ \__/ \____/ \____//_//____/
──────────────四区MathTools板欢迎您────
※ 来源:?饮水思源 bbs.?[FROM: 59.78.37.10]
本主题共有 7 篇文章,分 1 页, 当前显示第 1 页 [][][]matlab 如何用solve求根?我求出来的和fzero的不同,solve的都是复数,fzero都是实数……我用solve求这个方程的根solve('12*x^2 - x^3 - 41*x + 35')结果出了3个复数的根,可是我用fzero逐个逐个找,我找到了3个实数根,那是怎么回事呢?应该用什么函数,一次解出所有实数根呢?
幻世萌ziiey
6.5712 - 0.0000i
1.2855 - 0.0000i
4.1433 + 0.0000i这个是我得到的结果,基本上是实数吧,只是因为两个函数的算法不一样,有一些出入而已!我的腾讯联系方式,散坝而要龄要伞流午
为您推荐:
其他类似问题
扫描下载二维码为什么正弦,反正弦函数计算结果会出现复数?_matlab吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:140,610贴子:
为什么正弦,反正弦函数计算结果会出现复数?收藏
All_1=62.9582,
lAdot_radS=(180/186)/180*onedeg = pi/180;RAAN = onedeg:onedeg*10:(pi-onedeg);
RAAN = 0:onedeg*5: betaA
= acos(cos(epsin)*cos(inc)+sin(epsin)*sin(inc)*cos(RAAN))betaA0 = betaA*180/x_sunsyn = sin(All_1/180*pi)./sin(betaA);x_sunsyn= 2*asin(x_sunsyn)/lAdot_radS为什么算出来的结果会有复数?x_sunsyn =
1.0e+002 *
Columns 1 through 5
Columns 6 through 10
Columns 11 through 15
Columns 16 through 20
Columns 21 through 25
Columns 26 through 30
1.8600 - 0.0899i
Columns 31 through 35
1.8600 - 0.1983i
1.8600 - 0.2607i
1.8600 - 0.3050i
1.8600 - 0.3371i
1.8600 - 0.3591i
Columns 36 through 37
1.8600 - 0.3721i
1.8600 - 0.3763i
报考一级消防师要求,学尔森13年考培经验为您解答,更有百度信贷分期付学费.
这是Matlab说明文档的原话For real elements of x outside the range [-1,1], asin(X) iscomplex
因为反正弦的定义域要在[-1,1],你的定义域肯定不在这个范围内,所以才会出现复数的。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或matlab能解含复数的微分方程或方程组吗?最近碰要要接微分方程组,对于实系数的倒是没什么问题,不过现在碰到了复系数了,我用原来的办法好像总是busy,按道理不会,难道复系数的很实系数的求解方法不一样吗,哪位知道,说说吧?感谢了
乌尔里希moHT
busy只是说明计算多,运算时间长
查看原帖>>
为您推荐:
其他类似问题
扫描下载二维码}

我要回帖

更多关于 matlab复数表示 的文章

更多推荐

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

点击添加站长微信