python整数分解,Python因数分解
写作之初,因为用留数定理分解分式多项式比较困难,所以决定用python做一个用留数定理分解分式多项式的程序,以达到通过输入多项式得到各种中间参数和最终拆分结果的目的。从这个程序中我们可以得到:每个多项式分解后的分子值,分解后计算每个多项式分子值的过程显示,以及最终分解结果的显示。
用留数定理分解分式多项式的算术过程如下图所示。
算术运算的形象理解:以这个公式为例。分解后的分母是原多项式(s,(s 2),(s 3))加上这些项中的高次项的分母,低次项((s 3))去掉。分解后分子是原多项式分母,然后依次去掉所有项得到极限值(-4,1/3,3),去掉n(n1)次幂中的项后用n阶微分公式得到值(-10/3)。也按照这个思路写程序。
依赖包1.sympy模块
Sympy模块,可以进行符号计算,定义符号变量,进行代数运算,微分运算,积分运算等。
Pipsympy2.re正则化模块
Re模块是python独有的匹配字符串的模块,该模块提供的很多函数都是基于正则表达式的。
installre import symphony的完整代码和注释为sp import RES=sp . symbols( s )# Create symbol变量print(以6 * (s 1)/(s 2) * (s 3) * * 2)的形式为例)Y=input(请输入要分解的多项式:)#例6 *(S1)/(S2)*(S3)* * 2)# denominator=Y . split(/)[0]# molecule=Y . split(/)[1]# denominator=molecule.=\*)\d ) #获取分数match=reg中的幂数。搜索(y)功率=匹配。group (0) molecule _ number=0 #初始化分母索引#计算拆分后的各个值while molecule _ number len(分子列表):try:if molecule list[molecule _= :if moleculelist[molecule _ number 1]!= :y=y . replace(molecular list[molecular _ number] * )#获取多项式if molecular list[molecular _ number]= s :value=sp . limit(y,s,0) #求极限计算此项的分子值print( \ n用 str(molecular list[molecular _ number])的分母计算该项的分子:limit——0 ,y) print(计算;value)else:Limit _ value=-int(re . Find all((\ d),molecular list[molecular _ number]][0])#获取极限参数值=sp.limit(y,s,Limit_value) #求极限计算此项的分子值print(分母为 str(molecular list[molecular _ number])的项的分子:limit 3354 str (limit _ value),y) print(计算:, Value)else:y=y . replace( * molecular _ number] * * pow, )# Get多项式Limit _ Value=-int(re . Find all((\ d))用于计算该项的分子值,molecular list[molecular _ number])[0])# Get Limit参数value=sp.limit(y,s,Limit _ Value)# Find Limit计算该项的分子值print(项的分子 str(molecular list[molecular _ number]) * * pow :Limit 333 在一起(sp。diff (y,s,int (pow)-1)) #求解n阶导数limit _ value=-int (re。find all ((\ d),Molecule list[Molecule _ number]][0])# Get极限参数value=sp.limit(y_diff,s,Limit_value) # Find极限计算此项的分子值print(计算项 str(int(pow)-1 的分子 str(molecular list[Molecule _ number]):Limit 3354 str(Limit _ value),Y_diff) print(计算值:,value)除:pass Molecule _ number=1 # print(molecular \ n公寓(y,s)) #分割结果运行结果运行代码。首先输入要分解的多项式作为例子。
感觉和不足我本来打算手工写一个用留数定理分解分式多项式的程序,但是由于涉及到极限和微分的计算,而且这两个模块的编写需要一定的时间,所以我用sympy模块辅助编程。但是我意外的发现sympy模块有自己的多项式分解函数sympy.apart(),所以我在呈现分解结果的时候也使用了这个函数,避免了字符串处理的一系列麻烦。所以,如果你不关心多项式分解的过程,只想得到分解结果,只需要执行sympy.apart()函数就可以了,我也不知道它的运算原理。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。