2016-07-26 133 views
0

我想在matlab中計算int[0,10]int[0,y] f(x,y) dxdy。當然,我可以使用integral2或quad2d來做到這一點:integral2(f,0,10,0,@(x)x)。不過,我也可以對待g(y)=nt[0,y] f(x,y) dx並做積分int[0,10] g(y) dy。我不想使用integral2,而只想使用積分來進行計算。我寫的代碼是:如何在matlab中用單個積分表示雙積分?

[email protected](y)integral(@(x)f(x,y),0,y)

integral(g,0,10)

然而,它提供了錯誤信息

Error using integral (line 85) A and B must be floating point scalars.

我的問題是:是否有可能表達二重積分來講單一積分?怎麼做?此外,我想矢量化積分,以便我可以輸入將數字10更改爲矢量,例如0:1:10?

+0

你能提供你居然跑的代碼? – edwinksl

回答

0

首先,一個小小的評論:符號整合和解析求解不是Matlab的核心。雖然它受到了有限的支持,但如果您想要進行分析,還有更好的解決方案,例如Matlab中的Mupad分析環境。

這就是說,你試圖用integrate做的是數值積分。但是,如果存在未知的邊界,則數值積分非常困難。更好的方法是使用與方法int的符號集成。

要回答你的第二個問題:恐怕符號集成的矢量化是不可能的。

我返工你的代碼如下:

​​

相應的Matlab的文檔:intintegral