[已解决] matlab的运算结果

[复制链接]
Eve阿大 发表于 2017-2-16 20:43:08
用matlab算(-8)^(1/3)得到1.0000+1.7321i,为什么得出这个结果,这个结果代表什么

最佳答案


matlabzhanghu 发表于 2017-2-16 21:22:00
转自百度:
  matlab对指数的处理是通过对数函数间接得到的。(-8)^(1/3)=exp(log(-8)/3),很明显,log(-8)导致出现复数。你可以把题目改成-(8)^(1/3)就好了。
matlab有专门的计算函数   nthroot  Real nth root of real numbers (实数的第 n 次实根
  1. nthroot(-8,3)

  2. ans =

  3.     -2
复制代码


回复此楼

7 条回复


matlabzhanghu 发表于 2017-2-16 21:22:00
转自百度:
  matlab对指数的处理是通过对数函数间接得到的。(-8)^(1/3)=exp(log(-8)/3),很明显,log(-8)导致出现复数。你可以把题目改成-(8)^(1/3)就好了。
matlab有专门的计算函数   nthroot  Real nth root of real numbers (实数的第 n 次实根
  1. nthroot(-8,3)

  2. ans =

  3.     -2
复制代码


回复此楼

深蓝孩童 发表于 2017-2-16 21:25:28
你百度一下 -8的立方根复数 不就知道了

heawjc 发表于 2017-2-17 09:43:18
-8的立方根在复数域下有3个根,再实数域下有一个根,用符号工具箱求解方程x^3+8=0,可以看出结果

>> syms x
>> solve(x^3+8,x)

ans =

            -2
3^(1/2)*i + 1
1 - 3^(1/2)*i

>> syms x real
>> solve(x^3+8,x)

ans =

-2

Eve阿大 发表于 2017-2-17 17:29:54
matlabzhanghu 发表于 2017-2-16 21:22
转自百度:
  matlab对指数的处理是通过对数函数间接得到的。(-8)^(1/3)=exp(log(-8)/3),很明显,log(-8)导 ...

p(r)=r^3+8
p=[1,0,0,8]
R=roots(p)也是计算的一种方法,但是我输入后怎么显示未定义函数或变量 'r'。

matlabzhanghu 发表于 2017-2-17 18:08:07
Eve阿大 发表于 2017-2-17 17:29
p(r)=r^3+8
p=[1,0,0,8]
R=roots(p)也是计算的一种方法,但是我输入后怎么显示未定义函数或变量 'r'。 ...

一种方法是
  1. p=[1,0,0,8];
  2. R=roots(p)

  3. R =
  4.   -2.0000         
  5.    1.0000 + 1.7321i
  6.    1.0000 - 1.7321i
复制代码

错在第一句,是没有用的而且是错误的表达

Eve阿大 发表于 2017-2-20 00:26:57
matlabzhanghu 发表于 2017-2-17 18:08
一种方法是
错在第一句,是没有用的而且是错误的表达

谢谢,你的是对的,但这种方法是我在别人的帖子下和书上看到的,我想问第一句正确的表达是什么

matlabzhanghu 发表于 2017-2-20 09:10:58
Eve阿大 发表于 2017-2-20 00:26
谢谢,你的是对的,但这种方法是我在别人的帖子下和书上看到的,我想问第一句正确的表达是什么 ...
  1. clc,clear
  2. p =@(r) r^3+8;      % 匿名函数的正确形式
  3. r = fzero(p,0)
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表