数学建模社区-数学中国

标题: 求解释,一个一元方程的求解 [打印本页]

作者: 秋风@    时间: 2012-5-29 22:03
标题: 求解释,一个一元方程的求解
昨天在用mathematica软件求解一个一元方程,却发现计算机无法求解,方程很简单:x^0.229+3.59x-0.754==0,用Solve求解时发现计算机一直“正在计算”,不得不放弃计算,后面我想,是不是这个软件是不是只能解整数方程,这个方程的次数相出现了0.229,但是我后面随便改成0.2或者0.3都有解,就是0.229次就没法求,故在这里发帖求助,希望高手解答,不胜感激!!!
作者: sycxyc    时间: 2012-6-1 22:05
FindRoot[x^0.229 + 3.59 x - 0.754 == 0, {x, 1}]
作者: 秋风@    时间: 2012-6-2 23:38
sycxyc 发表于 2012-6-1 22:05
4 @: E- B/ d7 R' p; B' r- W$ zFindRoot[x^0.229 + 3.59 x - 0.754 == 0, {x, 1}]

! s; B% w9 i/ M0 g% C: M: R7 M嗯嗯  是可以求解  但是怎么去理解这样的问题呢?谢谢啦
作者: sycxyc    时间: 2012-6-3 01:36
本帖最后由 sycxyc 于 2012-6-3 01:49 编辑
* D- E- b& Z9 t+ j+ Y; N
4 J1 j4 Q6 j' V: e( y* J/ ]Solve 和 NSolve 都是利用 Root 求出方程的所有解,否则将会报错
0 _& T- b. p( \8 S当方程很复杂是难以求出所有解的,
" ^2 a* Y0 e- P3 h+ p8 b" w像^0.229=229/1000,在Root中将要转换成1000次的方程,然后求其中的第一个解- k; h$ W& D5 |5 _7 ]3 {. v
你可以试着计算 Solve[x^(22/100) + 359/100 x - 377/500 == 0, x] ,其中22/100=11/50=0.22,Solve将其转换成了50次的方程,1000次方程转换的复杂程度不是以倍计算,而是以次方计算,这种算法复杂并且没有针对性。
8 [" E8 u7 v4 \  ^如果精度要求不高可以先画图确定需要解的大概位置,然后用 FindRoot 搜索近似解
作者: qq11942506    时间: 2012-7-7 10:48
学习了!!!!
作者: zhb    时间: 2012-7-10 08:35
学习了。。。




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