牛顿下山.cpp
来自「这个可以很清楚的计算一些复杂的问题,很好的一中算法」· C++ 代码 · 共 79 行
CPP
79 行
#include"iostream.h"
#include"conio.h"
#include"math.h"
#define f (x*x*x-x-1)/(3*x*x-1)
#define g x*x*x-x-1
#define m 10
#define n 8
#define e 0.00001
void main()
{
int i=0,k=0;
float a=0.6,t=1;
float b,c,d,x;
x=a;
c=g;
b=a-t*f;
x=b;
//cout<<b<<endl;
d=g;
// cout<<fabs(d)<<" "<<fabs(c)<<endl;
while(fabs(d)>fabs(c))
{
x=a;
c=g;
t=t/2;
b=a-t*f;
x=b;
d=g;
i=i+1;
cout<<t<<" "<<endl;
cout<<d<<" "<<endl;
if(i>=m)
{
cout<<"重新选择初值a"<<endl;
d=0;
c=1;
k=n+1;
}
}
//cout<<fabs(b-a)<<endl;
while(k<=n)
{
x=b;
c=g;
t=1;
b=a-t*f;
x=b;
d=g;
cout<<d<<" ";
if(k>=n)
cout<<"迭代失败"<<endl;
if(fabs(b-a)<e)
{
cout<<"函数的解为"<<b<<endl;
k=n+1;
}
else
{
k=k+1;
a=b;
}
}
// cout<<fabs(b-a)<<" "<<k<<endl;
getch();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?