封面制作网站,wordpress 导航栏居中,做网站推销产品效果怎么样,蜜雪冰城网络营销案例分析参考链接#xff1a; Python 变量 #xff5c;表达式 #xff5c;条件和函数
有时候我们会遇到一些很复杂的表达式#xff0c;或者想要求解某个表达式#xff0c;但是手动计算的话不但耗时还费精力#xff0c;我们能不能利用计算机来帮助我们进行计算呢#xff1f;
1…参考链接 Python 变量 表达式 条件和函数
有时候我们会遇到一些很复杂的表达式或者想要求解某个表达式但是手动计算的话不但耗时还费精力我们能不能利用计算机来帮助我们进行计算呢
1、问题描述
我们昨天提出了四足机器人的初始姿态的问题里面给出了很多公式例如下面这条。 α arccos ( l 1 2 L 2 − l 2 2 2 l 1 L ) \begin{matrix} \alpha \arccos{\left(\frac{l_1^2 L^2 -l_2^2}{2l_1L} \right)}\\ \\ \end{matrix} αarccos(2l1Ll12L2−l22)
如果我们想要知道 L L L关于 α \alpha α的表达式可能得经过一系列化简才能得出答案这时候我们可以借助强大的计算机来帮我们实现这些运算最终得出答案 L l 1 cos ( α ) − l 1 2 sin 2 ( α ) l 2 2 L l_1 \cos{\left(\alpha \right)} \sqrt{- l_1^{2} \sin^{2}{\left(\alpha \right)} l_{2}^{2}} Ll1cos(α)−l12sin2(α)l22
这个关于 L L L的表达式一看就很复杂是作者手算出来的吗当然不是我是利用smypy这个库计算出来的表达式。
sympy是一个Python的科学计算库用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题
2、代码
这里直接给出代码
from sympy import *
import numpy as np # 定义我们的符号
l1 symbols(11)
l2 symbols(l2)
L symbols(L)
a symbols(a) # 定义等式右边要等于0
eq cos(a) - (l1**2 L**2 - l2**2)/(2*l1*L) # 求解
result solve(eq, L) # 打印结果
print(L:, result) # 将结果转化成latex格式
print(latex(result)) 输出如下因为是二次函数所以这里会给出两个解实际上只有一个是符合实际情况的。
L: [11*cos(a) - sqrt(-11**2*sin(a)**2 l2**2), 11*cos(a) sqrt(-11**2*sin(a)**2 l2**2)]
\left[ 11 \cos{\left(a \right)} - \sqrt{- 11^{2} \sin^{2}{\left(a \right)} l_{2}^{2}}, \ 11 \cos{\left(a \right)} \sqrt{- 11^{2} \sin^{2}{\left(a \right)} l_{2}^{2}}\right] solve()函数第一个参数是一个方程式等于零第二个参数是想要求解的符号。
3、求解一般代数方程
from sympy.solvers import solve
from sympy import Symbol
x Symbol(x)
result solve(x**2 - 1, x) [-1, 1] 更多使用方法可以参考官方文档 如果觉得ok点个赞点个关注也欢迎给个打赏支持一下编者的工作