📄 demotrapsimpsimp4.m
字号:
function demoAll
%demoAll Use all 3 ways to integrate x*exp(-x) on [0,5]
a = 0; b = 5; Iexact = -exp(-b)*(1+b) + exp(-a)*(1+a);
fprintf('\n\tIexact = %14.9f\n', Iexact);
fprintf('\ntrapezoid:')
fprintf('\n n h i error alpha\n');
errold = [];
for np = [2 4 8 16 32 64 128 256]
I = trapezoid('xemx',a,b,np);
err = I - Iexact;
n = np + 1; h = (b-a)/(n-1);
fprintf(' %4d %9.5d %14.9f %14.9f',n,h,I,err);
if ~isempty(errold)
fprintf(' %9.5f\n', log(err/errold)/log(h/hhold));
else
fprintf('\n');
end
hhold = h; errold = err;
end
%----- Simpson method
fprintf('\nsimpson:')
fprintf('\n n h i error alpha\n');
errold = [];
for np = [2 4 8 16 32 64 128 256]
I = simpson('xemx',a,b,np);
err = I - Iexact;
n = np + 1; h = (b-a)/(n-1);
fprintf(' %4d %9.5d %14.9f %14.9f',n,h,I,err);
if ~isempty(errold)
fprintf(' %9.5f\n', log(err/errold)/log(h/hhold));
else
fprintf('\n');
end
hhold = h; errold = err;
end
%----- Simpson4 method
fprintf('\nsimpson4:')
fprintf('\n n h i error alpha\n');
errold = [];
for np = [2 4 8 16 32 64 128 256]
I = simpson4('xemx',a,b,np);
err = I - Iexact;
n = np + 1; h = (b-a)/(n-1);
fprintf(' %4d %9.5d %14.9f %14.9f',n,h,I,err);
if ~isempty(errold)
fprintf(' %9.5f\n', log(err/errold)/log(h/hhold));
else
fprintf('\n');
end
hhold = h; errold = err;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -