#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double x, y, h; //,x为对应的每一步x的值,其中y为对应的每一步y的值
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++)
{
y = y + h*(y - (2 * x / y)); //迭代得到y的新值
cout << setw(20) << y; //输出y的新值
x += h; //迭代得到最新的x值
cout << setw(20) << sqrtf(1 + 2 * x); //计算y的理论值
cout << setw(20) << x; //输出x的新值
cout << setw(20) << y - sqrtf(1 + 2 * x) << endl; //计算误差
}
return 0;
}
运行结果: