📄 naadapt.m
字号:
function [q,srm,err]=naadapt(func,a,b,e)
%%本函数实现自适应sinpsom数值积分
%%输入:
%%func:
%%a:
%%b:
%%e:
%%输出:
%%q:
%%srm:
%%err:
srm=zeros(30,6);
it=0;
done=1;
m=1;
sr=simpson(func,a,b,e);
srm(1,1:6)=sr;
state=it;
while(state==it)
n=m;
for j=n:-1:1
p=j;
sr0=srm(p,:);
err=sr0(5);
e=sr0(6);
if e<=err
state=done;
a=sr0(1);
b=sr0(2);
err=sr0(5);
e=sr0(6);
c=0.5*(a+b);
e2=0.5*e;
sr1=simpson(func,a,c,e2);
sr2=simpson(func,c,b,e2);
err=abs(sr0(3)-sr1(3)-sr2(3))/10;
if err<e
srm(p,:)=sr0;
srm(p,4)=sr1(3)+sr2(3);
srm(p,5)=err;
else
srm(p+1:m+1,:)=srm(p:m,:);
m=m+1;
srm(p,:)=sr1;
srm(p+1,:)=sr2;
state=it;
end
end
end
end
q=sum(srm(:,4));
err=sum(abs(srm(:,5)));
srm=srm(1:m,:);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -