猿问

python求方程

方程x^5+2x^4+3x^3-x^2-3x=1怎样求出其五个数值解?
交互式爱情
浏览 356回答 2
2回答

呼啦一阵风

使用sympy库进行方程计算In[1]:fromsympyimport*In[2]:x=symbols('x')In[3]:solve(Eq(x**5+2*x**4+3*x**3-x**2-3*x-1,0),x)Out[3]:[CRootOf(x**5+2*x**4+3*x**3-x**2-3*x-1,0),CRootOf(x**5+2*x**4+3*x**3-x**2-3*x-1,1),CRootOf(x**5+2*x**4+3*x**3-x**2-3*x-1,2),CRootOf(x**5+2*x**4+3*x**3-x**2-3*x-1,3),CRootOf(x**5+2*x**4+3*x**3-x**2-3*x-1,4)]In[5]:R=solve(Eq(x**5+2*x**4+3*x**3-x**2-3*x-1,0),x)In[6]:[N(solution)forsolutioninR]Out[6]:[0.933791433341506,-0.557328385553605-0.0683867345066456*I,-0.557328385553605+0.0683867345066456*I,-0.909567331117148-1.60288306941394*I,-0.909567331117148+1.60288306941394*I]

慕村9548890

非线性方程数值解适合使用scipy.optimize的fslove和root,速递比sympy的符号推导快很多这道题代码可以这样写fromscipy.optimizeimportfsolvedeffunc(v):x,=v.tolist()return[x**5+2*(x**4)+3*(x**3)-x**2-3*x-1]r=fsolve(func,[1])print(r[0])r=fsolve(func,[-1])print(r[0])采用最小二乘法拟合,需要你给出试算初值。这道题来说,1和-1两个初值向两个方向拟合,所以会得到两个不同的近似解,一个是0.93379143,一个是-0.5563642。试算初值的选定倚赖推导和经验,可以借助sympy。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答