Python Sympy:解方程利器

这篇具有很好参考价值的文章主要介绍了Python Sympy:解方程利器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用程序来解决数学问题是非常普遍的,将数学的定理或公式封装成程序中的函数,
只要传入相应的参数,就能让计算机帮我们计算出最终的结果。

不过,今天介绍的这个库:Sympy,它的最大特点是让我们可以用做数学题的思考方式来写程序。

1. 变量和表达式

用程序实现数学的算法,会根据程序语言本身的特点来实现算法,不会像解数学问题那样一步步推导。

所以,虽然可以用程序解决很多的数学问题,但是最后将代码展现出来时,数学专业的朋友也许很难看懂。
Sympy 让我们可以用数学专业的朋友熟悉的方式来写程序。

1.1. 变量

Sympy 的变量是一个数学符号,和我们平时理解的程序中的变量不太一样。

from sympy import Symbol  
  
x = Symbol("x")  
x.name  
#输出结果:  
x

x是程序中的变量,它代表的数学符号也是x

这么写可以有点迷惑,改成下面这样可能好理解一些:

a = Symbol("x")  
a.name  
#输出结果:  
x

a是程序中的变量,它代表的数学符号是x

1.2. 表达式

定义了数学符号之后,就可以自由的写各种数学表达式了。
比如:

x = Symbol("x")  
expr = x*x + 1  
print(expr)  
#输出结果:  
x**2 + 1  
  
y = Symbol("y")  
expr = x*x - (y-1)*(y-1)  
print(expr)  
#输出结果:  
x**2 - (y - 1)**2

程序中的表达式,Sympy会转换成数学的形式,以用于数学的计算。

1.3. 因式分解和展开

因式分解是初中常做的数学题目之一,用Sympy解决这类问题非常简单。

from sympy import Symbol, factor, expand  
  
x = Symbol("x")  
y = Symbol("y")  
  
#分解  
expr = (x-2)*(x-2) - (y-3)*(y-3)  
print(factor(expr))  
#输出结果  
(x - y + 1)*(x + y - 5)  
  
#展开  
expr = (x - y + 1)*(x + y - 5)  
expr = expand(expr)  
print(expr)  
#输出结果  
x**2 - 4*x - y**2 + 6*y - 5

1.4. 表达式求解

Sympy让我们可以在计算时保留数学符号(比如x,y),也可以代入实际的数字,最终求出表达式的值。

#沿用上面的表达式  
print(expr)  
#输出结果  
x**2 - 4*x - y**2 + 6*y - 5  
  
result = expr.subs({x:2, y:3})  
print(result)  
#输出结果  
0

甚至可以用数学符号来替换,比如假设 x = y - 1 ,替换上面的表达式。
然后再求值:

expr = expr.subs({x: y - 1})  
print(expr)  
#输出结果  
-y**2 + 2*y + (y - 1)**2 - 1  
  
result = expr.subs({y: 3})  
print(result))  
#输出结果  
0

先设置 x = y - 1,然后设 y = 3,和直接设置 x = 2, y = 3 是一样的。
所以最后计算结果也是0

1.5. 表达式计算

Sympy 还可以支持表达式之间的计算。

#表达式之间加法  
expr1 = x * y + y * y  
expr2 = x * x + x * y  
  
expr = expr1 + expr2  
print(expr)  
#输出结果  
x**2 + 2*x*y + y**2  
  
#因式分解  
print(factor(expr))  
#输出结果  
(x + y)**2

除了加法,表达式之间也可以相减,相乘,相除也是可以的。

2. 解方程

用程序解方程问题很复杂,一般得用到牛顿迭代法之类的迭代算法。
Sympy解方程,只要一行代码,:)

2.1. 一元方程

Sympysolve函数封装好了方程解法。

from sympy import solve  
  
expr = x*x - 5*x + 6  
solve(expr)  
#输出结果  
[2, 3]  
  
solve(expr, dict=True)  
#输出结果(字典形式)  
[{x: 2}, {x: 3}]

2.2. 二元方程组

二元方程组也一样:

expr1 = 3*x + 4*y - 34  
expr2 = 2*x + 3*y - 56  
  
solve((expr1, expr2), dict=True)  
#输出结果(字典形式)  
[{x: -122, y: 100}]

3. 函数图像

最后,介绍下Sympy绘制函数图像的功能。
绘制函数的图像能够让我们更加直观的看到函数的变化趋势,对于理解题目非常有帮助。

使用 Sympy 绘制图像非常方便,只要传入数学表达式即可。

from sympy import plot  
  
plot(2*x + 3)

python 解方程,python,算法,机器学习

设置 X 轴的范围(-5~5):

from sympy import plot  
  
plot(2*x + 3, (x, -5, 5))

python 解方程,python,算法,机器学习

绘制多个函数的图像:

plot(2*x + 3, 5*x + 2, (x, -5, 5), legend=True)

python 解方程,python,算法,机器学习

4. 总结回顾

本篇主要介绍 Sympy 在基本的代数运算方面的应用,
Sympy 最大的特点是让我们可以用数学专业的思维方式来写代码。

它的代码与数学的联系非常紧密,数学专业的朋友如果刚接触编程,用这个库来写代码一定会非常亲切。

---------------------------END---------------------------

题外话

python 解方程,python,算法,机器学习

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

python 解方程,python,算法,机器学习
python 解方程,python,算法,机器学习

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!python 解方程,python,算法,机器学习

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

python 解方程,python,算法,机器学习

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

python 解方程,python,算法,机器学习

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

python 解方程,python,算法,机器学习

六、面试宝典

python 解方程,python,算法,机器学习

python 解方程,python,算法,机器学习

简历模板python 解方程,python,算法,机器学习

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除文章来源地址https://www.toymoban.com/news/detail-794975.html

到了这里,关于Python Sympy:解方程利器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 机器学习入门 - - 决策树算法学习笔记

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ChatGPT一问世就给整个社会带来巨大的震撼和冲击,不禁让人惊叹现在AI的强大,我们好像离通用人工智能更近一步。在过去十几年人工智能领域的蓬勃发展中,扮演着主导地位的算法基本都是神经网络和

    2023年04月08日
    浏览(31)
  • 利用Python实现简单的机器学习算法

    机器学习是人工智能领域中非常重要的一个分支,它可以让计算机从数据中学习并提升自己的性能。Python作为一种高级编程语言,被广泛用于机器学习领域。本文将介绍如何使用Python实现简单的机器学习算法。 机器学习是一种让计算机从数据中学习并提升性能的技术。它是人

    2024年02月13日
    浏览(30)
  • Python机器学习算法入门教程(第二部分)

    接着Python机器学习算法入门教程(第一部分),继续展开描述。 在 Python机器学习算法入门教程(第一部分)中的第六部分:线性回归:损失函数和假设函数 一节,从数学的角度解释了假设函数和损失函数,我们最终的目的要得到一个最佳的“拟合”直线,因此就需要将损失

    2024年02月05日
    浏览(31)
  • 【Python机器学习】实验06 KNN最近邻算法

    1. k k k 近邻法是基本且简单的分类与回归方法。 k k k 近邻法的基本做法是:对给定的训练实例点和输入实例点,首先确定输入实例点的 k k k 个最近邻训练实例点,然后利用这 k k k 个训练实例点的类的多数来预测输入实例点的类。 2. k k k 近邻模型对应于基于训练数据集对

    2024年02月15日
    浏览(33)
  • 【机器学习】DBSCAN聚类算法(含Python实现)

    DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,可以将数据点分成不同的簇,并且能够识别噪声点(不属于任何簇的点)。 DBSCAN聚类算法的基本思想是: 在给定的数据集中,根据每个数据点周围其他数据点的密度情况,将数据点分为核心点

    2023年04月23日
    浏览(35)
  • 【机器学习 | 朴素贝叶斯】朴素贝叶斯算法:概率统计方法之王,简单有效的数据分类利器

    🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍 🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能硬件(虽然硬件还没开始玩,但一直

    2024年02月15日
    浏览(39)
  • python算法中的机器学习算法之无监督学习知识点(详解)

    目录 学习目标: 学习内容: Ⅰ. K均值聚类(K-Means Clustering) Ⅱ. 层次聚类(Hierarchical Clusteri

    2024年02月01日
    浏览(33)
  • 【100天精通Python】Day73:python机器学习入门算法详解与代码示例

    目录 1. 监督学习算法: 1.1 线性回归(Linear Regression): 1.2  逻辑回归(Logistic Regression): 1.3 决策树(Decision Tree): 1.4 支持向量机(Support Vector Machine): 1.5 随机森林(Random Forest):  2. 无监督学习算法:  2.1 聚类算法(Clustering): 2.2 主成分分析(PCA): 2.3 K均值聚

    2024年02月05日
    浏览(48)
  • 机器学习:Python中如何使用支持向量机(SVM)算法

    (简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资) 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别、分类(异常值检测)以及回归分析。 其具有以下特征: (1)SVM可以表示为凸优化问题,因此可以利用已知的

    2024年02月04日
    浏览(32)
  • 竞赛选题 深度学习图像修复算法 - opencv python 机器视觉

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学图像修复算法 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgradu

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包