由第二个变量表示的双积分

时间:2016-11-22 10:17:52

标签: matlab double integral

我在Matlab中实现双积分时遇到了麻烦。

与其他双积分不同,我需要第一个(内部)积分的结果作为第二个变量的表达式,然后才能通过第二个(外部)积分,因为它必须由k驱动。

例如:

Click here

在上面的例子中,我需要将内部积分的结果表示为2y,这样我就可以在做第二个(外部)积分之前计算(2y)^ k。

有人知道如何在Matlab中执行此操作吗?

1 个答案:

答案 0 :(得分:0)

我不喜欢象征性地做事,因为99.9%的问题根本没有封闭形式的解决方案。对于的99.9%的问题有一个封闭形式的解决方案,该解决方案是笨重的,几乎没用。这可能是因为我的具体纪律,但我会假设你的问题属于99.9%的一组,所以我会提出最明显的数字方法来做到这一点。

也就是说,集成一个调用integral本身的函数:

function dbl_int()

    f = @(x,y) 2.*x.*y + 1;    
    k = 1;

    x_limits = [0 1];
    y_limits = [1 2];

    val = integral(@(y) integrand(f, y, k, x_limits), ...
                   y_limits(1), y_limits(2));

end

function val = integrand(f, y, k, x_limits)

    val = zeros(size(y));
    for ii = 1:numel(y)        
        val(ii) = integral(@(x) f(x,y(ii)), ...
                           x_limits(1), x_limits(2));        
    end

    val = val.^k;

end