数学建模社区-数学中国

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

作者: fzc    时间: 2009-7-11 12:41
标题: 【新手求教】:解三次方程
我在使用Mathematica时遇到一个不解的问题:- Z. e+ t9 ^7 w
用Plot[8 x^3 - 6 x + 1, {x, -1, 1}]绘出的图形能明显看到该三次方程有三个实根,但用Solve[8 x^3 - 6 x + 1 == 0, x]求解却得到三个复根。这是怎么回事儿?
3 d& i. ^0 g2 \3 A  F9 @: Q请高手不吝赐教!
作者: mathcd    时间: 2009-7-11 14:33
虚部数值太小了.5 i: ?' e  p- t& r# I, U& Y

; L2 A: ~/ x: X- o: 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 编辑 & f5 n0 x! N' T0 ]1 S- ?
  U; e' U/ Q9 ~
奇怪的是,用maple可以顺利求出符号解:" {& {+ L0 X0 ^& y  x% O0 a+ d
$ t2 c  l, U+ H+ x# H

& \! M+ B# |3 _: C6 |[attach]6271[/attach]
* s5 b+ Y% l5 _$ y
8 k- H5 G& j6 T0 R4 I这似乎再一次表明了在符号计算方面maple对mathematica的优越性.

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

1.png


作者: fzc    时间: 2009-7-12 09:40
虚部数值太小了.
3 W' F' p5 q2 ?# k4 V# O9 N, t% Q/ P/ z+ r
NSolve[8*x^3 - 6*x + 1 == 0, x]
" ^. ^8 `! \: T2 p( }  w2 vmathcd 发表于 2009-7-11 14:33
. i. E  ?( P/ A" \) M
非常感谢您的答复。但我现在是想从理论上把它搞清楚。从数学手册上能查到,三次方程的卡尔丹公式通式是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 编辑
3 ?8 u/ G# ~& M( ?- t9 ^
奇怪的是,用maple可以顺利求出符号解:
& M4 e  b) T& R$ w3 O+ @8 ]1 y, B# G4 K1 b' E1 d( B

; w& Y! M; b) N' K9 L# R6271
* C0 `+ n; B5 P! K/ [
% \! k+ ]+ u6 S" {6 ~这似乎再一次表明了在符号计算方面maple对mathematica的优越性.
. D5 Z# M6 u$ u9 Z' N$ zmathcd 发表于 2009-7-11 23:27

# X7 c: ]9 d4 w$ {- t2 ~我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应该还是世界老大,Maple排第二。
作者: mathcd    时间: 2009-7-12 17:04
本帖最后由 mathcd 于 2009-7-12 17:06 编辑 ! l7 n5 F, G0 v6 j
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应 ...
& Q1 J6 T3 |! o7 ]& \fzc 发表于 2009-7-12 09:45

! v0 B- R/ Z4 `' o4 h2 R. L3 ^: p- f" z" a+ o1 P* {
怪了.我昨天用的是Mathematica7算不出符号解,所以我才用maple来解.
7 s& h7 X; {9 m) F今天Mathematica7居然又可以给出符号解了.
: V; ^' s4 F5 A/ i" b0 \; _5 _: [怪!: q; p7 f; S, Q; B: _9 U# Y
: U& Z9 j$ K0 H- j
! \' ^: l' t3 d* f
"难道Mathematica有Bug ?"
. F5 {- Z, T- ?5 Y8 _9 r难道maple13也有bug?% e& g& n# A7 Z, X; V
费解!
作者: 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是求的近似值。2 p- ~! E+ `* H4 f, t* D3 T* P
哈哈~~见笑了~~就知道这些
作者: 蓝月船    时间: 2009-8-7 16:48
这个可能是个“超越方程”吧。




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