用mathematica求解方程Solve[8 Cos[0.5x] - 4x Sin[0.5x] == 0, x] 出不来答案,是咋么回事显示Solve::tdep: The equations appear to involve the variables to be solved for in an essentially non-algebraic way. >>
问题描述:
用mathematica求解方程Solve[8 Cos[0.5x] - 4x Sin[0.5x] == 0, x] 出不来答案,是咋么回事
显示Solve::tdep: The equations appear to involve the variables to be solved for in an essentially non-algebraic way. >>
答
Solve和NSolve都是求解多项式方程的,对于大多数超越方程来说,只能用迭代法或者割线法求解,此时要用FindRoot函数.
用Plot[8 Cos[0.5 x] - 4 x Sin[0.5 x] == 0,{x,-20,20}]可以看出,这个方程应该有无数个根,看你需要的是哪一个.比如从图像上看,在2附近有一个根且比2小,如果这正是你需要的,可以运行
FindRoot[8 Cos[0.5 x] - 4 x Sin[0.5 x] == 0,{x,2}]
或者
FindRoot[8 Cos[0.5 x] - 4 x Sin[0.5 x] == 0,{x,1,2}]
前者用的迭代法,后者用的割线法.运行结果都为
{x -> 1.72067}
想要更高的精度可以通过调整机器计算精度实现.
其他位置的根情况类似.