编码以查找 x^2 C++ 的极限
coding to find the limit of x^2 c++
无法找出我的程序的问题。由于某种原因,我正在尝试计算边际内的限制,我认为 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 << "nn The limit exists and has the value" << diffapprox;
}
else
{
cout << "nn The limit does not exist at " << x_0;
}
system("pause");
}
double f(double x_0)
{
return pow(x_0, 2.0);
}
while
循环的条件是 diffapprox > .00001
。 diffapprox
是根据fabs(prev - newapprox)
计算得出的。 prev
是从f(x_0 + h)
计算的,newapprox
是从f(x_0 + h/2)
计算的,其中h = 1.0
、f(x)
是 x^2,x_0是从用户输入中获取的。
由此,我们可以说prev
是(x_0 + 1.0)^2 = x_0^2 + 2(x_0) + 1
,而newapprox
是(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) > .00001
在fabs(x_0 + 0.75) <= .00001
或x_0
在 0.75 的 +/- .00001 范围内时失败。
相关文章:
- C++向量的极限
- QUdpSocket在高频环境中的极限
- 使用 c++ 查找收敛序列的极限
- 梯度幅度的单位和极限是什么
- 即使在C 中越过初始化阵列的极限后,结果也是如此
- C++17 用于初始化模板类的折叠表达式的极限类型
- OpenMP:即使在深度极限的情况下,递归任务也比顺序慢
- 获得变量极限的优雅方法
- 我能在C/C++中得到堆栈的极限吗
- C++中多重继承的极限
- 阿特金筛子在非常高的极限下出现故障
- 编码以查找 x^2 C++ 的极限
- 检查C++中stoi()函数的int极限
- Barnes Hut和递归极限
- 将巨大的用户输入减少到极限?(C++)
- 如何在没有if-else的情况下无限循环或循环到极限