Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
24
Добавлен:
02.05.2014
Размер:
2.05 Кб
Скачать
#pragma once

#include "stdafx.h"

#define EPS     1.0e-14
#define X_EPS1   0.0003

// CFindThread

class CFindThread : public CWinThread
{
	DECLARE_DYNCREATE(CFindThread)

	// Attributes
public:
	HWND m_hParentWnd;

protected:

	int nStepsF;
	int nStepsF1;
	int nSteps;
	CPtArray m_Path;
	CLinesArray m_Lines;

	double X_START[N_ARGS    ];
	double PARAMS [N_ARGS * 2];
	double X_EPS3;

	// Operations
public:

	void Lock();
	void Unlock();

	CDPoint GetResult();
	int GetSteps();
	int GetFSteps();
	int GetF1Steps();
	CPtArray GetPath();
	CLinesArray GetLines();

	// Implementation
protected:
	CFindThread();           // protected constructor used by dynamic creation

	CCriticalSection m_CS;
	BOOL m_bWorking;
	CDPoint m_Result;

	double   f (CDVector x);				// define function y = f(X)
	double   f1(int i, CDVector x);			// define function y = f1_xi(X)
	CDVector f1(CDVector x);				// define function y = f1(X)

	double module(CDVector x);				// return || x ||


	void PrepareLines(CDVector min_x);


	// Методы
	double  fmin (CDVector xk, double a, CDVector f1xk);
	double  fmin2(CDVector xk, CDVector dx, double a);

	double  find_min (CDVector xk, CDVector f1xk, double left, double right);
	double  find_min2(CDVector xk, CDVector dx, double left, double right);
	
	CDPoint find1(double a = 0.01);
	CDPoint find2(double a = 10, double d = 0.01);
	CDPoint find3(double a = 10);
	CDPoint find4(double a = 0.02);
	CDPoint find5(double a = 10);
	CDPoint find6(double d1 = 0.1, double d2 = 0.5, double a1 = 0.01, double a2 = 0.02);
	CDPoint find7(double a = 0.01, double l = 10);
	CDPoint find8(double a = 0.01, double l = 10);
	CDPoint find9(double h = 10, double l = 10);
	CDPoint find10(double h = 10, double l = 10);
	CDPoint find11(double l = 2);
	CDPoint find12();

	virtual ~CFindThread();
public:
	virtual BOOL InitInstance();
	virtual int ExitInstance();

protected:
	afx_msg void Calculate(WPARAM wParam, LPARAM lParam);
	DECLARE_MESSAGE_MAP()
};
Соседние файлы в папке MOLab2