
Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы2 / MOLab2 / MOLab2 / FindThread
.h#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