当前位置: 首页 > news >正文

网站建设自己在家接单上海网站建设推广服务

网站建设自己在家接单,上海网站建设推广服务,分享wordpress优秀主题,山西网站建设价格官方文档:https://docs.sympy.org/latest/index.html 一.概述 1.简介: SymPy是Python中专门用于进行符号计算的库,旨在成为功能齐全的计算机代数系统.其可以解决诸如多项式求值/求极限/解方程/积分/微分/级数展开/ 矩阵运算在内的大量问题2.安装: pip install sympy二.对象的…

官方文档:https://docs.sympy.org/latest/index.html

一.概述
1.简介:

SymPy是Python中专门用于进行符号计算的库,旨在成为功能齐全的计算机代数系统.其可以解决诸如多项式求值/求极限/解方程/积分/微分/级数展开/
矩阵运算在内的大量问题

2.安装:

pip install sympy

二.对象的表示与运算
1.已知量的表示与运算
(1)有理数的表示:

class sympy.Rational(<p>[,q=1,gcd=None])#参数说明:p,q:分别指定分子/分母;均为real num#实例:
>>> r37=sympy.Rational(3,7)
>>> r14=sympy.Rational(1,4)

(2)内置的特殊值符号:

#虚数单位i:
>>> sympy.I
I
>>> sympy.I**2
-1
>>> sympy.sqrt(-1)
I
#自然常数e:
>>> sympy.E
E
>>> sympy.log(sympy.E)
1
#无穷大∞:
>>> sympy.oo
oo
>>> 1/sympy.oo
0
>>> 1+sympy.oo
oo
>>> 1*sympy.oo
oo
>>> 1-sympy.oo
-oo
#圆周率π:
>>> sympy.pi
pi
>>> sympy.sin(sympy.pi/2)
1

(3)已知量的运算:

#和内置的int/float相同:
>>> r37+r14
19/28
>>> r37-r14
5/28
>>> r37*r14
3/28
>>> r37/r14
12/7
>>> r37**r14
3**(1/4)*7**(3/4)/7

2.未知量的表示与运算
(1)未知量的表示:

未知量:class sympy.Symbol(<name>[,**assumptions])#参数说明:name:指定符号名;str(仅能创建1个符号)#实例:
>>> x=sympy.Symbol("x")
>>> x
x######################################################################################################################从sympy.abc导入(该子模块将所有拉丁/希腊字母储存为符号):
>>> from sympy.abc import x,y
>>> x+y
x + y
>>> x+y*y-12
x + y  - 1

(2)未知量的运算:

#和内置的int/float相同:
>>> a+1
a + 1
>>> a+b
a + b
>>> (a+b)/2*a
a*(a/2 + b/2)
>>> a/=3
>>> a
a/3
>>> a**2
a**2/9

(3)方法:

对符号进行替换并求值:<sym>.subs([*args,**kwargs])<sym>.evalf([n=15,subs=None,maxn=100,chop=False,strict=False,quad=None,verbose=False])#注:<sym>.evalf()的精度更高#参数说明:sym:指定未知量或表达式args:指定符号替换规则;<old>,<new>/(<old>,<new>) list/dictkwargs:指定符号替换规则;{<old>:<new>...}n:指定最终精度(显示到小数点后几位);intsubs:指定符号替换规则;dict,格式为{<old1>:<new1>...}maxn:指定工作中的最大精度;intchop:指定小值数的精度(小于该值则视为0);bool/num#>>> from sympy import N#>>> x = 1e-4#>>> N(x, chop=True)#0.000100000000000000#>>> N(x, chop=1e-5)#0.000100000000000000#>>> N(x, chop=1e-4)#0strict:指定中间结果出现精度缺失时是否报错;boolquad:指定数值积分的算法;strverbose:指定是否输出debug信息;bool#实例:
>>> (a+3).subs(a,3)
6
>>> (a+3).subs([(a,3)])
6
>>> (a+3).subs({a:3})
6
>>> from sympy.abc import x,y,z
>>> values={x:1e16,y:1,z:1e16}
>>> (x+y-z).subs(values)
0
>>> (x+y-z).evalf(subs=values)
1.00000000000000######################################################################################################################判断表达式是否相等:<sym>.equals(<other>[,failing_expression=False])#参数说明:other:指定要进行比较的表达式failing_expression:If failing_expression is True then the expression which did not simplify to a 0 will be returned instead of None#实例:
>>> from sympy import pprint, Symbol,sin,cos
>>> x=Symbol('x')
>>> a=cos(x)**2-sin(x)**2
>>> b=cos(2*x)
>>> print(a.equals(b))
True

3.表达式
(1)表达式:

通过已知量和未知量的组合得到表达式:
>>> from sympy.abc import a,b
>>> expr=b*a+-4*a+b+a*b+4*a+(a+b)*3
>>> print(expr)
2*a*b + 3*a + 4*b#SymPy会自动化简表达式(注意:SymPy仅执行廉价操作,因此可能无法得到最简形式)
>>> type(expr)
<class 'sympy.core.add.Add'>#类型为最后1级运算结果的类型
>>> type(a*a)
<class 'sympy.core.power.Pow'>
>>> type(a**a)
<class 'sympy.core.power.Pow'>
>>> type(a*b)
<class 'sympy.core.mul.Mul'>

(2)等式:

class sympy.Equality(<lhs>[,rhs=0,**options])#相当于class sympy.Eq();和Python内置的"=="有所不同#参数说明:lhs,rhs:分别指定等式左/右侧的表达式;均为sympy.Symbolevaluate:指定是否立即进行判断;bool#实例:
>>> sympy.Eq(x)
C:\Users\Euler\AppData\Local\Programs\Python\Python38\lib\site-packages\sympy\core\relational.py:492: SymPyDeprecationWarning:Eq(expr) with rhs default to 0 has been deprecated since SymPy 1.5.
Use Eq(expr, 0) instead. See
https://github.com/sympy/sympy/issues/16587 for more info.SymPyDeprecationWarning(
Eq(x, 0)
>>> sympy.Eq(x,0)
Eq(x, 0)
>>> sympy.Eq(2,0)
False
>>> sympy.Eq(2,0,evaluate=False)
Eq(2, 0)
>>> sympy.Eq(True,1),True==1
(False, True)
  • 关于======:
在SymPy中,"=="用于检查其2侧的表达式的结构是否完全相同#实例:
>>> x=sympy.Symbol("x")
>>> x+1==4
False
>>> x==x
True
>>> (x+1)**2==x**2+2*x+1
False
>>> x.subs(x,1)==1
True

4.矩阵
(1)矩阵:

矩阵:class sympy.Matrix(<contents>)#相当于class sympy.MutableMatrix()/class sympy.MutableDenseMatrix()#参数说明:contents:指定矩阵内的值;list-like#实例:
>>> M=sympy.Matrix([[1,2],[3,4],[0,3]])
>>> M
Matrix([
[1, 2],
[3, 4],
[0, 3]])
>>> pprint(M)1  2⎤
⎢    ⎥
⎢3  4⎥
⎢    ⎥
⎣0  3>>> N=sympy.Matrix([2,2])

(2)运算:

支持数乘///乘等运算#实例:接上
>>> N*2
Matrix([
[4],
[4]])
>>> M+M
Matrix([
[2, 4],
[6, 8],
[0, 6]])
>>> M-M
Matrix([
[0, 0],
[0, 0],
[0, 0]])
>>> M*N
Matrix([
[ 6],
[14],
[ 6]])

三.函数
1.IO:

初始化输出设置:sympy.init_printing([pretty_print=True,order=None,use_unicode=None,use_latex=None,wrap_line=None,num_columns=None,no_global=False,ip=None,euler=False,forecolor=None,backcolor='Transparent',fontsize='10pt',latex_mode='plain',print_builtin=True,str_printer=None,pretty_printer=None,latex_printer=None,scale=1.0,**settings])#参数说明:use_unicode:指定是否使用Unicode字符;bool/None######################################################################################################################输出表达式:sympy.pprint("<expr>"[,<wrap_line>,<num_columns>,<use_unicode>,<full_prec>,<order>,<use_unicode_sqrt_char>,<root_notation>,<mat_symbol_style>,<imaginary_unit>])#相当于sympy.pretty_print()#参数说明:expr:指定要输出的表达式;str/num/sympy.Rational等#实例:
>>> x=sympy.Symbol("x")
>>> a=sympy.sqrt(2)
>>> sympy.pprint(a)2
>>> print(a)
sqrt(2)
>>> c=(sympy.exp(x)**2)/2
>>> sympy.pprint(c)2⋅x
ℯ
────2
>>> print(c)
exp(2*x)/2

2.表达式的转换
(1)化简表达式:

化简表达式:sympy.simplify(<expr>[,ratio=1.7,measure=count_ops,rational=False,inverse=False,doit=True,**kwargs])#参数说明:expr:指定原表达式;为sympy.Symbolratio:measure:rational:inverse:doit:#实例:
>>> sympy.simplify((x+1)**2-(x**2+2*x+1))
0

(2)展开表达式:

展开表达式:sympy.expand(<e>[,**hints])#参数说明:e:指定表达式hints:指定化简规则;为键值对,值为bool/None#可选项:deep/modulus/power_base/power_exp/mul/log/multinomial/basic/complex/func/trig/frac/numer/denom/modulus/force#实例:
>>> from sympy.abc import x
>>> expr=(x+1)**2
>>> sympy.pprint(expr)2
(x + 1)
>>> sympy.pprint(sympy.expand(expr))2
x  + 2⋅x + 1

3.创建对象
(1)创建未知量:

sympy.symbols(<names>[,cls=Symbol,**args])#参数说明:name:指定符号名;str/str list#对str,有以下语法:#1.能创建多个符号,彼此使用"...,..."/"... ..."分隔#2.能创建1个符号序列,使用"...:..."(默认从a/0开始)#3.能为变量名附加前/后缀,使用"(...)..."/"...(...)"(字母加数字前/后缀时可省略)#4.支持正则表达式cls:指定创建的符号类型;classseq:是否在仅创建1个符号时也转换为tuple;boolinteger,real:分别指定是否为int/real;均为bool#实例:
>>> sympy.symbols("a,b,c d")
(a, b, c, d)
>>> a,b,c,d=sympy.symbols("a,b,c d")
>>> a
a
>>> b
b
>>> c
c
>>> d
d
>>> sympy.symbols(["a","b"])
[a, b]
>>> a,b=sympy.symbols(["a","b"])
>>> a
a
>>> b
b
>>> type(a)
<class 'sympy.core.symbol.Symbol'>
>>> sympy.symbols("a:3")
(a0, a1, a2)
>>> sympy.symbols("a3:6")
(a3, a4, a5)
>>> sympy.symbols("a:d")
(a, b, c, d)
>>> sympy.symbols("a(d:f)")
(ad, ae, af)
>>> sympy.symbols("a(:d)")
(aa, ab, ac, ad)
>>> sympy.symbols("a:c f:h")
(a, b, c, f, g, h)

(2)创建序列:

创建序列:sympy.sequence(<seq>[,limits=None])#参数说明:seq:指定序列结构/序列基本单元;为sympy sequence/Exprlimits::指定序列值/基本单元重复次数;(<i>,<a>,<b>)#实例:
>>> from sympy import sequence,pprint
>>> from sympy.abc import n
>>> sequence(n**2,(n,0,5))
SeqFormula(n**2, (n, 0, 5))
>>> pprint(sequence(n**2,(n,0,5)))
[0, 1, 4, 9,]
>>> sequence((1,2,3),(n,0,5))
SeqPer((1, 2, 3), (n, 0, 5))
>>> pprint(sequence((1,2,3),(n,0,5)))
[1, 2, 3, 1,]
>>> pprint(sequence((1),(n,0,3)))
[1, 1, 1, 1]

4.运算
(1)基本运算:

开平方:sympy.sqrt(<arg>[,evaluate=None])#参数说明:arg:指定表达式;为num/sympy.Rational/sympy.Symbolevaluate:指定是否计算表达式的结果;bool/None#为True,则返回表达式的计算结果;为False,则直接返回表达式#实例:
>>> sympy.sqrt(2)2
>>> x=sympy.Symbol("x")
>>> sympy.sqrt(x)
√x
>>> sympy.Mul(x,x)2
x
>>> sympy.Mul(x,x,evaluate=False)
x⋅x
>>> s=sympy.Rational(1/2)
>>> sympy.sqrt(s)2
──
2
>>> sympy.sqrt(s,evaluate=False)
1
──
√2
>>> sympy.sqrt(s,evaluate=True)2
──
2######################################################################################################################求和:sympy.summation(<f>[,*symbols,**kwargs]):#注:                       b#                        ____#                        \   #   summation(f,(i,a,b))= )   f#                        /___#                         i=a#参数说明:f:指定函数;为Exprsymbols:指定求和规则;(<i>,<a>,<b>)#可通过使用多个(<i>,<a>,<b>)来进行多重求和#实例:
>>> from sympy import summation,oo,symbols,log
>>> i,n,m=symbols('i n m',integer=True)
>>> summation(2*i-1,(i,1,n))
n**2
>>> summation(1/2**i,(i,0,oo))
2
>>> summation(1/log(n)**n,(n,2,oo))
Sum(log(n)**(-n), (n, 2, oo))
>>> summation(i,(i,0,n),(n,0,m))
m**3/6 + m**2/2 + m/3

(2)求解方程:

求解方程:sympy.solve(<f>[,*symbols,**flags])#参数说明:f:指定方程;为Expr#注:若<f>仅包含单侧表达式,则求解<f>=0#Currently supported:# - polynomial# - transcendental# - piecewise combinations of the above# - systems of linear and polynomial equations# - systems containing relational expressionssymbols:指定要求解的未知数;为Symbol/Symbol list-like#实例:
>>> from sympy.abc import x,y,z
>>> sympy.solve(x+y-z-2,[x,y])
[(-y + z + 2, y)]
>>> eq1=sympy.Eq(x+1,4)
>>> sympy.solve(eq1,x)
[3]######################################################################################################################在指定范围内求解方程或不等式:sympy.solveset(<f>[,symbol=None,domain=S.Complexes])#参数说明:f:指定方程/不等式;为Expr/relationalsymbol:指定要求解的未知数;为Symbol/Symbol list-likedomain:指定定义域(解的范围);为Set#实例:
>>> from sympy.abc import x
>>> sympy.solveset(x**2-1,x,sympy.Interval(0,100))
FiniteSet(1)

(3)微积分相关运算:

求极限:sympy.limit(<e>,<z>,<z0>[,dir="+"])#参数说明:e:指定表达式;为Exprz:指定对哪个变量取极限;为sympy.Symbolz0:指定变量的极限值;为Expr(包括±oo)dir:指定求哪侧的极限;str#if dir="+-",z->z0/±oo#if dir="+",z->z0+/-oo#if dir="-",z->z0-/oo#实例:
>>> from sympy import limit,sin,oo
>>> from sympy.abc import x
>>> limit(sin(x)/x,x,0)
1
>>> limit(1/x,x,0)
oo
>>> limit(1/x,x,0,dir="-")
-oo
>>> limit(1/x,x,0,dir='+-')
zoo
>>> limit(1/x,x,oo)
0

四.绘图

sympy.plotting是SymPy中用于绘图的子模块,基于Matplotlib构建:
>>> from sympy.plotting import plot
>>> from sympy.abc import x
>>> plot(x**2)#结果见下图
<sympy.plotting.plot.Plot object at 0x0000019220E4DE80>

在这里插入图片描述

http://www.lbrq.cn/news/2566351.html

相关文章:

  • 南京做网站哪家公司最好网络推广方法大全
  • 门户网站开发需求分析浙江网站推广公司
  • 企业网站颜色如何免费创建自己的网站平台
  • 个人网站要怎么做特色产品推广方案
  • 什么是网站抄袭免费建网站
  • 微网站栏目设置游戏交易平台
  • 张家口建设部网站2023年10月爆发新冠
  • 注册公司代理记账费用朝阳seo建站
  • 电子商务网站建设视频教程最新旅游热点
  • 做网站应该用什么镜像百度排名软件
  • 成都房地产网搜索引擎优化实训
  • 有什么网站可以做java算法免费模板素材网站
  • 自己如何做网站源码百度热线人工服务电话
  • 设计官网论坛苏州关键词优化软件
  • 网站主题制作一键建站
  • 金山区做网站吗优化营商环境个人心得
  • 小猫mip网站建设如何做公司网站推广
  • 小程序做网站百度公司官方网站
  • 福州做网站的个体户电话查询知了seo
  • 工业产品设计流程图百度竞价优化
  • 互联网网站模块广州优化疫情防控举措
  • 利用php做网站教程公司网站建设步骤
  • 网站制作公司武汉网络营销策划案范本
  • 三好街做网站的公司信息流优化师面试常见问题
  • 商业网站备案流程近三年成功的营销案例
  • 做问答的网站线上营销
  • 新疆网站建设介绍谷歌搜索引擎免费入口2022
  • 淘宝哪些做网站关键词排名的有用吗谷歌浏览器怎么下载
  • seo站长工具查询武汉网站排名提升
  • 做二手设备的网站成人再就业培训班
  • rag学习-以项目为基础快速启动掌握rag
  • python:以支持向量机(SVM)为例,通过调整正则化参数C和核函数类型来控制欠拟合和过拟合
  • C++ 模板初阶
  • 网络安全基础知识【6】
  • jenkins从入门到精通-P1—九五小庞
  • 在纯servlet项目中,使用@WebFilter定义了多个filter,如何设置filter的优先级