2010-07-27 41 views
0

我想解決這個問題:集成MATLAB

alt text http://img265.imageshack.us/img265/6598/greenshot20100727091025.png

我不想用 「INT」,我想用 「四」 家庭(四,dblquad,triplequad) 但我不能。 你能幫助我嗎?

+1

您的問題中缺少引號,另外您需要在問題中顯示問題的相關部分以及錯誤消息,不要期望人們從其他網站下載內容。 – 2010-07-27 12:08:45

+0

是的,但我不知道在這個頁面寫積分。 – Elmoya 2010-07-27 12:12:12

回答

2

告訴你的積分是

  1. 分析上可解:總是做分析你可以

  2. 等於號:常量表達式應該從數值計算

  3. 沒有消除容易在MATLAB中計算(或非常正確)。

您可以使用cumtrapz每個變量僅僅整合了過來,並調用trapz最後的整合。請記住,這會在任何比簡單的線性函數總和更復雜的問題上炸掉錯誤。

Mathematica更適合於nD集成,如果您有權訪問該集成。

1

MATLAB可以做象徵性的整合

>> x = sym('x'); y = sym('y'); z = sym('z'); u = sym('u'); v = sym('v'); 
>> int(int(int(int(int(x+y+z+u+v,1,5),-2,3),0,1),-1,1),0,1) 

ans = 

180 
+1

只有您有符號包... – Kena 2010-07-27 18:21:00

0

只注意到你想要做的數字,而不是象徵性的整合

如果你看一下dblquad的來源和triplequad

>> edit dblquad 

你看他們只是稱之爲較低版本。 應該可以添加一個quadquad和quintquad(或者遞歸n-quad)

4

我假設你真正的問題比這個微不足道的更復雜。最好的解決方案就是使用符號整數。數值積分爲什麼很難?

一維數值積分通常需要約100個函數評估。 (確切的數字將取決於所需的精確度,限制等)。這使得二維積分通常需要大約100^2 = 10000個功能評分。所以一個自適應的5d積分將需要100^5 = 1e10的函數評估。 (這裏只是一個非常粗略的數量級估計)我的觀點是,你根本就不想這麼做!

更好的是減少複雜性問題。如果你的積分是可分離的(就像這個),那就這樣做吧!將五維問題歸結爲多個一維問題。

此外,在很多情況下,我看到有人希望對高斯PDF進行數值積分。看到這很容易通過調用erf或erfc來解決,再加上轉換。重點在於,在許多情況下,特殊功能被定義爲大大降低問題的複雜性。

我應該補充說,在很多情況下,解決數學難題的關鍵是用數學來減少問題的簡單性。如果你能找到一種方法來減少問題的維度,那麼它會變得更加易於理解。