Ancorr 2024-03-12 20:57 采纳率: 0%
浏览 79
已结题

在MATLAB中快速计算带参数的二重积分

MATLAB R2022a

关于这个式子里面二重积分的计算,我一开始用的两次Int函数算的,计算速度过慢,要计算大量数据,所以我的这种方法几乎不可行,尝试其他的积分方法一直出错,时间紧迫,特来向大家学习。
以下是要计算的式子:

img

img

然后下面是我编写的内容:

img

img

感觉也可能是因为定义的两个符号变量的问题,总之算的特别慢,绝对是有问题的

  • 写回答

19条回答 默认 最新

  • 檀越@新空间 2024-03-12 21:03
    关注
    获得0.45元问题酬金

    Ancorr 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    在MATLAB中,要快速计算带参数的二重积分,可以尝试以下解决方案:

    1. 使用数值积分方法:由于你的积分式比较复杂,使用符号积分可能效率较低,可以尝试使用数值积分方法如quad2d()来计算二重积分。例如,可以使用以下代码来计算你给出的积分式:
    fun = @(z,s) exp(-alpha*(z+s))./sqrt(-A(z,s).*B);
    I2 = quad2d(fun, 0, D, @(z) 0, @(z) z);
    

    注意要定义好A(z, s)和B函数。

    1. 调整循环体限制:你在循环中遍历了2*L+1个m、n和k的值,如果这些值较大,循环体会重复执行很多次,导致计算速度过慢。你可以考虑减小L的取值,或者采用并行化技术(如parfor循环)来加速计算。

    2. 使用矢量化操作和向量化函数:在计算过程中,尽量使用矢量化操作和向量化函数,避免使用符号变量和复杂的表达式。这将大大提高计算效率。例如,可以将循环计算的过程矢量化,以避免使用for循环。

    以上是一些建议,希望对你的问题有所帮助。

    评论

报告相同问题?

问题事件

  • 系统已结题 3月20日
  • 创建了问题 3月12日