Marquardt.h

00001 
00086 #ifndef _Marquardt_h
00087 #define _Marquardt_h
00088 
00089 // SYSTEM INCLUDES
00090 //
00091 
00092 // PROJECT INCLUDES
00093 //
00094 
00095 // LOCAL INCLUDES
00096 //
00097 #include "../DoubleParameter.h"
00098 #include "../FunctionBase.h"
00099 #include "../Method.h"
00100 #include "../ProblemBase.h"
00101 #include "../StandardStopCondition.h"
00102 #include "../UnconstrainedProblem.h"
00103 
00104 // FORWARD REFERENCES
00105 //
00106 
00107 
00108 class Marquardt
00109     : public Method
00110 {
00111 public:
00112 
00113     friend class MarquardtPanel;
00114 
00115 // LIFECYCLE
00116 
00119     ~Marquardt(void);
00120 
00121 // OPERATORS
00122 
00123 // OPERATIONS
00124 
00127     virtual std::auto_ptr<Method>   Clone() const;
00128 
00129     virtual void        UpdateStartingConditions(const Result* result) const;
00130 
00131     virtual void                    ResetStartingConditions() const;
00132 
00133 // ACCESS
00134 
00137     virtual const wxString&         Name() const;
00138 
00141     virtual MethodIdType            Id() const;
00142 
00145     static MethodIdType             ClassId();
00146 
00147     virtual wxString                ToString(bool standalone = true) const;
00148 
00149 // INQUIRY
00150 
00151     virtual bool                    CanHandle(const ProblemBase* pProblem)
00152                                                                         const;
00153 
00154     virtual StopConditions          AllowedStopConditions() const;
00155 
00156 protected:
00157 
00160     Marquardt(void);
00161 
00166     Marquardt(const Marquardt& from);
00167 
00170     DoubleParameter mInitialLambda;
00171 
00174     mutable ColumnVector                        mStartingPoint;
00175 
00176     ColumnVector                                mInitialStartingPoint;
00177 
00180     CountedPtr<const StandardStopCondition>     mcpStopCondition;
00181 
00182     virtual wxString&               rName();
00183 private:
00184 
00185     virtual std::auto_ptr<Result> Optimize(const ProblemBase& problem) const
00186         throw(OptimizationError);
00187 
00188 
00191     static wxString   mName;
00194     static Marquardt        mMarquardt;
00195 
00196 };
00197 
00198 // INLINE METHODS
00199 //
00200 
00201 // EXTERNAL REFERENCES
00202 //
00203 
00204 #endif // _Marquardt_h

Wygenerowano Fri Sep 29 21:04:47 2006 dla EduOptim2 programem  doxygen 1.4.6