You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
852 B
27 lines
852 B
% Example 2: Numerical approximation of an integral on the interval [-1,1]
|
|
% where the integrand has one multiple singularity
|
|
|
|
clear;
|
|
close;
|
|
clc;
|
|
|
|
disp('One multiple pole A');
|
|
disp('int_{-1}^{1} ( 1/2 + (x-A)^(-100) ) dx');
|
|
|
|
fun = @(x,a) 1/2 + 1./(x-a).^100;
|
|
A = [1.1:.1:2]; % ten different cases
|
|
|
|
for j = 1:length(A),
|
|
disp(sprintf('\nPole is %1.3f',A(j)));
|
|
n = 32;
|
|
disp(sprintf('The maximal number of iterations is %1.3f',n+1));
|
|
fx = @(x) fun(x,A(j));
|
|
sgl = A(j)*ones(1,n);
|
|
[NumInt,Err] = rfejer(sgl,fx);
|
|
disp(sprintf('Computed value: %1.16e',NumInt));
|
|
disp(sprintf('Estimated relative error: %1.16e',Err));
|
|
Exact = 1-1/99*(1/(1-A(j))^99+1/(1+A(j))^99);
|
|
ErrExact = abs(1-NumInt/Exact);
|
|
disp(sprintf('Exact value: %1.16e',Exact));
|
|
disp(sprintf('Exact relative error: %1.16e',ErrExact));
|
|
end
|
|
|