日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python相减函数subs,自定义sympy中函数子类的subs()功能

發布時間:2023/12/16 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python相减函数subs,自定义sympy中函数子类的subs()功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我認為你需要改變一下你的方式。在

正在創建Var函數。

您確實希望示例中的Var是一個Function類。sympy是圍繞函數是類而設計的,并使用eval()類方法來計算它們。重寫Function子類的__call__似乎非常不標準,而且我還沒有看到任何使用這個的sympy內置函數,所以我認為這不是正確的方法。一種方法是創建一個工廠函數來為您創建類:def Variation(path_, st_, en_, v_):

class Variation(Function):

nargs = 2

path = path_

st = st_

en = en_

ends = [st, en]

v = v_

@classmethod

def eval(cls, tt, ss):

if tt in cls.ends:

return cls.path(tt)

if ss == 0:

return cls.path(tt)

return cls.v(tt, ss)

return Variation

Var = Variation(c, a, b, Function(r'\vartheta'))我已經用一個實際的函數替換了您的'name'變量,這似乎更合理。在

現在,您可以使用標準標志創建變體并阻止立即求值(如果需要):

^{pr2}$

您也可以通過展平Var函數并將sten和{}參數直接傳遞到eval()中,這將刪除工廠函數的額外層:class Variation(Function):

@classmethod

def eval(cls, path, st, en, v, tt, ss):

if tt in [st, en]:

return path(tt)

elif ss == 0:

return path(tt)

else:

return v(tt, ss)

Variation(c, a, b, Function(r'\vartheta'), a, t)

>>> Variation(c, a, b, \vartheta, a, t)

請注意,由于您可以重寫.eval(),因此您可以對其進行修改,使其不會自動簡化(如果需要),并且只返回一個cls的新實例:class Variation(Function):

no_eval = True

@classmethod

def eval(cls, tt, ss):

if cls.no_eval:

return cls(tt, ss, evaluate=False)

# etc.

自定義.subs()

默認情況下,無論何時執行subs(),sympy也將執行eval()(按照the ^{} docs)。因此,默認情況下,當您使用一個特殊值執行.subs()時,.eval()將被調用,函數將被簡化。在

但是,如果需要,現在可以重寫._eval_subs()并執行自己的操作:class Variation(Function):

...

def _eval_subs(self, old, new):

# return self to do no substitutions at all

return self

# return None to continue normally by next calling _subs on the arguments to this Function

# return some other Expression to return that instead.

請注意,._eval_subs()返回的任何內容隨后也將被.eval()編輯。如果您想繞過這個問題,可以按照上面的說明覆蓋.eval()。在

所以我認為這回答了關于如何修改.subs()行為的問題。。。在

我不太明白你想要什么:is there a good guide to construct arbitrary mathematical functions on python?

我認為sympy相當不錯,它的代碼庫中有許多合理的文檔和許多內置的示例,這些都很容易被剽竊。無論如何,請求向導是在stackoverflow上off-topic (see point 4);-)。在

總結

以上是生活随笔為你收集整理的python相减函数subs,自定义sympy中函数子类的subs()功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。