|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
function [q,x]=SmartSimpson(f,a,b,eps)
if (nargin==3)
eps=1.0e-8;
end;
e=5*eps;
q=SubSmartSimpson(f,a,b,e);
x=sort(X);
function q=SubSmartSimpson(f,a,b,eps)
QA=IntSimpson(f,a,b,1,eps);
x=(a+b)/2;
QLeft=IntSimpson(f,a,x,1,eps);
QRight=IntSimpson(f,x,b,1,eps);
delta=abs(QLeft+QRight-QA);
if(delta<=eps)
q=QA;
else
q=SubSmartSimpson(f,a,x,eps)+SubSmartSimpson(f,x,b,eps);
end
上面这段程序是用来实现自适应辛普生积分,对积分区间采取自适应不等距划分,但程序只输出积分值,我想获得区间是怎么划分的,如何修改上面的程序?
上面用的是递归调用SubSmartSimpson,每调用一次,就判断是否对区间划分一次,如需划分,就生成x,我想把x输出,怎么输出呢? |
|