【问题标题】:coding to find the limit of x^2 c++编码以找到 x^2 c++ 的极限
【发布时间】:2016-03-04 04:41:33
【问题描述】:

无法找出我的程序的问题。由于某种原因,我试图计算边距内的限制,我不认为 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);
}

【问题讨论】:

标签: c++ limit


【解决方案1】:

while 循环的条件是diffapprox &gt; .00001diffapproxfabs(prev - newapprox) 计算得出。 prev 是从 f(x_0 + h) 计算出来的,newapprox 是从 f(x_0 + h/2) 计算出来的,其中 h = 1.0f(x) 是 x^2,x_0 是从用户输入中获得的。

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

因此,while 循环开始的初始条件 fabs(prev - newapprox) &gt; .00001fabs(x_0 + 0.75) &lt;= .00001x_0 在 0.75 的 +/- .00001 范围内时失败。

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 2015-09-02
    • 2010-09-23
    • 2010-09-09
    • 2019-06-08
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多