00001
00074 #ifndef _NewtonRaphson_h
00075 #define _NewtonRaphson_h
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085 #include "../DoubleParameter.h"
00086 #include "../SinglePointLineSearch.h"
00087 #include "../ProblemBase.h"
00088 #include "../UnivariateFunction.h"
00089 #include "../ui/PointLineSearchPanel.h"
00090
00091
00092
00093
00094
00095 class NewtonRaphson
00096 : public SinglePointLineSearch
00097 {
00098 public:
00099 friend class PointLineSearchPanel<NewtonRaphson>;
00100
00101
00102
00103
00106 ~NewtonRaphson(void);
00107
00108
00109
00110
00111
00112
00113
00116 virtual std::auto_ptr<Method> Clone() const;
00117
00118
00121 virtual const wxString& Name() const;
00122
00125 virtual MethodIdType Id() const;
00126
00129 static MethodIdType ClassId();
00130
00131
00132
00133 virtual bool CanHandle(const ProblemBase* pProblem) const;
00134
00135 protected:
00136
00139 NewtonRaphson(void);
00140
00145 NewtonRaphson(const NewtonRaphson& from);
00146
00147 virtual wxString& rName();
00148 private:
00149
00150 virtual std::auto_ptr<Result> Solve(
00151 const UnivariateFunction& function,
00152 const ColumnVector& startingPoint,
00153 bool generateResult)
00154 const throw(OptimizationError);
00155
00158 static wxString mName;
00161 static NewtonRaphson mNewtonRaphson;
00162 };
00163
00164
00165
00166
00167
00168
00169
00170 #endif // _NewtonRaphson_h_