数学建模社区-数学中国

标题: 【新手求教】:解三次方程 [打印本页]

作者: fzc    时间: 2009-7-11 12:41
标题: 【新手求教】:解三次方程
我在使用Mathematica时遇到一个不解的问题:; k( k! i% U/ l4 t
用Plot[8 x^3 - 6 x + 1, {x, -1, 1}]绘出的图形能明显看到该三次方程有三个实根,但用Solve[8 x^3 - 6 x + 1 == 0, x]求解却得到三个复根。这是怎么回事儿?1 I. L6 j+ Q7 l1 q
请高手不吝赐教!
作者: mathcd    时间: 2009-7-11 14:33
虚部数值太小了.
) x$ F+ x/ ~1 J9 j' {
, k/ Q4 A8 V! f: N5 Z  B3 w1 fNSolve[8*x^3 - 6*x + 1 == 0, x]
作者: xypfs21    时间: 2009-7-11 14:56
支持,学习···
作者: mathcd    时间: 2009-7-11 23:27
本帖最后由 mathcd 于 2009-7-11 23:30 编辑 9 o) a& y2 M$ j3 Q& h& J: X

- \+ z* ]7 H. |/ D4 A: r奇怪的是,用maple可以顺利求出符号解:
, ]7 X' C* u- }& i; G% X5 K3 t& c9 ?& c) z
3 p3 ^- J# @1 G( q0 m+ N# ^
[attach]6271[/attach]. N1 e! E! q/ e: {5 ^5 J& W
7 h2 G7 m5 l5 G, O$ {8 C2 {
这似乎再一次表明了在符号计算方面maple对mathematica的优越性.

1.png (9.98 KB, 下载次数: 329)

1.png


作者: fzc    时间: 2009-7-12 09:40
虚部数值太小了.. Q5 h1 N0 L7 S. c8 r1 C

4 `1 d0 E7 s( mNSolve[8*x^3 - 6*x + 1 == 0, x]+ Z/ Z8 V5 |% o8 G( ?
mathcd 发表于 2009-7-11 14:33

" R  n0 ]9 S) `+ E非常感谢您的答复。但我现在是想从理论上把它搞清楚。从数学手册上能查到,三次方程的卡尔丹公式通式是x^3+px+q=0, 判别式是(q/2)^2+(p/3)^3。当判别式小于0时,三次方程应该有三个实根。对于我的这个三次方程,判别式的结果是-3/256,是小于0的,应该有三个实根,为何Solve的结果是虚根?难道Mathematica有Bug ? 【我觉得对于我的这个三次方程,Solve应该和NSolve的结果一样的,只不过Solve出来可能是分数,而NSolve出来是实数,而不应该出现实数和虚数之分】
作者: fzc    时间: 2009-7-12 09:45
本帖最后由 fzc 于 2009-7-12 09:46 编辑 / G. I7 M8 g1 p9 v* N* a, u
奇怪的是,用maple可以顺利求出符号解:
3 R* W3 R3 D$ j! h+ W3 M/ i
" d4 v. Q. u8 b$ V& {: Q" U3 h2 W. g! [( ~7 v& v% N$ L
6271' s- k: x" P8 s7 g1 w1 \" O7 ^
  h/ {0 Y. c- h; @
这似乎再一次表明了在符号计算方面maple对mathematica的优越性.
3 y. e4 ^, s( S4 ?& w8 ?mathcd 发表于 2009-7-11 23:27

7 v% d8 h. \# C$ E, s我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应该还是世界老大,Maple排第二。
作者: mathcd    时间: 2009-7-12 17:04
本帖最后由 mathcd 于 2009-7-12 17:06 编辑
5 m4 o, s3 A6 N1 V# x% I% p8 U
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应 ...+ D4 f2 x2 i5 a$ P1 v
fzc 发表于 2009-7-12 09:45
7 M% f  d3 \7 e

9 W: o7 n6 p" R6 n( Y怪了.我昨天用的是Mathematica7算不出符号解,所以我才用maple来解.' j2 H' Y4 {8 x' @5 g1 l+ K# X
今天Mathematica7居然又可以给出符号解了.% I) m! `% n" S8 b( f. w* ]
怪!
9 H# @5 i1 o+ T1 ^2 |
' \! c) ], [+ ^0 @" ^( e- l- @4 t# o! j
"难道Mathematica有Bug ?"$ o6 p7 C+ M" e: p9 u5 t
难道maple13也有bug?
/ y  x; J1 U0 D. M- N) t费解!
作者: NPOWER    时间: 2009-7-23 12:08
嗯,学习了
作者: zhong@quan    时间: 2009-7-28 00:02
very good!
作者: yl_sadness    时间: 2009-8-7 09:26
感觉mathematica在解方程的时候是有缺陷的~如Solve对于没有初等函数解的方程式解不出来的~~~用NSolve是求的近似值。
% n- ?% t# a/ h: r5 T1 @1 m) y/ ^( D* B哈哈~~见笑了~~就知道这些
作者: 蓝月船    时间: 2009-8-7 16:48
这个可能是个“超越方程”吧。




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5