diedai4.8.cpp

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

CPP
43
字号
// s.cpp : Defines the entry point for the console application.
//
/diedai4.8//

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

⌨️ 快捷键说明

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