#include
#include
using namespacestd;
intmain()
{
double x,y,yn,h,temp;
x=0;//对x赋初值
y=1;//对y赋初值
h=0.1;//步长设置为0.1
cout<<setiosflags(ios::left);
cout<<setw(20)<<"y的计算值";
cout<<setw(20)<<"y的理论值";
cout<<setw(20)<<"x的值";
cout<<setw(20)<<"误差"<<endl;
cout<<setw(20)<<y;
cout<<setw(20)<<y;
cout<<setw(20)<<x;
cout<<setw(20)<<0<<endl;
for (int i=0;i<10;i++)
{
temp=y;//每次迭代之前y未变化的值,用于后面的计算
y=y+h(y-2x/y);//使y显化
x+=h;
do
{
yn=y;
y=temp+h(y-(2x/y));
}
while (abs(yn-y)>0.0000001);
cout<<setw(20)<<y;//输出y的新值
cout<<setw(20)<<sqrtf(1+2*x);//计算y的理论值
cout<<setw(20)<<x;//输出x的新值
cout<<setw(20)<<abs(y-sqrtf(1+2x))<<endl*;//计算误差
}
return 0;
}
原文链接: https://www.cnblogs.com/liusuanyatong/p/11259924.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/225027
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!