lecture 28: comparison of different numerical integrators 1.adaptive simpson’s and trapezoid rules...
TRANSCRIPT
![Page 1: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/1.jpg)
Lecture 28: Comparison of different numerical integrators
1. Adaptive Simpson’s and Trapezoid Rules
2. Romberg Integration
3. Adaptive Gaussian Quadrature
![Page 2: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/2.jpg)
adaptivesimpson.m
%test of adaptive Simpson's rule and comparison with composite Trapezoid and Composite Simpson's
tol=10^(-10);
a=1;b=4;f1=inline('sin(x).^2')
disp(['a=',num2str(a),' b=',num2str(b)]) %display limits of integration
intexact=quad(f1,a,b,10^(-16));
[fadaptive funccount]=quad(f1,a,b,tol);
disp(['Integration using adaptive simpson gives error=',num2str(fadaptive-intexact), ' in ',num2str(funccount), ' function evaluations']);
disp(' ');
disp(['Now compare with n step of composite simpson rule:']);
i=1:10;nvec=2.^(i);
….
![Page 3: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/3.jpg)
>> adaptivesimpson
f1 =
Inline function: f1(x) = sin(x).^2
a=1 b=4Integration using adaptive simpson gives error=-1.0503e-013 in 249 function evaluations Now compare with n step of composite simpson rule:n=2 Error in composite simpson rule =-0.12324n=4 Error in composite simpson rule =-0.00075995n=8 Error in composite simpson rule =-3.7687e-005n=16 Error in composite simpson rule =-2.2363e-006n=32 Error in composite simpson rule =-1.3801e-007n=64 Error in composite simpson rule =-8.5986e-009n=128 Error in composite simpson rule =-5.3699e-010n=256 Error in composite simpson rule =-3.3555e-011n=512 Error in composite simpson rule =-2.0945e-012n=1024 Error in composite simpson rule =-1.299e-013The same function with composite trapezoid rule:a=1 b=4n=2 Error in composite trapezod rule =0.017886n=4 Error in composite trapezod rule =0.0039016n=8 Error in composite trapezod rule =0.00094713n=16 Error in composite trapezod rule =0.0002351n=32 Error in composite trapezod rule =5.8673e-005n=64 Error in composite trapezod rule =1.4662e-005n=128 Error in composite trapezod rule =3.665e-006n=256 Error in composite trapezod rule =9.1623e-007n=512 Error in composite trapezod rule =2.2906e-007n=1024 Error in composite trapezod rule =5.7264e-008n=2048 Error in composite trapezod rule =1.4316e-008n=4096 Error in composite trapezod rule =3.579e-009
![Page 4: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/4.jpg)
romberg1.m
% Romberg integration with number of function evaluations count funccount% Computes approximation to definite integral % Inputs: Matlab inline function specifying integrand f, % a,b integration interval, n=number of rows% Output: [r(n,n) funccount]function [r1 funccount] =romberg(f,a,b,n)h=(b-a)./(2.^(0:n-1));r(1,1)=(b-a)*(f(a)+f(b))/2;funccount=2;for j=2:n subtotal = 0; for i=1:2^(j-2) subtotal = subtotal + f(a+(2*i-1)*h(j)); funccount= funccount+1; end r(j,1) = r(j-1,1)/2+h(j)*subtotal; for k=2:j r(j,k) = (4^(k-1)*r(j,k-1)-r(j-1,k-1))/(4^(k-1)-1); endendr1=r(n,n);
![Page 5: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/5.jpg)
rombergtest.m%test of romberg integration vs. adaptive Simpson's rule and comparison with composite Trapezoid and Composite Simpson's
tol=10^(-10); %desired tolerancea=1;b=4;f1=inline('sin(x).^2') %function f(x)
disp(['a=',num2str(a),' b=',num2str(b)]) %display limits of integration
intexact=quadl(f1,a,b,10^(-16)); %calculation of "exact" value of integral
[fadaptive funccount]=quad(f1,a,b,tol);
disp(['Integration using adaptive simpson gives error=',num2str(fadaptive-intexact), ' in ',num2str(funccount), ' function evaluations']);
disp(['Now compare with Romberg integration:']);
i=1:8;nvec=1.*(i); for i=1:length(nvec)[intromber funccount]=romberg1(f1,a,b,nvec(i)); disp([' Error in Romberg integration =',num2str(intromber-intexact), ' in ',num2str(funccount), ' function evaluations']);% end…
![Page 6: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/6.jpg)
>> rombergtest
f1 =
Inline function: f1(x) = sin(x).^2
a=1 b=4Integration using adaptive simpson gives error=-1.0525e-013 in 249 function evaluations Now compare with Romberg integration: Error in Romberg integration =0.44125 in 2 function evaluations Error in Romberg integration =-0.12324 in 3 function evaluations Error in Romberg integration =0.0074051 in 5 function evaluations Error in Romberg integration =-0.00010691 in 9 function evaluations Error in Romberg integration =3.8208e-007 in 17 function evaluations Error in Romberg integration =-3.4053e-010 in 33 function evaluations Error in Romberg integration =7.5717e-014 in 65 function evaluations Error in Romberg integration =2.2204e-016 in 129 function evaluations Now compare with n step of composite simpson rule:n=2 Error in composite simpson rule =-0.12324n=4 Error in composite simpson rule =-0.00075995n=8 Error in composite simpson rule =-3.7687e-005n=16 Error in composite simpson rule =-2.2363e-006n=32 Error in composite simpson rule =-1.3801e-007n=64 Error in composite simpson rule =-8.5986e-009n=128 Error in composite simpson rule =-5.3699e-010n=256 Error in composite simpson rule =-3.3555e-011n=512 Error in composite simpson rule =-2.0948e-012n=1024 Error in composite simpson rule =-1.3012e-013 …
![Page 7: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/7.jpg)
rombergtest2.m%rombergtest2.m: test of romberg integration vs. adaptive Simpson's rule and comparison with composite Trapezoid and Composite Simpson's
tol=10^(-10); %desired tolerancea=1;b=15;f1=inline('sin(x).^2') %function f(x)
disp(['a=',num2str(a),' b=',num2str(b)]) %display limits of integration
intexact=quadl(f1,a,b,10^(-16)); %calculation of "exact" value of integral
[fadaptive funccount]=quad(f1,a,b,tol);
disp(['Integration using adaptive simpson gives error=',num2str(fadaptive-intexact), ' in ',num2str(funccount), ' function evaluations']);
disp(' ');
disp(['Now compare with Romberg integration:']);
disp(' ');
…
![Page 8: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/8.jpg)
>> rombergtest2
f1 =
Inline function: f1(x) = sin(x).^2
a=1 b=15Integration using adaptive simpson gives error=-1.4833e-013 in 1233 function evaluations Now compare with Romberg integration: Error in Romberg integration =0.4423 in 2 function evaluations Error in Romberg integration =4.3003 in 3 function evaluations Error in Romberg integration =4.1559 in 5 function evaluations Error in Romberg integration =-2.6801 in 9 function evaluations Error in Romberg integration =0.23911 in 17 function evaluations Error in Romberg integration =-0.004795 in 33 function evaluations Error in Romberg integration =2.3442e-005 in 65 function evaluations Error in Romberg integration =-2.8473e-008 in 129 function evaluations Error in Romberg integration =8.6331e-012 in 257 function evaluations Error in Romberg integration =0 in 513 function evaluations Error in Romberg integration =-8.8818e-016 in 1025 function evaluations Error in Romberg integration =-7.9936e-015 in 2049 function evaluations Now compare with n step of composite simpson rule:n=2 Error in composite simpson rule =4.3003n=4 Error in composite simpson rule =4.165n=8 Error in composite simpson rule =-2.1522n=16 Error in composite simpson rule =0.037939n=32 Error in composite simpson rule =0.0016978n=64 Error in composite simpson rule =9.8788e-005n=128 Error in composite simpson rule =6.0685e-006n=256 Error in composite simpson rule =3.7766e-007n=512 Error in composite simpson rule =2.3579e-008n=1024 Error in composite simpson rule =1.4733e-009
![Page 9: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/9.jpg)
gaussianadaptive.m%gaussianadaptive.m: test of gaussian adaptive integration vs. adaptive Simpson's rule and Romberg's integration
tol=10^(-8); %desired tolerancea=1;b=4;f1=inline('sin(x).^2') %function f(x)
disp(['a=',num2str(a),' b=',num2str(b)]) %display limits of integration
intexact=quadl(f1,a,b,10^(-16)); %calculation of "exact" value of integral
[fadaptive funccount]=quadl(f1,a,b,tol);
disp(['Integration using adaptive Gaussian quadrature gives error=',num2str(fadaptive-intexact), ' in ',num2str(funccount), ' function evaluations']);
disp(' ');
[fadaptive funccount]=quad(f1,a,b,10^(-10));
disp(['Integration using adaptive simpson gives error=',num2str(fadaptive-intexact), ' in ',num2str(funccount), ' function evaluations']);disp(' ');disp(['Now compare with Romberg integration:']);…
![Page 10: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/10.jpg)
>> gaussianadaptive
f1 =
Inline function: f1(x) = sin(x).^2
a=1 b=4Integration using adaptive Gaussian quadrature gives error=2.1849e-013 in 48 function evaluations Integration using adaptive simpson gives error=-1.0525e-013 in 249 function evaluations Now compare with Romberg integration: Error in Romberg integration =0.44125 in 2 function evaluations Error in Romberg integration =-0.12324 in 3 function evaluations Error in Romberg integration =0.0074051 in 5 function evaluations Error in Romberg integration =-0.00010691 in 9 function evaluations Error in Romberg integration =3.8208e-007 in 17 function evaluations Error in Romberg integration =-3.4053e-010 in 33 function evaluations Error in Romberg integration =7.5717e-014 in 65 function evaluations Error in Romberg integration =2.2204e-016 in 129 function evaluations Error in Romberg integration =-2.2204e-016 in 257 function evaluations Error in Romberg integration =-4.4409e-016 in 513 function evaluations Error in Romberg integration =4.4409e-016 in 1025 function evaluations Error in Romberg integration =0 in 2049 function evaluations
![Page 11: Lecture 28: Comparison of different numerical integrators 1.Adaptive Simpson’s and Trapezoid Rules 2. Romberg Integration 3. Adaptive Gaussian Quadrature](https://reader036.vdocuments.site/reader036/viewer/2022082817/56649e175503460f94b028af/html5/thumbnails/11.jpg)
>> adaptivesimpson
f1 =
Inline function: f1(x) = sin(x).^2
a=1 b=4Integration using adaptive simpson gives error=-1.0503e-013 in 249 function evaluations Now compare with n step of composite simpson rule:n=2 Error in composite simpson rule =-0.12324n=4 Error in composite simpson rule =-0.00075995n=8 Error in composite simpson rule =-3.7687e-005n=16 Error in composite simpson rule =-2.2363e-006n=32 Error in composite simpson rule =-1.3801e-007n=64 Error in composite simpson rule =-8.5986e-009n=128 Error in composite simpson rule =-5.3699e-010n=256 Error in composite simpson rule =-3.3555e-011n=512 Error in composite simpson rule =-2.0945e-012n=1024 Error in composite simpson rule =-1.299e-013The same function with composite trapezoid rule:a=1 b=4n=2 Error in composite trapezod rule =0.017886n=4 Error in composite trapezod rule =0.0039016n=8 Error in composite trapezod rule =0.00094713n=16 Error in composite trapezod rule =0.0002351n=32 Error in composite trapezod rule =5.8673e-005n=64 Error in composite trapezod rule =1.4662e-005n=128 Error in composite trapezod rule =3.665e-006n=256 Error in composite trapezod rule =9.1623e-007n=512 Error in composite trapezod rule =2.2906e-007n=1024 Error in composite trapezod rule =5.7264e-008n=2048 Error in composite trapezod rule =1.4316e-008n=4096 Error in composite trapezod rule =3.579e-009