数学建模社区-数学中国

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

作者: fzc    时间: 2009-7-11 12:41
标题: 【新手求教】:解三次方程
我在使用Mathematica时遇到一个不解的问题:
0 {1 N) P1 f1 E  e6 ]$ D用Plot[8 x^3 - 6 x + 1, {x, -1, 1}]绘出的图形能明显看到该三次方程有三个实根,但用Solve[8 x^3 - 6 x + 1 == 0, x]求解却得到三个复根。这是怎么回事儿?0 F+ y. H3 B# j
请高手不吝赐教!
作者: mathcd    时间: 2009-7-11 14:33
虚部数值太小了.
: f' N: m# H3 r, d
' y3 C1 V4 I) F* _! TNSolve[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 编辑 # n' V7 u  y6 l9 _4 n- ]

/ }. b' p- g4 I" u0 ~奇怪的是,用maple可以顺利求出符号解:; s0 F- @* O! e" A: U' ]
1 c& u. \- `4 N
! W4 w' E4 _  {: S) X
[attach]6271[/attach]/ D# ^2 y) H0 C/ l; W6 g1 z2 g
8 y( _# h! g4 Y/ z+ ]0 {
这似乎再一次表明了在符号计算方面maple对mathematica的优越性.

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

1.png


作者: fzc    时间: 2009-7-12 09:40
虚部数值太小了., z- d. o7 F, c; u3 T/ o  n
) {9 x! V" a8 y: E
NSolve[8*x^3 - 6*x + 1 == 0, x]
' y; T+ X  s5 Y& k- b$ ~mathcd 发表于 2009-7-11 14:33
: v3 M1 N/ e+ a1 m0 ^/ H& ]' Z7 x3 G
非常感谢您的答复。但我现在是想从理论上把它搞清楚。从数学手册上能查到,三次方程的卡尔丹公式通式是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 编辑 8 i" _" K: C: ]( \' O& }2 c0 H* z) l
奇怪的是,用maple可以顺利求出符号解:
$ I! I( k' b& v5 s7 p( }
, ]6 Y+ L: t3 U; v9 q7 i" R- R/ i9 A
62710 \2 b* D) B2 g# C2 l. P1 y# D
7 E1 j$ y2 H  |* ?, C6 W' Z6 ]
这似乎再一次表明了在符号计算方面maple对mathematica的优越性.) U$ U0 B; K* W5 [3 p. k* l3 E8 L
mathcd 发表于 2009-7-11 23:27

" \: s  s. Q+ Q0 G3 M3 ?我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应该还是世界老大,Maple排第二。
作者: mathcd    时间: 2009-7-12 17:04
本帖最后由 mathcd 于 2009-7-12 17:06 编辑
/ B; D" \# N. d% P& Q
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应 ...
6 G( e, ]* L+ B4 _fzc 发表于 2009-7-12 09:45
* f5 W. G$ f6 Q! V" H3 Y

/ C1 x, a, c" F, P' @9 I怪了.我昨天用的是Mathematica7算不出符号解,所以我才用maple来解.( u& q5 S/ E# `6 [
今天Mathematica7居然又可以给出符号解了.
! s' s6 m3 D  }. n- V( B* q怪!  O7 _# _- B: a" E- ?

! U1 a- t" G* S7 Y& M; b
6 w3 t" I/ V1 b7 P8 `2 Y"难道Mathematica有Bug ?"& I' |" V8 l; Y* S# k( R
难道maple13也有bug?
! O: M4 b, ^$ F( h/ l, ^+ 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是求的近似值。
$ h: w  }$ E  w: I哈哈~~见笑了~~就知道这些
作者: 蓝月船    时间: 2009-8-7 16:48
这个可能是个“超越方程”吧。




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