数学建模社区-数学中国

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

作者: fzc    时间: 2009-7-11 12:41
标题: 【新手求教】:解三次方程
我在使用Mathematica时遇到一个不解的问题:
8 B& X. o+ }6 F+ ^- R8 J用Plot[8 x^3 - 6 x + 1, {x, -1, 1}]绘出的图形能明显看到该三次方程有三个实根,但用Solve[8 x^3 - 6 x + 1 == 0, x]求解却得到三个复根。这是怎么回事儿?# L$ u) c1 [1 h" z8 F
请高手不吝赐教!
作者: mathcd    时间: 2009-7-11 14:33
虚部数值太小了.+ A% R* i1 t2 N: E. U  ~. L
$ e; n8 A2 h: a! A7 U5 y
NSolve[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 编辑 * Y: L; O% p; Q3 S  W6 |9 ^, u% m/ n

8 r0 s8 |  H8 U1 X% p( T奇怪的是,用maple可以顺利求出符号解:4 J2 T: |- \. A* z( E& [* Z
* o$ N# n6 S. }4 k
7 z) V2 q% o( `+ ]! [3 }
[attach]6271[/attach]
2 ~0 j: I+ [% v% Z) }5 u& o$ ]  b+ f
9 H( o* _' W: f, b0 O4 V5 H这似乎再一次表明了在符号计算方面maple对mathematica的优越性.

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

1.png


作者: fzc    时间: 2009-7-12 09:40
虚部数值太小了.
, }# o; x; i- P/ J$ W7 Q0 `1 l5 |8 Z3 Z7 T
NSolve[8*x^3 - 6*x + 1 == 0, x]
& V1 N" j' D$ n0 u" u% Lmathcd 发表于 2009-7-11 14:33
1 ?  u2 r" {2 Q2 U+ A' T
非常感谢您的答复。但我现在是想从理论上把它搞清楚。从数学手册上能查到,三次方程的卡尔丹公式通式是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 编辑
( I. w& N% ^" [$ J
奇怪的是,用maple可以顺利求出符号解:) m+ w% h- X: u8 f' R6 f. j) a
* s/ z5 m6 d4 c
. U: r& r6 r% i$ _  X# v
62716 X& K* f% @4 ^, ?' r
1 v% x4 L! s+ g  ^9 ?) N
这似乎再一次表明了在符号计算方面maple对mathematica的优越性.4 J  ^3 ^# I  y! F# M1 ]
mathcd 发表于 2009-7-11 23:27

1 Q- g6 L/ G: W1 A) v我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应该还是世界老大,Maple排第二。
作者: mathcd    时间: 2009-7-12 17:04
本帖最后由 mathcd 于 2009-7-12 17:06 编辑
! g5 B7 \1 g& ?+ ~3 K( d0 N
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应 ...) Q9 a- J1 t6 N8 G
fzc 发表于 2009-7-12 09:45
2 V5 W5 ^+ \" ?

( \' d( O6 o3 j' i怪了.我昨天用的是Mathematica7算不出符号解,所以我才用maple来解.
  }: H0 H. G, w, v% h- \9 b今天Mathematica7居然又可以给出符号解了.) c* a$ o5 g+ B2 m) `6 _2 U7 |+ \! u
怪!
/ {3 h+ ]9 o% j7 Z1 X: ^4 e# }, h  ?4 j* K- ?1 M

2 w2 x2 z: X6 g' r- J2 X"难道Mathematica有Bug ?"
7 R! G+ t* O- `难道maple13也有bug?
0 K% ^' Q' h$ r1 y费解!
作者: 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是求的近似值。
* v9 |2 s" S- }. b" ]4 z; f哈哈~~见笑了~~就知道这些
作者: 蓝月船    时间: 2009-8-7 16:48
这个可能是个“超越方程”吧。




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