matlab是工程和科研人员必备的工具利器, 其一大功能就是可以实现代数符号运算,以及表达式推导,或者复杂表达式的化简工作, 是广大粗心而没有耐心计算人员的福音.

clc
close all
clear allsyms theta1 theta2 theta3;
syms delta1 delta2 delta3;lm11 = cos(theta1) * sin(delta1);
lm12 = sin(theta1) * sin(delta1);
lm13 = cos(delta1);
lm21 = cos(theta2) * sin(delta2);
lm22 = sin(theta2) * sin(delta2);
lm23 = cos(delta2);
lm31 = cos(theta3) * sin(delta3);
lm32 = sin(theta3) * sin(delta3);
lm33 = cos(delta3);lightMatrix = [lm11,lm12,lm13;lm21,lm22,lm23;lm31,lm32,lm33]
lightMatrix_Inv =  inv(lightMatrix);
simplify(lightMatrix_Inv)
latex(lightMatrix)


显示latex表达式,结果如下:
(sin⁡(δ1)cos⁡(θ1)sin⁡(δ1)sin⁡(θ1)cos⁡(δ1)sin⁡(δ2)cos⁡(θ2)sin⁡(δ2)sin⁡(θ2)cos⁡(δ2)sin⁡(δ3)cos⁡(θ3)sin⁡(δ3)sin⁡(θ3)cos⁡(δ3))\left(\begin{array}{ccc} \sin\left(\delta _{1}\right)\,\cos\left(\theta _{1}\right) & \sin\left(\delta _{1}\right)\,\sin\left(\theta _{1}\right) & \cos\left(\delta _{1}\right)\\ \sin\left(\delta _{2}\right)\,\cos\left(\theta _{2}\right) & \sin\left(\delta _{2}\right)\,\sin\left(\theta _{2}\right) & \cos\left(\delta _{2}\right)\\ \sin\left(\delta _{3}\right)\,\cos\left(\theta _{3}\right) & \sin\left(\delta _{3}\right)\,\sin\left(\theta _{3}\right) & \cos\left(\delta _{3}\right) \end{array}\right) ⎝⎛​sin(δ1​)cos(θ1​)sin(δ2​)cos(θ2​)sin(δ3​)cos(θ3​)​sin(δ1​)sin(θ1​)sin(δ2​)sin(θ2​)sin(δ3​)sin(θ3​)​cos(δ1​)cos(δ2​)cos(δ3​)​⎠⎞​
人生苦短,我用python。python中实现代数符号运算和推导需要利用symps库,总体使用方法基本与matlab中相一致。
在pycharm中无法实现表达式的latex格式显示,导致公式看起来繁琐复杂,不够清晰明了,容易导致错误。

import sympy as sy
sy.init_printing()def DeriveFormular():import sympy as symtheta1, theta2, theta3 = sym.symbols('theta_1,theta_2,theta_3')delta1, delta2, delta3 = sym.symbols('delta_1,delta_2,delta_3')lm11 = sym.cos(theta1) * sym.sin(delta1)lm12 = sym.sin(theta1) * sym.sin(delta1)lm13 = sym.cos(delta1)lm21 = sym.cos(theta2) * sym.sin(delta2)lm22 = sym.sin(theta2) * sym.sin(delta2)lm23 = sym.cos(delta2)lm31 = sym.cos(theta3) * sym.sin(delta3)lm32 = sym.sin(theta3) * sym.sin(delta3)lm33 = sym.cos(delta3)lightMatrix = sym.Matrix([[lm11, lm12, lm13], [lm21, lm22, lm23], [lm31, lm32, lm33]])inv_T = lightMatrix.inv()inv_T = sym.simplify(inv_T)print(lightMatrix)print(inv_T)


可以在jupyter notebook中实现公式的latex格式显示:

from IPython.display import display, Latex
import sympy as sy
sy.init_printing()
def DeriveFormular():import sympy as symtheta1,theta2,theta3 = sym.symbols('theta_1,theta_2,theta_3')delta1,delta2,delta3 = sym.symbols('delta_1,delta_2,delta_3')lm11 = sym.cos(theta1)*sym.sin(delta1)lm12 = sym.sin(theta1)*sym.sin(delta1)lm13 = sym.cos(delta1)lm21 = sym.cos(theta2)*sym.sin(delta2)lm22 = sym.sin(theta2)*sym.sin(delta2)lm23 = sym.cos(delta2)lm31 = sym.cos(theta3)*sym.sin(delta3)lm32 = sym.sin(theta3)*sym.sin(delta3)lm33 = sym.cos(delta3)lightMatrix = sym.Matrix([[lm11,lm12,lm13],[lm21,lm22,lm23],[lm31,lm32,lm33]])#     display(Latex(f"$${sy.latex(lightMatrix)}$$"))display(Latex(f"$${sy.latex(lightMatrix.inv())}$$"))inv_T = lightMatrix.inv()inv_T = sym.simplify(inv_T)display(Latex(f"$${sy.latex(inv_T)}$$"))


简单的函数值计算:

更多的其他代数运算符号可以参考该链接

python sympy库实现代数符号运算及表达式推导相关推荐

  1. 用python和sympy库解决方程组问题_使用Python的SymPy库解决数学运算问题的方法

    摘要:在学习与科研中,经常会遇到一些数学运算问题,使用计算机完成运算具有速度快和准确性高的优势.Python的Numpy包具有强大的科学运算功能,且具有其他许多主流科学计算语言不具备的免费.开源.轻量 ...

  2. python中ln怎么表示_Python math库 ln(x)运算的实现及原理

    这个是很有用的一个运算,除了本身可以求自然对数,还是求指数函数需要用到的基础函数. 实现原理就是泰勒展开,最简单是在x=1处进行泰勒展开: 但该函数离1越远越难收敛,同时大于2时无法收敛,所以需要进行 ...

  3. python @符号_用Python学数学之Sympy代数符号运算

    在我们初.高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是回忆过去可以发现,我们把大量的时间都花在反复解题.不断运算上,计算方法.运算技巧.笔算能力以及数学公式的记忆仿佛成了我们学习数 ...

  4. 用Python学数学之Sympy代数符号运算

    在我们初.高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是回忆过去可以发现,我们把大量的时间都花在反复解题.不断运算上,计算方法.运算技巧.笔算能力以及数学公式的记忆仿佛成了我们学习数 ...

  5. python符号计算_用Python学数学之Sympy代数符号运算

    在我们初.高中和大学近10年的学习时间里,数学一直占据着非常大的分量,但是回忆过去可以发现,我们把大量的时间都花在反复解题.不断运算上,计算方法.运算技巧.笔算能力以及数学公式的记忆仿佛成了我们学习数 ...

  6. Sympy代数符号运算库

    Python之Sympy代数符号运算库 计算器与数学 计算机代数系统 CAS Sympy符号运算的基本使用指南 Sympy 与 Math 函数的区别 定义变量 Symbol('x'), symbols ...

  7. python进行微积分运算——sympy库简介

    sympy官方文档:Numeric Computation - SymPy 1.11 documentation 一,基本数学方法 1.subs方法 进行表达式或者数值替换 import sympy ...

  8. python求极限_数学——函数极限知识以及sympy库的limit

    函数极限与Sympy库 欢迎访问我的博客 这部分可以参考sympy库中的limit 在$z_0$点处计算$e(z)$函数的极限 \(\lim_{z \to z_0} e(z)\) = limit(e, ...

  9. 用python和sympy库解决方程组问题_使用 Python 解数学方程

    说到数学题,相信大家都不陌生,从小学到大学都跟数学打交道. 其中初中的方程组,高中的二次曲线,大学的微积分最为头疼, 这个项目 就使用python 来解决方程组问题,微积分问题,矩阵化简. SymPy ...

最新文章

  1. PTA 基础编程题目集 7-27 冒泡法排序 C语言
  2. 【PAT乙级】 1004 成绩排名 (20 分)
  3. 深入理解Linux内核之内存寻址
  4. Linux 查看文件位置/查看文件路径的命令
  5. [渝粤教育] 中国地质大学 数据结构 复习题 (2)
  6. android 复制u盘文件到手机本地_如何导出Android中的文件(把Android当做U盘)
  7. 高校教师实名举报基金申报书被同事抄袭,抄袭者顺利晋升职称!
  8. android 多线程 js,android中的jstack,见见线程都在干嘛
  9. OA系统中公文流转简单思路
  10. navicat 连接mysql is not allowed to connect to this mysql server
  11. cad画圆如何确定圆心_CAD如何利用对象捕捉追踪功能来确定小圆圆心以及矩形的角点位置...
  12. 阿里云文本检测 使用教程(Java)
  13. loinc编码_医学知识组织系统:术语与编码
  14. 深度学习入门 FashionMNIST数据集训练和测试(30层神经网路)
  15. windows 录屏软件
  16. 一天一个机器学习小知识——Lasso、Ridge以及ElasticNet
  17. 连接字符串大全。。。
  18. 魏兴国:深入浅出DDoS攻击防御
  19. 使用Kaptcha生成图片验证码
  20. 数据可视化--Superset使用示例

热门文章

  1. js将多文件打包成zip下载
  2. 开始甲骨文培训了,第一天说了一下上课学习规矩及计算机基础
  3. M1 系统打包ipa
  4. FOC电机ST系列处理器使用的基础知识
  5. 软件发明专利实例_申请软件发明专利的一些案例
  6. 11.拼数(c++)
  7. 打印正三角、倒三角 和 n行n列星星
  8. java l1是啥意思_L1-020 帅到没朋友 (20分) Java
  9. 群硕入列FoodTalks优质供应商地图数字化板块
  10. ss命令Linux网络状态工具