2016-07-26 131 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