ARTS 2.5.11 (git: 725533f0)
minimize.cc
Go to the documentation of this file.
1#include "minimize.h"
2#include "matpack_math.h"
3
4namespace Minimize {
6 for (Index i=0; i<m_values; i++) {
7 f[i] = p[0] - Y[i];
8 Numeric x = 1;
9 for (int j=1; j<m_inputs; j++) {
10 x *= X[i];
11 f[i] += p[j] * x;
12 }
13 }
14 return 0;
15}
16
18 for (Index i=0; i<m_values; i++) {
19 J(i, 0) = 1;
20 Numeric x = 1;
21 for (int j=1; j<m_inputs; j++) {
22 x *= X[i];
23 J(i, j) = x;
24 }
25 }
26 return 0;
27}
28
31 for (int j=0; j<m_inputs; j++) {
32 out[j] = 1;
33 }
34 return out;
35}
36
38 for (Index i=0; i<m_values; i++) {
39 const Numeric G = T0 / T[i];
40 const Numeric GX = std::pow(G, p[2]);
41 f[i] = (p[0] + p[1] * (G - 1)) * GX - Y[i];
42 }
43 return 0;
44}
45
46int T4::df(const T4::InputType& p, T4::JacobianType& J) const {
47 for (Index i=0; i<m_values; i++) {
48 const Numeric G = T0 / T[i];
49 const Numeric GX = std::pow(G, p[2]);
50 J(i, 0) = GX;
51 J(i, 1) = (G - 1) * GX;
52 J(i, 2) = (p[0] + p[1] * (G - 1)) * GX * std::log(G);
53 }
54 return 0;
55}
56
58 const Numeric mean_y = mean(Y);
60 out << mean_y, -0.01*mean_y, mean_y < 0 ? -EXP0 : EXP0;
61 return out;
62}
63
65 for (Index i=0; i<m_values; i++) {
66 const Numeric G = T0 / T[i];
67 const Numeric GX1 = std::pow(G, p[1]);
68 const Numeric GX3 = std::pow(G, p[3]);
69 f[i] = p[0] * GX1 + p[2] * GX3 - Y[i];
70 }
71 return 0;
72}
73
74int DPL::df(const DPL::InputType& p, DPL::JacobianType& J) const {
75 for (Index i=0; i<m_values; i++) {
76 const Numeric G = T0 / T[i];
77 const Numeric lG = std::log(G);
78 const Numeric GX1 = std::pow(G, p[1]);
79 const Numeric GX3 = std::pow(G, p[3]);
80 J(i, 0) = GX1;
81 J(i, 1) = p[0] * GX1 * lG;
82 J(i, 2) = GX3;
83 J(i, 3) = p[2] * GX3 * lG;
84 }
85 return 0;
86}
87
89 const Numeric mean_y = mean(Y);
91 out << mean_y, mean_y < 0 ? -EXP0 : EXP0, -0.01*mean_y, mean_y < 0 ? EXP0 : -EXP0;
92 return out;
93}
94}
TimeStep mean(const ArrayOfTimeStep &dt)
Returns the mean time step.
Definition artstime.cc:172
InputType x0() const
start values helper function, operator()(...) must be not too bad
Definition minimize.cc:88
const int m_values
Definition minimize.h:155
int df(const InputType &p, JacobianType &J) const
Definition minimize.cc:74
const Numeric T0
Reference temperature.
Definition minimize.h:164
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > InputType
Definition minimize.h:146
const Numeric EXP0
Reference start exponent.
Definition minimize.h:167
static constexpr int m_inputs
Definition minimize.h:152
int operator()(const InputType &p, ValueType &f) const
Definition minimize.cc:64
const ConstVectorView & T
Temperature grid.
Definition minimize.h:158
const ConstVectorView & Y
Spectroscopic values at grid.
Definition minimize.h:161
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > ValueType
Definition minimize.h:147
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > JacobianType
Definition minimize.h:148
const ConstVectorView & X
Temperature grid.
Definition minimize.h:32
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > InputType
Definition minimize.h:20
int df(const InputType &p, JacobianType &J) const
Definition minimize.cc:17
int operator()(const InputType &p, ValueType &f) const
Definition minimize.cc:5
const ConstVectorView & Y
Spectroscopic values at grid.
Definition minimize.h:35
InputType x0() const
start values helper function, operator()(...) must be not too bad
Definition minimize.cc:29
const int m_inputs
Definition minimize.h:26
const int m_values
Definition minimize.h:29
const Numeric EXP0
Reference start exponent.
Definition minimize.h:100
const ConstVectorView & T
Temperature grid.
Definition minimize.h:91
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > InputType
Definition minimize.h:79
static constexpr int m_inputs
Definition minimize.h:85
const Numeric T0
Reference temperature.
Definition minimize.h:97
Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > ValueType
Definition minimize.h:80
InputType x0() const
start values helper function, operator()(...) must be not too bad
Definition minimize.cc:57
Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > JacobianType
Definition minimize.h:81
const int m_values
Definition minimize.h:88
const ConstVectorView & Y
Spectroscopic values at grid.
Definition minimize.h:94
int operator()(const InputType &p, ValueType &f) const
Definition minimize.cc:37
int df(const InputType &p, JacobianType &J) const
Definition minimize.cc:46