gpt4 book ai didi

c++ - Dev C++ 问题中的不动点迭代

转载 作者:行者123 更新时间:2023-11-30 05:29:26 25 4
gpt4 key购买 nike

在此代码方面需要一些帮助。我一直在寻找代码是否有错误,因为cos x - x的近似解是-1.57,而不是0.739。谢谢

double f(double x)
{
double y;
y = cos(x) - x;
return y;
}

int main()
{
double p,p0;
int i=1,N;
cout<<"p0 = ";
cin>>p0;
cout<<"N = ";
cin>>N;
while(i <= N)
{
p = f(p0);
if(fabs(p-p0) < eps)
{
cout<<p<<endl;
break;
}
cout<<"Iteration "<<i<<": p = "<<p<<endl;
i++;
p0 = p;
cout<<"The solution is "<<p<<endl;
if(i>N)
{
cout<<"Solution not found (method diverges)"<<endl;;
break;
}
}
cout<<"The approximated solution is x = "<<p<<" in the iteration "<<i-1<<endl;
system("PAUSE");
return 0;
}

感谢您的帮助!

最佳答案

简单迭代的方法是代入x = F(x)。对于你的方程 x = cos(x)。

Ideone

#include <iostream>
#include <cmath>
using namespace std;

double f(double x)
{
return cos(x);
}

int main()
{
double p,p0=1,eps = 0.001;
int i=1,N=1000;

while(i <= N)
{
p = f(p0);
if(fabs(p-p0) < eps)
{
cout<<p<<endl;
break;
}
cout<<"Iteration "<<i<<": p = "<<p<<endl;
i++;
p0 = p;
cout<<"The solution is "<<p<<endl;
if(i>N)
{
cout<<"Solution not found (method diverges)"<<endl;;
break;
}
}
cout<<"The approximated solution is x = "<<p<<" in the iteration "<<i-1<<endl;

return 0;
}

关于c++ - Dev C++ 问题中的不动点迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36389626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com