2016-08-22 77 views
2

我需要計算一個雙積分,其中內函數依賴於x和y(我將它整合到y上,其中一個限制取決於x),然後我將剩餘在x上。這是代碼的例子:MATLAB:雙數值積分(非常特殊的情況下)

[email protected](x,y) x.^2+y; %inner function to be integrated on y 

[email protected](x) sqrt(x).*integral(@(y)f1(x,y),x,3); %second function, to be integrated on x 

V = integral(@(x)f2(x),0,2) %final calculation 

我不認爲integral2可能因爲第二個函數的形式來使用......

PS:我不想使用符號功能

PPS:我知道這種情況下可能會通過巴帕簡單的計算來解決,但它只是一個微不足道的情況下,我需要做的是方式更復雜

感謝

+0

這聽起來像你想要象徵性地解決的事情。你爲什麼不想這樣做? –

+0

@DennisJaheruddin我也試圖解決它的象徵,但我需要整合的功能沒有一個已知的原始,所以matlab無法解決它...請告訴我,如果我錯了 – user3758182

+0

嘗試你的代碼和谷歌搜索該錯誤給了我這個http://jp.mathworks.com/matlabcentral/answers/77733-integrating-over-integral-error-a-and-b-must-be-floating-point-scalars,我想解決你的問題問題 –

回答

3

Mathworks在創建integral2()(畢竟,依賴邊界並不罕見)時預料到了這個問題,所以他們也有辦法處理這種情況。我選擇了另一個函數來處理哪個更容易驗證,但我認爲你不會介意那麼多。

[email protected](x,y) (x.*y)/2; %inner function to be integrated on y 
fy = @(x) 3-x; % Lower bound 
V = integral2(f1,0,2,fy,3) %final calculation 

的 「文檔頁面」(doc integral2在MATLAB終端)的更多信息,或here

編輯: 如果你有一個整體的

integral(g(x) * integral(x^2*y, y=f(x), y=y1), x=a, x=b) 

其中f1 = integral(x^2*y, y=f(x), y=y1),你可以簡化爲f2 = g(x)*f1 = integral(g(x)*x^2*y, y=f(x), y=y1)

+0

你的例子與我問的很不一樣。看看我的第二個函數(我的意思是f2)是如何定義的:'sqrt(x)* integral(...)'。我不想將整個表達式整合到兩個變量上,我清楚了嗎?不過謝謝你,我希望會有解決方案... – user3758182

+0

@ user3758182不,你不清楚。 patrik在這裏描述的與您在問題的第一行中描述的內容完全相符。現在你在說別的。唯一的事情是這裏的patrik使用了一個不同的例子。 – Bernhard

+0

@Bernhard我想說的是,我需要在y上集成一個函數,它依賴於x和y(其中一個極限是x)。然後我把這個積分乘以sqrt(x),我需要計算x上的積分。在x和y上集成的函數是「更大的」,如果你看看我的代碼,我認爲它會很清楚,Patrik正在使用一個不符合我的需求的示例 – user3758182