⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 variablestepdoubleintegration.h

📁 用于求解二阶常微分方程的变步长多步积分法
💻 H
字号:
#pragma once

#include <stdlib.h>
#include <limits>
#include <math.h>

using namespace std;

class CVariableStepDoubleIntegration
{
public:
	CVariableStepDoubleIntegration(void);
public:
	~CVariableStepDoubleIntegration(void);

public:
	bool Init(int iEqNums, double *pTime, double dEndTime, double *pInitPos, double *pInitVel);
	bool StartIntegration(int iEqNums, double *pTime, double dEndTime, double *pPos, double *pVel);	
	void _2ndODEs(int iEqNums, double dTime, double *pPos, double *pVel, double *pAcc);


private:
	int m_iMaxIntpNums, m_iIntpNums, m_iLastIntpNums;
	int m_iIntDir, m_iFail;

private:
	double m_dAbsErr, m_dRelErr, m_dEps, m_dAbsEps, m_dRelEps;

	double m_dSTempErr, m_dDTempErr, m_dSErr, m_dDErr;

	double m_dRho, m_dIntStep, m_dIntStepSq, m_dIntpStep, m_dIntpStepSq;

	double m_dIntTime, m_dEndTime;

	double *m_pGammaStars, *m_pLamdaStars;

	double *m_pAcc;
	double *m_pLastPos, *m_pLastVel, *m_pPos2Back;
	double *m_pIntPos, *m_pIntVel;
	
	double *m_pPsi, *m_pPsiN, *m_pPsiNm1;

	double *m_pPhi, *m_pPhiN, *m_pPhiNSave;

	double *m_pSWeight, *m_pDWeight;

	double *m_pIntStepArray; 

	double *m_pAlpha, *m_pBeta;

	double *m_pGCoeff, *m_pGpCoeff, *m_pGIntpCoeff, *m_pGpIntpCoeff;
	
	double *m_pGamma1, *m_pGammaIntp;	

private:
	FILE *m_pStream;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -