-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIntegralTables2ToTheN.m
More file actions
63 lines (54 loc) · 1.6 KB
/
Copy pathIntegralTables2ToTheN.m
File metadata and controls
63 lines (54 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
epsilonrange_1 = 0.05:0.005:0.1;
epsilonrange_2 = 0.2:0.1:1;
epsilonrange = horzcat(epsilonrange_1, epsilonrange_2);
Nrange = 1:15;
vector = zeros(1, length(Nrange));
m=1;
a_values = zeros(length(epsilonrange), 1);
b_values = zeros(length(epsilonrange), 1);
e_values = zeros(length(epsilonrange), 1);
y_full = zeros(0, length(Nrange));
for each=1:length(Nrange)
y_full(each) = 2^each;
end
value_at = 1;
for epsilon=epsilonrange
count = 1;
for N=Nrange
disp(N);
y = y_full(1:N);
f = @(t)abs(Qn(y, N, t));
value = integral(f, epsilon, pi,'ArrayValued',true);
vector(count) = value;
count=count+1;
end
logNrange = log(Nrange);
logVector = log(vector);
poly = polyfit(logNrange(int64(4*end/5):end), logVector(int64(4*end/5):end), 1);
a_values(value_at) = poly(1);
b_values(value_at) = poly(2);
e_values(value_at) = epsilon;
value_at = value_at+1;
end
f = figure;
t = uitable(f);
d = [e_values, a_values,b_values];
t.Data = d;
t.Position = [20 20 400 400];
t.ColumnName = {'Epsilon', 'a_value', 'b_value'};
txt_title = uicontrol('Style', 'text', 'Position', [20 0 200 20], 'String', ['2^N for N=', num2str(max(Nrange))]);
f2 = figure;
plot(e_values, a_values, 'DisplayName', 'a values');
hold on;
plot(e_values, b_values, 'DisplayName', 'b values');
xlabel(['2^n for N = ', num2str(max(Nrange))]);
legend('show');
function result=Qn(y, N, t)
result = (1./(2.*pi)).*(1./(N+1)).*func_sum(y, t);
end
function result = func_sum(y, t)
result = 1;
for each=y
result = result + (sin((each+.5).*t))./(sin(.5.*t));
end
end