数学建模社区-数学中国

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

作者: fzc    时间: 2009-7-11 12:41
标题: 【新手求教】:解三次方程
我在使用Mathematica时遇到一个不解的问题:
8 Y0 o8 @0 Z0 L. U. P用Plot[8 x^3 - 6 x + 1, {x, -1, 1}]绘出的图形能明显看到该三次方程有三个实根,但用Solve[8 x^3 - 6 x + 1 == 0, x]求解却得到三个复根。这是怎么回事儿?
( ^! D* T! B2 j; [+ M2 }请高手不吝赐教!
作者: mathcd    时间: 2009-7-11 14:33
虚部数值太小了.
' a' ^* \  \9 K. K6 O! \. }6 X9 y, B1 |
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 编辑
" X) U6 s/ U7 R% U( _! W
! Y% E3 b% C4 {1 C3 p$ H, a奇怪的是,用maple可以顺利求出符号解:0 ?# e) M8 B$ D/ T; X' |$ H

8 y9 u7 Y+ w9 P# P# y  ]( c! t4 K" h
$ \' ^2 o, y# N4 C[attach]6271[/attach]
" G7 z# u4 u6 c' f3 U& E" b* M; t8 @: ?# L8 o+ T* Q& t" ^
这似乎再一次表明了在符号计算方面maple对mathematica的优越性.

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

1.png


作者: fzc    时间: 2009-7-12 09:40
虚部数值太小了.9 m. o. A# S# Z, A4 t& U2 q7 o# j
& c) `0 a/ m" g% \
NSolve[8*x^3 - 6*x + 1 == 0, x]6 a8 U- p( q. U. J
mathcd 发表于 2009-7-11 14:33

" W9 b9 C( r1 V# S% 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 编辑 ' d$ k, S9 p/ P# e) v
奇怪的是,用maple可以顺利求出符号解:
) l8 f5 r! }) o4 B+ h
1 I/ t! q4 e0 S0 Q# Y
" M" b* e, M! x* s9 b4 \# u9 g6271
4 _( O$ [5 e% l+ V8 P) F8 N7 a& G* \. T9 a7 d7 n2 L8 k* ?6 M( A
这似乎再一次表明了在符号计算方面maple对mathematica的优越性.. B8 G; Z( x7 `; Q4 z" L( k
mathcd 发表于 2009-7-11 23:27

/ }* o3 _% K- T. T我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应该还是世界老大,Maple排第二。
作者: mathcd    时间: 2009-7-12 17:04
本帖最后由 mathcd 于 2009-7-12 17:06 编辑
- f$ |8 i* x% E8 Q7 z# S
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应 .... L8 A& Q8 b) A$ `# F5 Z
fzc 发表于 2009-7-12 09:45
6 W* G8 I' D. m, z, ?; G- m

, y, G7 x$ K- O$ M1 T3 J* v# J怪了.我昨天用的是Mathematica7算不出符号解,所以我才用maple来解.
- Q3 k, s2 w" w- ]  b# ?今天Mathematica7居然又可以给出符号解了.$ m( @( M: r) M# m
怪!5 n0 j9 f% s' e. v8 {: H, @

. K5 h- ~& n& B- S" w* p# p5 F5 k* T$ z! b& R5 f" W
"难道Mathematica有Bug ?"! N: t2 S/ d8 }4 m' `# K4 \- o4 O
难道maple13也有bug?
) c+ |" K2 }  |; c! ^费解!
作者: 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是求的近似值。
9 w- Z2 \5 a8 x) p/ _5 F5 U哈哈~~见笑了~~就知道这些
作者: 蓝月船    时间: 2009-8-7 16:48
这个可能是个“超越方程”吧。




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