Matlab中的双积分实现?

时间:2014-11-26 04:23:58

标签: matlab symbolic-math

我想在matlab中实现Double积分。单积分很容易,但双精度编程有点复杂。

要实施的等式如下:

enter image description here

我尝试使用语句

实现内部积分
t = sym('t'); a = sym('a');    
pretty(int(t*((1-t)^-2.5)*((1-a*t)^-1)))

但这导致了更大的等式,我如何评估外积分呢? 关于这个的任何技巧或提示?

1 个答案:

答案 0 :(得分:0)

我对你的问题不太确定。积分表示你整合\ theta out,它怎么会出现在解决方案中?并且该等式甚至不依赖于\ theta,因此它应该用\ frac {1} {\ pi}取消。

但是,如果您输入错误并且最终会得到一个数字,那么我猜数值积分可能适合您?

如果是这样,两个积分减少为一个和,你可以在其中一个上使用函数quad,在另一个上使用梯形规则,参见:http://en.wikipedia.org/wiki/Trapezoidal_rule,那么它将是:

function int = integral(f,a,b,c,d)
dt = 0.001;
x = a:dt:b;
tempInt = zeros(length(x));
for i = 1:length(x)
    tempInt(i) = quad(@(y) f(x(i),y),c,d);
end
int = dt/2*(2*sum(tempInt)-tempInt(1)-tempInt(end));