00001
00002
00004
00005 #if !defined(AFX_SINGLENETWORKMINIMIZABLE_H__8F38BFB2_7B39_41DB_A979_3A20AD69180D__INCLUDED_)
00006 #define AFX_SINGLENETWORKMINIMIZABLE_H__8F38BFB2_7B39_41DB_A979_3A20AD69180D__INCLUDED_
00007
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011
00012 #include <iomanip>
00013 #include <cmath>
00014 #include <assert.h>
00015 #include "SubjectObserver.h"
00016 #include "NLLSMinimizable.h"
00017 #include "Experiment.h"
00018 #include "ReactionMover.h"
00019 #include "CellAverageObserver.h"
00020 #include "ConversionFactor.h"
00021 #include "NetworkMinimizable.h"
00022
00023 class SingleNetworkMinimizable : public NetworkMinimizable
00024 {
00025 public:
00026
00027 SingleNetworkMinimizable();
00028 virtual ~SingleNetworkMinimizable();
00029 SingleNetworkMinimizable(Experiment *experiment,CReactionMover *reactionMover,bool rateConstantsOptimizable,bool initialChemConcOptimizable,bool logsInObjectiveFunction,double timeSeriesWeight,double rateConstantsWeight,double initialChemConcWeight,int nCells=1);
00030
00031 void Initialize(Experiment *experiment, CReactionMover *reactionMover, int nCells, bool rateConstantsOptimizable, bool initialChemConcOptimizable, bool logsInObjectiveFunction, double timeSeriesWeight, double rateConstantsWeight, double initialChemConcWeight);
00032
00033 Experiment *GetExperiment(){return this->experiment;}
00034 CellAverageObserver *GetCellObserver() {return cellObserver;}
00035
00036 double GetParameter(int parIndex);
00037
00038 int GetNParameters();
00039 double ComputeResiduals(double *parameters);
00040 virtual double ComputeES(double *parameters, double T);
00041
00042 virtual double F(double *parameters, double T);
00043 virtual double F0(double *parameters, double T);
00044 private:
00045 Experiment *experiment;
00046 CReactionMover *reactionMover;
00047 CellAverageObserver *cellObserver;
00048 double *initialNetworkData;
00049 double *currentNetworkData;
00050 };
00051
00052 #endif // !defined(AFX_SINGLENETWORKMINIMIZABLE_H__8F38BFB2_7B39_41DB_A979_3A20AD69180D__INCLUDED_)