Octave 中的符号求解与 MATLAB 中的不同
Symbolic solve in Octave isn't the same as in MATLAB
我正在使用以下 OCTAVE 命令求解方程式:
syms lambda
f = 0.9999999999999999614356461247534*lambda^8 + 0.010136594318889089056437488043559*lambda^7 + 0.000015602822908760063058460837969499*lambda^6 - 0.000000047482181730798751628339904656436*lambda^5 - 1.6804583575154387080270563605856e-10*lambda^4 - 1.9779236089667689638174134679895e-13*lambda^3 - 1.1091457134190232245774382079799e-16*lambda^2 - 2.9823717782777009154185183839051e-20*lambda - 3.202469692780878591525091765936e-24
solve(f==0, lambda)
我得到的答案是
ans = {}(0x0)
另一方面,当我尝试在 MATLAB 中使用相同的命令时,我得到以下答案:
ans =
0.0027518081408059183214532684717853
-0.0075831287286429577224408168637228
- 0.00029575583281255452382838468617809 - 0.0001257455668418381216048479457788*i
- 0.0016381334730465236707629472401125 - 0.00001988265276086766636376330275894*i
- 0.0016381334730465236707629472401125 + 0.00001988265276086766636376330275894*i
- 0.00071874755966694673136475169368249 - 0.00019245511322083820223381924903732*i
- 0.00029575583281255452382838468617809 + 0.0001257455668418381216048479457788*i
- 0.00071874755966694673136475169368249 + 0.00019245511322083820223381924903732*i
有什么方法可以使 OCTAVE 的输出等于 MATLAB 的输出,可能需要一些调整?
你不应该在这里使用 sysm:
c = [0.9999999999999999614356461247534,
0.010136594318889089056437488043559,
0.000015602822908760063058460837969499,
- 0.000000047482181730798751628339904656436,
- 1.6804583575154387080270563605856e-10,
- 1.9779236089667689638174134679895e-13,
- 1.1091457134190232245774382079799e-16,
- 2.9823717782777009154185183839051e-20,
- 3.202469692780878591525091765936e-24];
octave> format long
octave> roots (c)
ans =
-0.00758312872864296 + 0.00000000000000000i
0.00275180814080592 + 0.00000000000000000i
-0.00163813347304650 + 0.00001988265276021i
-0.00163813347304650 - 0.00001988265276021i
-0.00071874755966697 + 0.00019245511322079i
-0.00071874755966697 - 0.00019245511322079i
-0.00029575583281256 + 0.00012574556684184i
-0.00029575583281256 - 0.00012574556684184i
与其他软件产品具有相同的根
我正在使用以下 OCTAVE 命令求解方程式:
syms lambda
f = 0.9999999999999999614356461247534*lambda^8 + 0.010136594318889089056437488043559*lambda^7 + 0.000015602822908760063058460837969499*lambda^6 - 0.000000047482181730798751628339904656436*lambda^5 - 1.6804583575154387080270563605856e-10*lambda^4 - 1.9779236089667689638174134679895e-13*lambda^3 - 1.1091457134190232245774382079799e-16*lambda^2 - 2.9823717782777009154185183839051e-20*lambda - 3.202469692780878591525091765936e-24
solve(f==0, lambda)
我得到的答案是
ans = {}(0x0)
另一方面,当我尝试在 MATLAB 中使用相同的命令时,我得到以下答案:
ans =
0.0027518081408059183214532684717853
-0.0075831287286429577224408168637228
- 0.00029575583281255452382838468617809 - 0.0001257455668418381216048479457788*i
- 0.0016381334730465236707629472401125 - 0.00001988265276086766636376330275894*i
- 0.0016381334730465236707629472401125 + 0.00001988265276086766636376330275894*i
- 0.00071874755966694673136475169368249 - 0.00019245511322083820223381924903732*i
- 0.00029575583281255452382838468617809 + 0.0001257455668418381216048479457788*i
- 0.00071874755966694673136475169368249 + 0.00019245511322083820223381924903732*i
有什么方法可以使 OCTAVE 的输出等于 MATLAB 的输出,可能需要一些调整?
你不应该在这里使用 sysm:
c = [0.9999999999999999614356461247534,
0.010136594318889089056437488043559,
0.000015602822908760063058460837969499,
- 0.000000047482181730798751628339904656436,
- 1.6804583575154387080270563605856e-10,
- 1.9779236089667689638174134679895e-13,
- 1.1091457134190232245774382079799e-16,
- 2.9823717782777009154185183839051e-20,
- 3.202469692780878591525091765936e-24];
octave> format long
octave> roots (c)
ans =
-0.00758312872864296 + 0.00000000000000000i
0.00275180814080592 + 0.00000000000000000i
-0.00163813347304650 + 0.00001988265276021i
-0.00163813347304650 - 0.00001988265276021i
-0.00071874755966697 + 0.00019245511322079i
-0.00071874755966697 - 0.00019245511322079i
-0.00029575583281256 + 0.00012574556684184i
-0.00029575583281256 - 0.00012574556684184i
与其他软件产品具有相同的根