首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB程序占用了我越来越多的内存

MATLAB程序占用了我越来越多的内存
EN

Stack Overflow用户
提问于 2010-12-19 00:10:00
回答 1查看 202关注 0票数 0

我将用MATLAB编写一个程序,该程序接受一个函数,将值D设置为从10到100 ( for循环),将该函数与Simpson规则( while循环)集成,然后显示它。现在,这对前7-8值很有效,但是它需要更长的时间,最终我会耗尽内存,我不明白为什么会这样。这是目前为止的代码:

代码语言:javascript
复制
global D;
s=200;  
tolerance = 9*10^(-5);  
for D=10:1:100  
    r = Simpson(@f,0,D,s);  
    error = 1;  
    while(error>tolerance)  
        s = 2*s;  
        error = (1/15)*(Simpson(@f,0,D,s)-r);  
        r = Simpson(@f,0,D,s);  
    end  
    clear error;  
    disp(r)  
end  
EN

回答 1

Stack Overflow用户

发布于 2011-06-23 15:35:20

mtrw's注释可能已经部分回答了这个问题:s应该在for循环中重新初始化。每次错误太大时,发布的代码都会导致s不可逆转地增加,因此对于较大的D值,将使用到目前为止最大的s

此外,由于代码会重新评估整个积分,而不是重用以前从0开始的积分,因此D-1会浪费大量资源,除非您想要显式地显示Simpson函数的容错能力-- s必须增加很多才能使较大的D保持相同的低错误(因为您的积分范围更大,所以您必须对更多点求和)。

最后,您的Simpson实现当然也可以做一些有趣的事情,没有人不看就能看出来……

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4478834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档