查找X^ 2 C++的极限的编码

查找X^ 2 C++的极限的编码,c++,limit,C++,Limit,无法解决我的程序的问题。由于某种原因,我不认为while循环正在初始化,所以我正在尝试计算余量内的限制。我是个新手。请帮忙。我不知道我做错了什么 #include <iostream> #include <iomanip> #include <cmath> double f(double); using namespace std; void main() { //main program variable declarations do

无法解决我的程序的问题。由于某种原因,我不认为while循环正在初始化,所以我正在尝试计算余量内的限制。我是个新手。请帮忙。我不知道我做错了什么

#include <iostream>
#include <iomanip>
#include <cmath>

double f(double);

using namespace std;

void main()
{
    //main program variable declarations
    double x_0, h, prev, newapprox, diffapprox; double const tol = 0.000001;

    cout << setiosflags(ios::showpoint | ios::fixed) << setprecision(7);

    cout << "\n Enter the value at which the limit will be calculated: ";
    cin >> x_0;

    h = 1;
    prev = f(x_0 + h);

    cout << "\n x0+h" << setw(25) << "f(x0+h)" << endl;
    cout << x_0 + h << setw(25) << prev << endl;

    newapprox = f(x_0 + h/2);
    cout << x_0 + h/2 << setw(25) << newapprox << endl;

    diffapprox = fabs(prev - newapprox);

    while (diffapprox > .00001);
    {
        prev = newapprox;

        cout << "\n x0+h" << setw(25) << "f(x0+h)" << endl;
        cout << x_0 + h << setw(25) << prev << endl;

        newapprox = f(x_0 + h);
        cout << x_0 + h << setw(25) << newapprox << endl;

        diffapprox = fabs(prev - newapprox);

        h /= 2;
    }

        if (fabs(diffapprox) <= 0.00001)
        {
            cout << "\n\n The limit exists and has the value" << diffapprox;
        }
        else
        {
            cout << "\n\n The limit does not exist at " << x_0;
        }


        system("pause");

    }


double f(double x_0)
{
    return pow(x_0, 2.0);
}
while循环的条件是diffapprox>0.00001。diffapprox由fabsprev-newapprox计算得出。prev根据fx_0+h计算,newapprox根据fx_0+h/2计算,其中h=1.0,fx为x^2,x_0通过用户输入获得

由此,我们可以说prev是x_0+1.0^2=x_0^2+2x_0+1,而newapprox是x_0+1.0/2^2=x_0+0.5^2=x_0^2+x_0+0.25。这给出了x_0^2+2x_0+1-x_0^2+x_0+0.25=x_0+0.75的差值


因此,当fabsx_0+0.75调试是编程的一个重要部分时,while循环开始的初始条件fabsprev-newapprox>.00001将失败。你有一个极好的学习机会!使用调试器和/或读取。还有,实际的问题是什么?