簡體   English   中英

使用解析器進行Python多項式加法

[英]Python Polynomial addition using parser

我有兩個多項式函數。 P = 3x ^ 2 + 2x + 7 Q = 5x ^ 2 + 2x ^ 2 + x如何使用python語言的解析器對這些多項式進行加法運算?

這是一個粗略的介紹。 我希望它不太難遵循。

從多項式之一開始,並丟棄空格以簡化字符串處理。 使用第一個正則表達式來標識多項式(P)的“名稱”及其每個術語以供進一步處理。 現在,如有必要,請使用第二個regex.sub將乘法符號放在多項式項中的變量之前。 使用普通的字符串替換將插入符號替換為'**'。

將列表轉換為字符串。 我確實加了一個等號,但是到那時,我意識到我真的不需要或想要多項式的名稱來進行轉換為sympy。

最后一步是使用sympify將多項式引入sympy,並將其命名為P。在sympy中添加多項式非常簡單。

>>> import regex
>>> s = 'P = 3x^2 + 2x + 7'.replace(' ', '')
>>> poly = []
>>> for term in regex.findall(r'[+-]?\d*\w+\^?\d*', s):
...     term = regex.sub(r'(\d*)([A-Za-z]\w*)(.*)', r'\1*\2\3', term)
...     term = term.replace('^', '**')
...     poly.append(term)
... 
>>> poly
['*P', '3*x**2', '+2*x', '+7']
>>> poly[0]=poly[0][1:]+'='
>>> poly = ''.join(poly)
>>> poly
'P=3*x**2+2*x+7'
>>> from sympy import *
>>> P =sympify(poly[2:])
>>> P
3*x**2 + 2*x + 7

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM