2010-07-13 143 views
14

我記得解決了很多不確定的積分問題。有一些解決它們的標準方法,但仍然有一些問題需要綜合的方法才能達成解決方案。 但是,我們如何以編程方式實現解決方案。如何以編程方式計算不確定積分

例如看看Mathematica的在線集成應用程序。那麼我們如何編寫這樣一個接受函數作爲參數的程序,並返回該函數的不確定積分。

wolfram mathematica online integrator

PS。輸入函數可以假定爲連續的(即,不是例如sin(x)/ x)。

+6

祝你好運...... – Mau 2010-07-13 16:42:18

+0

有趣的問題。這是我一直想知道的事情。鑑於您可以遞歸應用規則,區分似乎更容易。定積分也可以很好地近似。期待看到這方面的方法。 – IVlad 2010-07-13 16:42:30

+2

您知道,由各種基本功能的產品和成分構成的大多數(「非平凡」)功能都具有抗轉換功能*,這些功能僅能用基本功能*表示。因此,這個問題通常是「無法解決的」。 – 2010-07-13 16:48:02

回答

17

你有Risch's algorithm這是微妙的不可判定的(因爲你必須決定兩個表達式是否相等,類似於無處不在的暫停問題),並且實現時間很長。

如果你遇到了複雜的問題,求解一個常微分方程實際上並不困難(並且計算一個不定積分就相當於求解y'= f(x))。存在一個伽羅瓦微分理論,其模擬伽羅瓦理論的多項式方程(但是具有李羣對稱性而不是有限羣的置換羣)。裏施的算法是基於它的。

+2

這是一個關於微分伽羅瓦理論的非常有趣的評論。我開始理解通常被掩蓋的Risch算法的部分。 – 2010-07-13 17:23:56

1

這些expert systems通常有一個巨大的技術收集,只是一個接一個地嘗試。

我不確定WolframMath,但在Maple中有一個命令可以顯示所有中間步驟。如果你這樣做,你會得到所有經過驗證的技術。

編輯:

將輸入不應該是真正棘手的部分 - 你需要編寫一個parserlexer,即變換文本輸入爲內部表示。

3

您保存了一組基本形式,您知道(多項式,基本三角函數等)的積分,並將它們用於輸入的形式。如果你不需要太多的通用性,這是可行的:例如,編寫集成多項式的程序非常簡單。

如果你想在最普遍的情況下做到這一點,你將不得不做很多計算機代數系統的工作。對某些人來說這是一生的工作,例如如果你看Risch's "algorithm"張貼在其他答案或symbolic integration,你可以看到有關於該主題的完整多卷書籍(「Manuel Bronstein,Symbolic Integration Volume I:Springer」),並且很少現有的計算機代數系統最大限度地實現它。

如果您確實想自己編寫代碼,可以查看Sage的源代碼或its components中列出的幾個項目。當然,使用這些程序更容易,或者,如果您要編寫更大的程序,請將其中一個用作庫。