Skip to content

Commit 3ad3e3f

Browse files
author
Abhinab Bhattacharjee
committed
Merge branch 'abhinab' of https://github.com/ComputationalScienceLaboratory/DATools into abhinab
Merged the remote branch
2 parents b5d0fb4 + ca37a91 commit 3ad3e3f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+2705
-1595
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11

22
*.asv
3+
*.mat
4+
*.png
5+
*.fig

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
Nothing here but the wind.
1+
A set of Data assimilation tools. Filter smoothers, ensemble and variational methods, localization, etc.
2+
3+
An active work in progress.

src/+datools/+error/Error.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
classdef Error < handle
2-
2+
33
methods
4-
4+
55
function xp = adderr(~, ~, x)
66
xp = x;
77
end
8-
8+
99
end
10-
10+
1111
end

src/+datools/+error/Gaussian.m

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
classdef Gaussian < datools.error.Error
2-
2+
33
properties
44
CovarianceSqrt
55
Bias
66
end
7-
7+
88
methods
9-
9+
1010
function obj = Gaussian(varargin)
1111
p = inputParser;
1212
addOptional(p, 'CovarianceSqrt', 1);
1313
addOptional(p, 'Bias', 0);
1414
parse(p, varargin{:});
15-
15+
1616
s = p.Results;
17-
17+
1818
obj.CovarianceSqrt = s.CovarianceSqrt;
1919
obj.Bias = s.Bias;
2020
end
21-
21+
2222
function xp = adderr(obj, ~, x)
23-
A = obj.CovarianceSqrt*randn(size(x, 1), size(x, 2));
23+
A = obj.CovarianceSqrt * randn(size(x, 1), size(x, 2));
2424
xp = x + A + obj.Bias;
2525
end
26-
26+
2727
end
28-
28+
2929
end

src/+datools/+error/Laplace.m

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
classdef Laplace < datools.error.Error
2-
2+
33
properties
44
CovarianceSqrt
55
Bias
66
end
7-
7+
88
methods
9-
9+
1010
function obj = Laplace(varargin)
1111
p = inputParser;
1212
addOptional(p, 'CovarianceSqrt', 1);
1313
addOptional(p, 'Bias', 0);
1414
parse(p, varargin{:});
15-
15+
1616
s = p.Results;
17-
17+
1818
obj.CovarianceSqrt = s.CovarianceSqrt;
1919
obj.Bias = s.Bias;
2020
end
21-
21+
2222
function xp = adderr(obj, ~, x)
23-
X = obj.CovarianceSqrt*randn(size(x, 1), size(x, 2));
23+
X = obj.CovarianceSqrt * randn(size(x, 1), size(x, 2));
2424
Z = exprnd(1, 1, size(x, 2));
25-
Y = sqrt(Z).*X;
25+
Y = sqrt(Z) .* X;
2626
xp = x + Y + obj.Bias;
2727
end
28-
28+
2929
end
30-
30+
3131
end

src/+datools/+error/Logistic.m

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,52 @@
11
classdef Logistic < datools.error.Error
2-
2+
33
properties
44
State
55
Scale
66
R
77
end
8-
8+
99
methods
10-
10+
1111
function obj = Logistic(varargin)
12-
p = inputParser;
12+
p = inputParser;
1313
p.KeepUnmatched = true;
1414
addParameter(p, 'NumVars', 1);
1515
addParameter(p, 'Scale', 2*sqrt(3));
1616
addParameter(p, 'R', 3.99999);
1717
parse(p, varargin{:});
18-
18+
1919
s = p.Results;
20-
20+
2121
obj.Scale = s.Scale;
22-
obj.R = s.R;
23-
22+
obj.R = s.R;
23+
2424
kept = p.Unmatched;
25-
25+
2626
p = inputParser;
2727
addParameter(p, 'InitialState', rand(s.NumVars, 1));
2828
parse(p, kept);
29-
29+
3030
s = p.Results;
31-
31+
3232
obj.State = s.InitialState;
33-
33+
3434
end
35-
35+
3636
function xp = adderr(obj, ~, x)
3737
r = obj.R;
38-
38+
3939
z = obj.State;
40-
41-
z = r*z.*(1 - z);
42-
40+
41+
z = r * z .* (1 - z);
42+
4343
obj.State = z;
44-
45-
err = obj.Scale*(z - 0.5);
46-
44+
45+
err = obj.Scale * (z - 0.5);
46+
4747
xp = x + err;
4848
end
49-
49+
5050
end
51-
51+
5252
end

src/+datools/+error/Tent.m

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,51 @@
11
classdef Tent < datools.error.Error
2-
2+
33
properties
44
State
55
Scale
66
Mu
77
end
8-
8+
99
methods
10-
10+
1111
function obj = Tent(varargin)
1212
p = inputParser;
1313
p.KeepUnmatched = true;
1414
addParameter(p, 'NumVars', 1);
1515
addParameter(p, 'Scale', 2*sqrt(3));
1616
addParameter(p, 'Mu', 1.99999);
1717
parse(p, varargin{:});
18-
18+
1919
s = p.Results;
20-
20+
2121
obj.Scale = s.Scale;
22-
obj.Mu = s.Mu;
23-
22+
obj.Mu = s.Mu;
23+
2424
kept = p.Unmatched;
25-
25+
2626
p = inputParser;
2727
addParameter(p, 'InitialState', rand(s.NumVars, 1));
2828
parse(p, kept);
29-
29+
3030
s = p.Results;
31-
31+
3232
obj.State = s.InitialState;
3333
end
34-
34+
3535
function xp = adderr(obj, ~, x)
3636
mu = obj.Mu;
37-
37+
3838
z = obj.State;
39-
40-
z = mu*min(z, 1 - z);
41-
39+
40+
z = mu * min(z, 1-z);
41+
4242
obj.State = z;
43-
44-
err = obj.Scale*(z - 0.5);
45-
43+
44+
err = obj.Scale * (z - 0.5);
45+
4646
xp = x + err;
4747
end
48-
48+
4949
end
50-
50+
5151
end

src/+datools/+error/Triangle.m

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
classdef Triangle < datools.error.Error
2+
3+
properties
4+
Lower
5+
Middle
6+
Upper
7+
end
8+
9+
methods
10+
11+
function obj = Triangle(varargin)
12+
p = inputParser;
13+
addOptional(p, 'Lower', -1);
14+
addOptional(p, 'Middle', 0);
15+
addOptional(p, 'Upper', 1);
16+
17+
parse(p, varargin{:});
18+
19+
s = p.Results;
20+
21+
obj.Lower = s.Lower;
22+
obj.Middle = s.Middle;
23+
obj.Upper = s.Upper;
24+
end
25+
26+
function xp = adderr(obj, ~, x)
27+
td = makedist('Triangular', obj.Lower, obj.Middle, obj.Upper);
28+
29+
A = td.random([size(x, 1), size(x, 2)]);
30+
xp = x + A;
31+
end
32+
33+
end
34+
35+
end

src/+datools/+examples/+error/logisticmapbifurcation.m

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@
88
ys = zeros(nr, addpoints);
99

1010
for mui = 1:nr
11-
11+
1212
r = rs(mui);
13-
13+
1414
tenterror = datools.error.Logistic('R', r, 'Scale', 1);
15-
15+
1616
% initial evolve
1717
for i = 1:initialevolve
1818
tenterror.adderr(0, 0);
1919
end
20-
20+
2121
% add points
2222
for i = 1:addpoints
2323
y = tenterror.adderr(0, 0.5);
2424
xs(mui, i) = r;
2525
ys(mui, i) = y;
2626
end
27-
27+
2828
end
2929

3030
p = scatter(xs(:), ys(:), 1, '.k');

src/+datools/+examples/+error/lorenz63bifurcation.m

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,39 @@
1111
zs = zeros(nrho, addpoints);
1212

1313
for rhoi = 1:nrho
14-
14+
1515
rho = rhos(rhoi);
16-
16+
1717
model = otp.lorenz63.presets.Canonical;
1818
model.Parameters.rho = rho;
19-
19+
2020
model.TimeSpan = [0, initialevolve] + model.TimeSpan(1);
21-
22-
[~, yi] = ode45(model.Rhs.F, [0 initialevolve], model.Y0);
23-
21+
22+
[~, yi] = ode45(model.Rhs.F, [0, initialevolve], model.Y0);
23+
2424
model.TimeSpan = model.TimeSpan + tspandt;
2525
model.Y0 = yi(end, :).';
26-
26+
2727
rhoplot(rhoi, :) = rho;
2828
[~, y] = ode45(model.Rhs.F, ...
2929
linspace(model.TimeSpan(1), model.TimeSpan(end), addpoints), ...
3030
model.Y0);
31-
31+
3232
xs(rhoi, :) = y(:, 1).';
3333
ys(rhoi, :) = y(:, 2).';
3434
zs(rhoi, :) = y(:, 3).';
35-
35+
3636
end
3737

3838
xmin = min(xs(:));
3939
xmax = max(zs(:));
4040
zmin = min(zs(:));
4141
zmax = max(zs(:));
4242

43-
xs = (xs(:) + xmin)/diff([xmax, xmin]);
44-
zs = (zs(:) + xmin)/diff([zmax, zmin]);
43+
xs = (xs(:) + xmin) / diff([xmax, xmin]);
44+
zs = (zs(:) + xmin) / diff([zmax, zmin]);
4545

46-
ds = sqrt(xs.^2 + zs.^2);
46+
ds = sqrt(xs.^2+zs.^2);
4747

4848
[~, si] = sort(ds);
4949

@@ -56,8 +56,8 @@
5656

5757
cax = gca;
5858

59-
set(cax, 'box','off','XTickLabel',[],'XTick',[],'YTickLabel',[],'YTick',[])
60-
set(gca,'LooseInset',get(gca,'TightInset'));
61-
set(gca,'XColor','none')
62-
set(gca,'YColor','none')
63-
set(gcf,'color','white')
59+
set(cax, 'box', 'off', 'XTickLabel', [], 'XTick', [], 'YTickLabel', [], 'YTick', [])
60+
set(gca, 'LooseInset', get(gca, 'TightInset'));
61+
set(gca, 'XColor', 'none')
62+
set(gca, 'YColor', 'none')
63+
set(gcf, 'color', 'white')

0 commit comments

Comments
 (0)