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

📄 newtoninterpolate.h

📁 这是牛顿插值的算法…… 是用于数值计算的 是很不错的 大家可以借鉴一下
💻 H
字号:
#pragma once

#include <afxtempl.h>
class NewtonInterpolate
{
private:
	int m_nNum;  
	CArray<double, double&> m_pdNodeX, m_pdNodeY;
	CArray<double, double&> m_pdDeviationDiagonal; //f[x0], f[x0, x1], f[x0, x1, x2], f[x0, x1, x2, x3]
	CArray<double, double&> m_pdDeviationLstLine;  //e.g let n=3 then f[x3], f[x2, x3], f[x1, x2, x3], f[x0, x1, x2, x3]

public:
	//构造一个空对象
	NewtonInterpolate(void);
public:
	~NewtonInterpolate(void);
public:
	//打印多项式系数
	void PrintPolynomial();
	
	//增加一个插值节点,阶数为degree, y记录函数值及各阶导数的首地址
	BOOL AddNode(int degree, double x, double *y);
	double Evaluation(double x);

	//创建一个插值多项式, 在n个插值点上仅有函数值约束,而没有导数约束。
	NewtonInterpolate(int n , double x[], double y[]);

	//创建一个插值多项式, 在n个插值点上既有函数值约束,又有导数约束。
	//degree[i]指定在x[i]处约束的个数
	//y[i]是指向x[i]处的函数值、导数值的指针
	NewtonInterpolate(int n, int degree[], double x[], double *y[]);
	
	//计算均差
	void CalculateDeviation(void);
};

⌨️ 快捷键说明

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