数学建模社区-数学中国

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

作者: fzc    时间: 2009-7-11 12:41
标题: 【新手求教】:解三次方程
我在使用Mathematica时遇到一个不解的问题:: Z* C. F+ m) ^$ q/ i$ r
用Plot[8 x^3 - 6 x + 1, {x, -1, 1}]绘出的图形能明显看到该三次方程有三个实根,但用Solve[8 x^3 - 6 x + 1 == 0, x]求解却得到三个复根。这是怎么回事儿?- q  v) V" b2 Y9 K
请高手不吝赐教!
作者: mathcd    时间: 2009-7-11 14:33
虚部数值太小了.
6 O4 g; K4 g5 v4 @$ w; d3 k4 K' j" \3 s/ P; Y  N- }0 K, M
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 编辑 3 y3 c- P' s! ^* H* L' V  @
" @6 O+ q$ o+ R% N2 ^
奇怪的是,用maple可以顺利求出符号解:" k5 o4 @/ e; _

+ K$ t& D* \; ]" [
# R5 J6 P+ g, r2 G8 I# v$ q, H[attach]6271[/attach]
$ K3 g7 ~* @: ?' f! P' m! p/ S
/ {( {" M2 L3 |. z这似乎再一次表明了在符号计算方面maple对mathematica的优越性.

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

1.png


作者: fzc    时间: 2009-7-12 09:40
虚部数值太小了.) A% Q3 w" {4 m' e1 h: r/ Q) X1 }* i
4 g7 S( \2 v% \6 C: c/ L3 j
NSolve[8*x^3 - 6*x + 1 == 0, x]
( ]$ Z/ f2 y4 G& I+ Vmathcd 发表于 2009-7-11 14:33

2 s. H/ l2 k0 u6 @非常感谢您的答复。但我现在是想从理论上把它搞清楚。从数学手册上能查到,三次方程的卡尔丹公式通式是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 编辑
) e# B, m- q) C4 T4 q# B. `
奇怪的是,用maple可以顺利求出符号解:8 U6 r/ Q+ |* f  Y/ k) a8 z( r
7 x: a; Z# q( @- \& F9 o+ `" B

7 A6 ~8 t8 g" ~4 ?7 U/ L8 n) A6271
& l6 f! h' {8 _. r" s8 L8 U
+ ^' e; m9 A' A1 h! e这似乎再一次表明了在符号计算方面maple对mathematica的优越性.
: p5 @6 g# J  d. a7 Q* wmathcd 发表于 2009-7-11 23:27
5 L' v9 R+ Y' S& u9 R1 U: J
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应该还是世界老大,Maple排第二。
作者: mathcd    时间: 2009-7-12 17:04
本帖最后由 mathcd 于 2009-7-12 17:06 编辑 + N: e$ k3 ^' e. W* Q% m
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应 ...& M0 c' N; s- E
fzc 发表于 2009-7-12 09:45

- u' P$ v8 I9 C0 o9 Y6 J1 {( n$ F* k. w8 i
怪了.我昨天用的是Mathematica7算不出符号解,所以我才用maple来解./ g$ g/ r6 z& R" c) K: X
今天Mathematica7居然又可以给出符号解了.! \3 w8 j& z1 \# R3 o. ~
怪!% q+ [' ^3 r* F* d& ^  b$ W- j

: e9 F/ n# M" p
4 ]4 r  L1 G6 k" L3 _" d* p8 L"难道Mathematica有Bug ?"
# u$ l5 l( h% E1 s6 D难道maple13也有bug?
, `+ x$ t4 F& S' ]! l5 w) D费解!
作者: 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是求的近似值。
- O4 I' x3 [+ e. S1 d哈哈~~见笑了~~就知道这些
作者: 蓝月船    时间: 2009-8-7 16:48
这个可能是个“超越方程”吧。




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