数学建模社区-数学中国

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

作者: fzc    时间: 2009-7-11 12:41
标题: 【新手求教】:解三次方程
我在使用Mathematica时遇到一个不解的问题:
! y8 z9 z: C; |/ \: i$ Z6 `用Plot[8 x^3 - 6 x + 1, {x, -1, 1}]绘出的图形能明显看到该三次方程有三个实根,但用Solve[8 x^3 - 6 x + 1 == 0, x]求解却得到三个复根。这是怎么回事儿?- x7 ~- q! s* C! v+ ]7 y7 \4 ~
请高手不吝赐教!
作者: mathcd    时间: 2009-7-11 14:33
虚部数值太小了.: I! j3 P9 g4 O  E. X, x- t: S
7 ^. l, x3 w7 ^1 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 编辑
# N) T$ y. M# c# @  {$ P# T+ `4 S8 l# g& D
奇怪的是,用maple可以顺利求出符号解:
6 G6 k! ~% H/ F# {3 g, [
# ^9 [7 B- t& u! v3 ^, q) y* W5 Z3 S8 B3 y
[attach]6271[/attach]+ K8 D7 C$ c' L! P3 a: Z( B! L$ c

3 A7 `7 |+ k- d2 X' C/ T- M7 U! o! n这似乎再一次表明了在符号计算方面maple对mathematica的优越性.

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

1.png


作者: fzc    时间: 2009-7-12 09:40
虚部数值太小了.
- @. p8 t+ b+ {& e( |
, D6 X. Q' H) \NSolve[8*x^3 - 6*x + 1 == 0, x]
& m: a/ }9 D8 Q% Ymathcd 发表于 2009-7-11 14:33

' v$ n6 T$ y0 P非常感谢您的答复。但我现在是想从理论上把它搞清楚。从数学手册上能查到,三次方程的卡尔丹公式通式是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 编辑
( P) H2 ~/ A; j; @
奇怪的是,用maple可以顺利求出符号解:  f5 E- A! x  F4 R% |
2 V8 b& }- b6 m( X1 o5 [

$ w1 u* p1 b2 ~. R: {# W6271; H& m3 n; B- |! o$ T8 {' @) R
0 c2 e9 T- O* e
这似乎再一次表明了在符号计算方面maple对mathematica的优越性.' ?, a9 o( f. K2 i3 j1 {
mathcd 发表于 2009-7-11 23:27
, l; y* ~" U0 w' H# B0 b, l
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应该还是世界老大,Maple排第二。
作者: mathcd    时间: 2009-7-12 17:04
本帖最后由 mathcd 于 2009-7-12 17:06 编辑
# [& N* k9 \0 ~5 Q
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应 ...
) d: b) ]0 \0 r6 C- q! \fzc 发表于 2009-7-12 09:45
( B  ~5 p6 [7 g) b
$ m& |& |5 z0 e" w& x" K9 E
怪了.我昨天用的是Mathematica7算不出符号解,所以我才用maple来解.2 {- z8 V! ?! v# F6 V# a
今天Mathematica7居然又可以给出符号解了.% x5 X/ n6 B9 j) _. P# x
怪!
; X, }2 e7 \6 q: P& [5 o% ^! l, Y, @8 c/ R( n: A, {- l

6 n9 D/ g( ^$ e- @& w/ s"难道Mathematica有Bug ?"; B7 w+ {& }) G. m' d/ B: b
难道maple13也有bug?
  y0 X1 d  }) K9 [# e; G+ 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是求的近似值。3 O/ M. x0 @" N6 K
哈哈~~见笑了~~就知道这些
作者: 蓝月船    时间: 2009-8-7 16:48
这个可能是个“超越方程”吧。




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