python中运算符号

您所在的位置:网站首页 python符号计算库 python中运算符号

python中运算符号

#python中运算符号| 来源: 网络整理| 查看: 265

Python中的sympy库

    前几天因为要实现数学公式的代码,里面含有字符运算,因为matlab不支持从零开始查找矩阵,所以用了python中的sympy库。

一、安装sympy

  1:在cmd中安装

因为大部分包的安装都差不多所以参考

文章转载自:https://www.cnblogs.com/wuwen19940508/p/6925191.html

  2:在pycharm中安装

    

    

      

     点击右面的 ‘+’号

    

     接下就等待安装就行

二、方法

1:定义数学符号

   让我们定义一个符号表达式代表数学表达式 。首先我们要注意到python中的变量必须赋值才能使用,所以无法表达该数学表达式。所以这里一定要引入特殊的符号,这里有两种方法

  

#_*_coding:utf-8_*_ from sympy import * #第一种方法Symbol(赋值单个字符) x1 = Symbol('x1') y1 = Symbol('y1') sum1= x1+2*y1 print(sum1) #第二种方法symbols(同时赋值多个字符) x2,y2 = symbols('x2 y2') sum2 = x2+2*y2 print(sum2)

2: 展开与折叠

      展开:expand

      例如:from sympy import *             x,y = symbols('x y')             d = 3*x*(5*x+4*y)**2             expand(d)

      合并:factor

             #_*_coding:utf-8_*_

from sympy import *

x,y = symbols('x y')

d = 6*x**3+3*x**3

factor(d)      

3:简化表达式

   普通的:

    from sympy import simplify

from sympy.abc import x

simplify((x**3 + x**2 - x - 1)/(x**2 + 2*x + 1))

x – 1

       三角化简

        from sympy import trigsimp,sin,cos

from sympy.abc import x,y

y = sin(x)/cos(x)

 

trigsimp(y)

tan(x)

指数化简

from sympy import * x,y,a,b = symbols('x y a b') sum = x**a*x**b powsimp(sum)

x**(a+b)

4:解方程

     注意在python中=是赋值的意思,==虽然表示等于,但是会有很大的问题。在sympy中,我们使用Eq(x,y)表示x=y

from sympy import * x,y,a,b = symbols('x y a b') solve(Eq(2*6*x+8,20))

x=1

   使用linsolve([方程1,方程2,...],(变量1,变量2,...))

     #对多个方程求解,使用linsolve。方程的解为x=-1,y=3

linsolve([x+2*y-5,2*x+y-1], (x,y))

5:赋值运算

from sympy import *     x,y,a,b = symbols('x y a b')     sum = 5*x**5+2*3*y     sum = sum.subs(x,1)

6:求导数

    from sympy import * x,y,a,b = symbols('x y a b') sum = 5*x**5+2*3*y sum1 = diff(sum,x)

  7:积分

    from sympy.abc import pi,x

from sympy import integrate,sin

 

integrate(sin(x), (x,0,pi))

答案:-cos(pi) + 1

  8:极限

    from sympy.abc import x

from sympy import limit

limit(1/x, x, 0, '+')

答案:oo

  9:log运算

    from sympy import log,expand_log

from sympy.abc import x,y,e

#expand_log为展开log,但需要将force=True,展开才能发生

expand_log(log(x**3), force=True)

3*log(x)

#expand_log为展开log,但需要将force=True,展开才能发生

expand_log(log(x**3))

log(x**3)

expand_log(log(e**x), force=True)

x*log(e)

三、创建字符矩阵

在我用代码实现数学公式后。发现了一个如果随机创建矩阵,是数字矩阵的话就没办法运行,后来想到了创建符号矩阵。

符号矩阵采用了list[]在套一个list[]让它生成类似于矩阵。

 [[Symbol('m') for w in range(5)] for w1 in range(5)]

通过这个办法就可以创建个符号矩阵。

 

 

 

 

 

 

 

  



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3