newton.cpp

来自「数值分析的更多算法」· C++ 代码 · 共 36 行

CPP
36
字号
// s.cpp : Defines the entry point for the console application.
//


#include <math.h>
#include <iostream.h>
#include <iomanip.h>
void main(void)
{
	double x0,x1,f0;
	double f1,s;
	double eps=1e-4;
	double c=1e-2;
     
	int k=0,n=20;
     x0=0.5;
	f0=x0-exp(-x0);
	f1=1+exp(-x0);
	x1=x0-f0/f1;
    s=fabs(x1)>c ? fabs((x0-x1)/x1):fabs(x1-x0);
	while(fabs(x1)>eps&&(fabs(s)>eps)&&(k<=n)
		   &&(fabs(f1)>eps))
	{
		k++;
		x0=x1;
        f0=x0-exp(-x0);
	    f1=1+exp(-x0);
	    x1=x0-f0/f1;
        s=fabs(x1)>c ? fabs((x0-x1)/x1):fabs(x1-x0);
	}
	if((k==n)||(fabs(f1)<=eps))
	{
		cout << "算法失效" << endl;
	}
	cout<<"x1="<<x1<<endl;
}

⌨️ 快捷键说明

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