Different limits of function sequence

6 views (last 30 days)
Andrei
Andrei on 25 Oct 2023
Commented: Andrei on 25 Oct 2023
Write a function convergenceFunc(fn, f, a, b, n, convType) that takes as input arguments: a function fn(n,x), fn(n,x) = f_n(x) - and a function f considered as the limit of the sequence f_n(x) on [a,b] in the sense given by the string convType: it can be pointwise convergence, uniform convergence, mean-square convergence.
And at this point I am a bit puzzled, since I want to enter only fn(n,x) and write matlab function, whichtake fn and find limits in different senses according to convType. But I dont know what to chage in limit to obtain different funcions for different types of convergeance.
  5 Comments
Andrei
Andrei on 25 Oct 2023
For some functions there is only one type of convergeance - then convType can return error in case when expression doesnt convege in sense of convType. Also inside function I will evaluate errors which depend on convType
Andrei
Andrei on 25 Oct 2023
I have written my realization, but it is no automized
clc
clear
close all
a = 0;
b = 1;
n = 10;
fn = @(n, x) (2.*x.*n + (-1).^n.*x^2)./n;
f = @(x) 2.*x;
% Uniform Convergence
convergenceFunc(@(n, x) (2.*x.*n + ((-1).^n).*x.^2)./n , @(x) 2.*x, a, b, n, 'uniform');
% Mean Squared Convergence
convergenceFunc(@(n, x) (2.*x.*n + ((-1).^n).*x.^2)./n , @(x) 2.*x, a, b, n, 'mean_squared');
% Pointwise Convergence
convergenceFunc(@(n, x) (2.*x.*n + ((-1).^n).*x.^2)./n , @(x) 2.*x, a, b, n, 'pointwise');
function convergenceFunc(fn, f, a, b, n, convType)
x = linspace(a, b, 1000);
y_fn = zeros(1000, n);
y_f = f(x);
figure
for i = 1:n
y_fn(:, i) = fn(i, x);
if strcmp(convType, 'uniform')
diff_metric = max(abs(y_fn(:, i) - y_f));
title_str = 'Uniform Convergence';
elseif strcmp(convType, 'mean_squared')
diff_metric = sqrt(mean((y_fn(:, i) - y_f).^2));
title_str = 'Mean Squared Convergence';
elseif strcmp(convType, 'pointwise')
diff_metric = NaN;
title_str = 'Pointwise Convergence';
end
plot(x, y_fn(:, i), 'b', x, y_f, 'r');
title(title_str);
legend(['f_', num2str(i)], 'f');
xlabel('x');
ylabel('y');
title(['Metric: ', num2str(diff_metric)]);
drawnow;
hold on
pause(0.5);
end
end

Sign in to comment.

Answers (0)

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!