| 16 algorithm_overrides = laser_and_mirrors_aux.algorithm_overrides |
16 algorithm_overrides = laser_and_mirrors_aux.algorithm_overrides |
| 17 |
17 |
| 18 |
18 |
| 19 # Setup routine |
19 # Setup routine |
| 20 def setup(prefix): |
20 def setup(prefix): |
| 21 dat, auxtrue, μ_bound, μ_true, plot_factory = laser_and_mirrors_aux.generic_setup( |
21 dat, auxtrue, _μ_bound, μ_true, plot_factory = laser_and_mirrors_aux.generic_setup( |
| 22 prefix |
22 prefix |
| 23 ) |
23 ) |
| 24 |
24 |
| 25 μ0 = DiscreteMeasure_2_f64([]) |
25 μ0 = DiscreteMeasure_2_f64([]) |
| 26 |
26 |
| 27 reg = RegTerm.NonnegRadon( |
27 reg = RegTerm.NonnegRadon(1.5e-6) |
| 28 10e-7 # 5e-7 # 3e-7 |
|
| 29 ) |
|
| 30 |
28 |
| 31 dat_simple = ComposeFnWithOperator(dat, InjectSecond(auxtrue), xbound=μ_bound) |
29 dat_simple = ComposeFnWithOperator(dat, InjectSecond(auxtrue)) |
| 32 dat_simple.curvature_bound_components = lambda: (None, None) |
30 dat_simple.curvature_bound_components = lambda: (None, None) |
| 33 print("Initial value:", dat_simple.apply(μ0)) |
31 print("Initial data term value:", dat_simple.apply(μ0)) |
| 34 print("Value at true μ:", dat_simple.apply(μ_true)) |
32 print("Data term value at true μ:", dat_simple.apply(μ_true)) |
| 35 |
33 |
| 36 return Problem( |
34 return Problem( |
| 37 dataterm=dat_simple, regterm=reg, μinit=μ0, plot_factory=plot_factory |
35 dataterm=dat_simple, regterm=reg, μinit=μ0, plot_factory=plot_factory |
| 38 ) |
36 ) |