0
我要在MATLAB中編寫一個程序,它接受一個函數,將D值從10設置爲100(for循環),將函數與Simpson規則(while循環),然後顯示它。現在,這對於第一個7-8值來說工作得很好,但這需要更長的時間,並且最終耗盡內存,我不明白其中的原因。這是到目前爲止的代碼:MATLAB程序佔用我的內存越來越多
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
在你的代碼沒有什麼很糟糕。你可以發佈'f'嗎? 「辛普森」是你的慣例嗎?看看Mathworks網站,它看起來像「quad」(http://www.mathworks.com/help/techdoc/ref/quad.html)是標準的辛普森規則函數。你也可以發佈。就一般風格的筆記而言,'D'必須是全球性的; 'clear error'可能是不必要的,你需要在'while'循環之前重新初始化's'嗎? – mtrw 2010-12-18 16:42:53