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 }

 

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM