数学建模社区-数学中国

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

作者: fzc    时间: 2009-7-11 12:41
标题: 【新手求教】:解三次方程
我在使用Mathematica时遇到一个不解的问题:" m2 [1 Z2 J4 P4 [
用Plot[8 x^3 - 6 x + 1, {x, -1, 1}]绘出的图形能明显看到该三次方程有三个实根,但用Solve[8 x^3 - 6 x + 1 == 0, x]求解却得到三个复根。这是怎么回事儿?
! E& d- J6 S6 {6 X, Z' H7 g- p请高手不吝赐教!
作者: mathcd    时间: 2009-7-11 14:33
虚部数值太小了.! S  S1 A& m* z3 z8 w8 l* o6 x
% ^) I1 ^$ _, G. g- v3 `
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 编辑
0 |( r5 j5 b, h% a% b6 c4 Q9 u2 n2 x; a
奇怪的是,用maple可以顺利求出符号解:/ W" F0 b: q0 v# Y

2 @4 N6 A7 f; {4 A& }% J8 |. F5 s: f. o3 Z/ x' G, _4 K2 A, K
[attach]6271[/attach]
5 e* F4 J/ _  s/ w( X3 }" o/ r5 [5 L" F% [1 G
这似乎再一次表明了在符号计算方面maple对mathematica的优越性.

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

1.png


作者: fzc    时间: 2009-7-12 09:40
虚部数值太小了.7 L7 T1 y4 b& X2 N) `
7 L' m, s% c0 A6 P% v
NSolve[8*x^3 - 6*x + 1 == 0, x]
0 E' S* A- H$ l& e2 f4 g1 hmathcd 发表于 2009-7-11 14:33

7 Z0 C7 \" A. r# e7 ]5 A$ r/ n非常感谢您的答复。但我现在是想从理论上把它搞清楚。从数学手册上能查到,三次方程的卡尔丹公式通式是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# ^- B. ?, X9 R0 G
奇怪的是,用maple可以顺利求出符号解:/ F" r$ f) P1 X: g

0 V1 g# [7 j' S$ j+ W& a! X  u5 y* e" Q  [% i! ]: F
6271
* v) t% G5 p" E' L2 o4 V# `7 `4 t' Q# z% d: p9 F3 R
这似乎再一次表明了在符号计算方面maple对mathematica的优越性.
( G: A5 b( r) n* K1 k1 r" zmathcd 发表于 2009-7-11 23:27
) c" r! J) {. v3 T- V( }
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应该还是世界老大,Maple排第二。
作者: mathcd    时间: 2009-7-12 17:04
本帖最后由 mathcd 于 2009-7-12 17:06 编辑
- g! D* i) n9 A7 o7 t
我用Mathematica也能求出符号解。和您的这个答案是一样的。关键问题是该三次方程的解应该是实根而不应该是虚根呀!难道数学手册上写错了?我从网上维基百科查的结果也是应该是实根呀!Mathematica在符号计算方面应 ...
- R/ @# X4 i2 x9 l. B# ?! r! ^9 \fzc 发表于 2009-7-12 09:45

& F/ A6 Y* F; H% N( W) [+ i7 l& L' s! J: D- J
怪了.我昨天用的是Mathematica7算不出符号解,所以我才用maple来解.
: j  C& s; O1 L4 l; Q今天Mathematica7居然又可以给出符号解了.; i: ]8 s0 ]4 P
怪!& Q: `1 G" \9 X  Q* n

5 T4 c9 k  n6 w5 {& m/ o) B* G3 `  }
"难道Mathematica有Bug ?") S0 Q; w: D* d8 T5 _* z
难道maple13也有bug?
2 S% n& h  Z, f5 @" ]费解!
作者: 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是求的近似值。+ Q. q5 I( k2 g+ @+ l+ I
哈哈~~见笑了~~就知道这些
作者: 蓝月船    时间: 2009-8-7 16:48
这个可能是个“超越方程”吧。




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