📄 numanalysis.cpp
字号:
// NumAnalysis.cpp: implementation of the NumAnalysis class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "083007_NA.h"
#include "NumAnalysis.h"
#include "math.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
NumAnalysis::NumAnalysis()
{
}
NumAnalysis::~NumAnalysis()
{
}
float NumAnalysis::Newton(int A,int B, float C, double D)
{
float x1, x2;//x1为迭代初值;x2为迭代结果
double f,f1;
double w;//误差
int i=0;
x1=C;
w=1.000;
while(w>D)
{
if(i<100){
f=pow(x1,A)+exp(-pow(x1,B))*cos(x1);
f1=A*pow(x1,A-1)-exp(-pow(x1,B))*(B*(pow(x1,B-1)+sin(x1)));
x2= (float) x1-f/f1;
w= fabs(x2-x1);
x1=x2;
i++;
NL=i;
}
else
{
return 100;
}
}
return x2;
}
float NumAnalysis::newton(float x0)
{
double x1, x2;//x1为迭代初值;x2为迭代结果
double f,f1;
double w;//误差
int i=0;
x1=x0;
w=1.000;
while(w>0.00005)
{
if(i<100){
f=pow(x1,3)/3-x1;
f1=pow(x1,2)-1.0;
x2= (double) x1-f/f1;
w= fabs(x2-x1);
x1=x2;
i++;
NL=i;
}
else
{
return 100;
}
}
return x2;
}
float NumAnalysis::Shoulian(float s, float D)
{
float x1, x2;//x1为迭代初值;x2为迭代结果
double f,f1;
double w;//误差
int i=0;
x1=s;
w=1.000;
while(w>D)
{
if(i<100){
f=pow(x1,3)/3-x1;
f1=pow(x1,2)-1;
x2= (float) x1-f/f1;
w= fabs(x2-x1);
x1=x2;
i++;
NL=i;
}
else
{
return 100;
}
}
return x2;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -