C++解说函数的极限【C++解说微积分】

数学基础:

极限的概念:如果有一个函数$f(x)$,若存在一个很小的数$\epsilon>0$和一个很大的数$N>0$,使得当$x>N$时,总会有$f(x)$和$A$的差的绝对值小于$\epsilon $ ,那么可以称函数$f(x)$在$x\rightarrow +\infty$时极限为$A$,记作:$$\lim_{x\rightarrow +\infty} f(x) = A$$

此外还有左极限、有极限的概念,如有需求请自行百度学习。

 

问题模型:

假设某种疾病的感染人数与天数的函数关系为:

$$f(d)=\frac{10^8}{7+3\times10^4\times e^{-d}}$$

现在需要计算以下两个数据:

  1. 计算感染人数到达100万需要的天数
  2. 计算如果不采取措施,最终的感染人数。

 

C++代码:

 1 /**
 2  * @file main.cpp
 3  * @author 禅元天道 chanyuantiadnao@126.com
 4  * @date 2021-11-25 15:47
 5  * @brief C++计算数学中的极限问题(模拟疾病传播情况)。
 6 **/
 7 #include <iostream>
 8 #include <math.h>
 9 
10 /**
11  * @brief 设置一个允许误差值
12 **/
13 const double dTininessVal = 0.000001;
14 
15 /**
16  * @brief 获取函数C(d) = 10^8/(7+3*10^4*e^(-d))的计算结果
17  * @param double d 函数中d的值
18  * @return 函数的计算结果
19 **/
20 double getFuncValue(double d)
21 {
22     return pow(10, 8) / (7 + 3 * pow(10, 4) * exp(-d));
23 }
24 
25 int main(void) 
26 {
27     int nD = 0;
28     double dl = getFuncValue(nD);
29     //判断人数没有达到100万人,则一直循环
30     while (dl < 1000000)
31     {
32         nD++;
33         dl = getFuncValue(nD);
34     }
35     std::cout << "达到100万人次需要" << nD << "天。" << std::endl;
36 
37     //前一天的人数
38     double dlPre = 0;
39     //当天的人数
40     double dlNow = 0;
41     dlNow = dl;
42     while (dlNow - dlPre > dTininessVal)
43     {
44         dlPre = dlNow;
45         nD++;
46         dlNow = getFuncValue(nD);
47     }
48     std::cout << "达到极限的人数:" << dlNow << std::endl;
49     std::cout << "达到极限的天数:" << nD << std::endl;
50     return 0;
51 }

 

运行结果:

 

posted @ 2021-11-25 16:02  禅元天道  阅读(876)  评论(0编辑  收藏  举报