Skip to content

Commit f05e9ed

Browse files
committed
moved finite difference to new optimizer
1 parent 3a6433a commit f05e9ed

4 files changed

Lines changed: 11 additions & 53 deletions

File tree

pynumdiff/optimize/_optimize.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from pynumdiff.utils import evaluate
1010

11+
from ..finite_difference import first_order
1112
from ..linear_model import spectraldiff, polydiff, savgoldiff, lineardiff
1213

1314

@@ -40,6 +41,9 @@
4041
'window_size': [10, 30, 50, 90, 130]},
4142
{'gamma': (1e-3, 1000),
4243
'window_size': (15, 1000)}),
44+
first_order: ({'num_iterations': [5, 10, 30, 50]},
45+
{'num_iterations': (1, 1000)})
46+
4347
}
4448

4549

pynumdiff/optimize/finite_difference/__finite_difference__.py

Lines changed: 0 additions & 35 deletions
This file was deleted.

pynumdiff/optimize/finite_difference/__init__.py

Lines changed: 0 additions & 4 deletions
This file was deleted.

pynumdiff/tests/test_optimize.py

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,31 @@
11
import numpy as np
22
from pytest import mark, skip
33

4-
#from pynumdiff.optimize.finite_difference import first_order
54
#from pynumdiff.optimize.smooth_finite_difference import mediandiff, meandiff, gaussiandiff, \
65
# friedrichsdiff, butterdiff, splinediff
76
#from pynumdiff.optimize.total_variation_regularization import *
8-
#from pynumdiff.optimize.linear_model import *
97
#from pynumdiff.optimize.kalman_smooth import constant_velocity, constant_acceleration, \
108
# constant_jerk
119
from pynumdiff.utils.simulate import pi_control
1210

11+
from ..finite_difference import first_order as iterated_finite_difference # actually second order
1312
from ..linear_model import spectraldiff, polydiff, savgoldiff
1413
from ..optimize import optimize
1514

1615

17-
1816
# simulation
19-
noise_type = 'normal'
20-
noise_parameters = [0, 0.01]
2117
dt = 0.01
22-
duration = 2
23-
x, x_truth, dxdt_truth, extras = pi_control(duration, noise_parameters=noise_parameters, dt=dt)
18+
x, x_truth, dxdt_truth, extras = pi_control(duration=2, noise_type='normal', noise_parameters=[0, 0.01], dt=dt)
2419
cutoff_frequency = 0.1
2520
log_gamma = -1.6 * np.log(cutoff_frequency) - 0.71 * np.log(dt) - 5.1
2621
tvgamma = np.exp(log_gamma)
2722

2823

29-
# def test_first_order():
30-
# params_1, val_1 = first_order(x, dt, params=None, options={'iterate': True},
31-
# tvgamma=tvgamma, dxdt_truth=dxdt_truth)
32-
# params_2, val_2 = first_order(x, dt, params=None, options={'iterate': True},
33-
# tvgamma=0, dxdt_truth=None)
34-
# assert params_1 == [5]
35-
# assert params_2 == [1]
24+
def test_finite_difference():
25+
params_1, val_1 = optimize(iterated_finite_difference, x, dt, tvgamma=tvgamma, dxdt_truth=dxdt_truth)
26+
params_2, val_2 = optimize(iterated_finite_difference, x, dt, tvgamma=0, dxdt_truth=None)
27+
assert params_1['num_iterations'] == 5
28+
assert params_2['num_iterations'] == 1
3629

3730
# def test_mediandiff():
3831
# params_1, val_1 = mediandiff(x, dt, params=None, options={'iterate': False},

0 commit comments

Comments
 (0)