threediag.cpp

来自「刚学数值分析」· C++ 代码 · 共 54 行

CPP
54
字号

//
// ThreeDiag.cpp
//

#include "stdafx.h"
#include "ThreeDiag.h"

ThreeDiag::ThreeDiag(int n, double* VectorA, double* VectorB, double* VectorC, double* VectorF)
{
	m_nDimension=	n;

	a = VectorA;
	b = VectorB;
	c = VectorC;
	f = VectorF;
}

ThreeDiag::~ThreeDiag()
{
}

double* ThreeDiag::GetSolution()
{
	int i;

	double*	x = new double[m_nDimension+1];
	double*	y = new double[m_nDimension+1];
	double*	Beta = new double[m_nDimension+1];

	//
	Beta[0] = c[0]/b[0];
	for(i=1; i<=m_nDimension-1; i++)
	{
		Beta[i] = c[i]/(b[i]-a[i]*Beta[i-1]);
	}

	//
	y[0] = f[0]/b[0];
	for(i=1; i<=m_nDimension; i++)
	{
		y[i] = (f[i]-a[i]*y[i-1])/(b[i]-a[i]*Beta[i-1]);
	}

	//
	x[m_nDimension] = y[m_nDimension];
	for(i=m_nDimension-1; i>=0; i--)
	{
		x[i] = y[i] - Beta[i]*x[i+1];
	}

	return x;
}

⌨️ 快捷键说明

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