jojocleo 发表于 2008-9-18 12:52

继续!如何提升matlab积分速度!望赐教。

我在“感慨了,matlab数值积分速度太慢”那个帖子最后等待大家讨论,却发现没人来,无奈重开一贴 ,望版主勿删。
       在发“感慨了,matlab数值积分速度太慢”这个帖子之前,我就已经用了quadv这个命令并进行了一系列比较,并不是像sigma665版主想的是“解决问题之后回来分享经验”,问题一直没有解决,我觉得速度还是慢,所以希望各位高手能够帮忙想想办法。      
       我的问题共有两个:
       1)下面这的式子子函数中的被积分函数,其中c、beta1为1*n的向量,a、a1、beta为变量,整个式子其实是个n*n的矩阵,主程序通过循环把各个变量传递给子程序进行quadv积分计算,n取值一般为10~15之间,当计算量很大时(循环比较大),profile发现主要占用时间产生自匿名函数ff的定义上(或者解析?),quadv命令反而没有占用那么多时间,这个有没有什么办法解决?
ff=@(x)sin((c).*pi.*x./a).'*sin((c).*pi.*(x+a1/2-a/2)/a1).*(2.*sqrt(beta.'*(1./beta1))./sqrt(a.*a1));
      2)二重积分有没有quadv类似的命令或者类似的方法呢??如果没有,那么可以想见如果加上优化算法,整个程序会多慢了。
请大家指点!

[ 本帖最后由 jojocleo 于 2008-9-18 13:02 编辑 ]
页: [1]
查看完整版本: 继续!如何提升matlab积分速度!望赐教。