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

📄 newton.cpp

📁 数值分析的简单算法VC++实现
💻 CPP
字号:
// Newton.cpp: implementation of the Newton class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Newton.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
void Newton::cal(double DATA[100][2],double var)
{int i;
 setup();
 for(i=0;DATA[i][0]<999999;i++)
 {input(DATA[i][0],DATA[i][1]);}
 calculate();
 cal_val(var);
}


void Newton::setup()              /*初使化变量与自变量数组*/
{int i,j;
 tail_mark=0;
 for(i=0;i<100;i++)
 {autovar[i]=99999999.0;}
 for(i=0;i<100;i++)
	 for(j=0;j<100;j++)
	 {var[i][j]=99999999.0;}
};


bool Newton::input(double temp_autovar,double temp_var)             /*输入变量与自变量的值*/
{int i,j;
 for(i=0;i<=tail_mark;)
 {if(temp_autovar>autovar[i])
     i=i+1;
  else
  if(temp_autovar<autovar[i])
  {for(j=tail_mark;j>=i;j--)
	 {autovar[j+1]=autovar[j];var[j+1][0]=var[j][0];}
      autovar[i]=temp_autovar;
	  var[i][0]=temp_var;
	  tail_mark=tail_mark+1;
	  return(1);
	  break;
  }
  else
      return(0);
 }
 return(1);
};


void Newton::calculate()                       /*计算均差*/
{int i,j;
 for(i=1;i<tail_mark;i++)
	 for(j=i;j<tail_mark;j++)
	 {var[j][i]=(var[j-1][i-1]-var[j][i-1])/(autovar[j-i]-autovar[j]);
	 }
};

double Newton::display(double DATA_QUO[100][100])
{int i,j;
for(i=0;i<tail_mark;i++)
 {for(j=0;j<=i;j++)
   {DATA_QUO[i][j]=var[i][j];}
 }
return result;
};



void Newton::cal_val(double val)
{int i,j;
 double temp_var;
 result=var[0][0];
 for(i=1;var[i][i]<9999999;i++)
 {for(j=0,temp_var=var[i][i];j<i;j++)
    {temp_var=temp_var*(val-autovar[j]);}
  result=result+temp_var;
 }
}

⌨️ 快捷键说明

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