牛顿下山法
来源:互联网 发布:小程序模板源码 编辑:程序博客网 时间:2024/04/30 16:50
#include ‘iostream.h’
#include 'cmath.h'
double fuc(double x)
{
double y;
y=x*x*x-x-1;
return y;
}
double fu(double x)
{
double y;
y=3*x*x-1;
return y;
}
int f()
{
double x0,x1,e;
int N,M;//N是迭代最大次数,M是下山最大次数
cout<<"输入数据:"<<endl;
cout<<" x0=";
cin>>x0;
cout<<" e=";
cin>>e;
cout<<" N=";
cin>>N;
cout<<" M=";
cin>>M;
int i=0,k=1;//k记录迭代次数,i记录下山次数
for(k=1;k<=N;)
{
if(fu(x0)==0)
cout<<"error"<<endl;
else
{
double h=1;//h为下山因子
for(i=0;i<M;)
{
x1=x0-h*fuc(x0)/fu(x0);
if(fabs(fuc(x1))<fabs(fuc(x0)))
{
cout<<"x"<<i<<"="<<x0<<" h="<<h<<endl;
i++;
h=h*0.5;
//continue;
}
else
break;
}
if(i>=M)
{
cout<<"请重新输入x0"<<endl;
f();
}
if(fabs(x1-x0)<e)
{
cout<<"x="<<x1<<endl;
break;
}
else
{
k++;
x0=x1;
//continue;
}
}
}
if(k>N)
cout<<"failure"<<endl;
return 0;
}
int main()
{
f();
return 0;
}
为什么他运行的时候只计算一步结果就不再变了,就算不变的话也应该因为精度问题跳出结束的呀?求指点
- 牛顿下山法
- 二分法+牛顿下山法
- 牛顿下山法
- soledede--牛顿下山法
- 牛顿下山法
- 牛顿下山法
- 牛顿下山法C++实现
- 牛顿法及其下山法+C代码
- 牛顿法及牛顿下山法求零点
- 牛顿迭代、牛顿下山
- 牛顿下山法求解非线性方程(组)(C实现)
- newton下山法
- 牛顿法
- 牛顿法
- 牛顿法
- 牛顿法
- 牛顿法
- 牛顿法
- 唐僧在如来面前吐真言
- mount挂载cdrom
- 软件攻城师面试题
- 河海大学厕所上吊自杀 为情所困再发2起命案
- Silverlight 2.5D RPG游戏技巧与特效处理:(十八)开场卷轴与动态窗口
- 牛顿下山法
- J2EE方向值得浏览的精华网页
- SVN安装(by Jack)
- 关于C#调用存储过程,带输出参数,存储过程
- Silverlight中 非UI线程更新UI 的几种方法
- 那年,西冲
- 排序算法的发现
- Android OpenGL Gallery Cover Flow
- 测试一个e的大数幂级