美國新冠病毒確診人數統計及預測

之前二月初的時候利用Qt的charts模組、Qt讀取excel表格數據,做了兩個關於病毒感染人數的統計圖。最近幾天美國確診人數不斷新創第一,所以想看下能否有比較貼合的函數來擬合下,然後在結合官方數據看數學模型的效果。

之前的文章鏈接:

新冠肺炎數據圖表化

數據來源:

https://coronavirus.1point3acres.com/

確診人數圖表:

又是我手填的excel表格:

我做的函數模型以及官方公布數據對比。

確診人數受到多方面因素影響,如若不自由、吾寧死… 確診人數自然是比較好預測的。

當然如果像中國這樣,寧可經濟短時間停擺也要減少傷亡,這種就不是函數的自然發展了。

從圖中我們可以看到後期函數擬合效果還不錯,所以預測明天確診人數是215917……

貼上程式湊湊字數:

 ui->setupUi(this);        m_girdLayoutChart = new QGridLayout(this);        m_confirmSeries = new QLineSeries();      m_confirmSeries->setName(tr("確診"));      m_confirmSeries->setPen(QPen(Qt::red, 3));        m_mathFunction = new QLineSeries;      m_mathFunction->setName(tr("函數模型"));      m_mathFunction->setPen(QPen(Qt::green, 3));        m_increaseConfirmSeries = new QLineSeries();      m_increaseConfirmSeries->setName(tr("新增確診"));      m_increaseConfirmSeries->setPen(QPen(Qt::blue, 3));          Document xlsxR("E:\MyQtProject\drawFunctionImage\USA2019-nCov\2019USA-nCov.xlsx");        if ( xlsxR.load() ) // load excel file      {          for(int i=0; i<27;i++)          {              m_mathFunction->append(i+1, pow((i+1),3.7)+ 700*i );     //我自己瞎寫的函數模型,指數函數後期太快,冪函數操作一下效果還好                int confirmRow = i + 3; int confirmCol =  3;     //確診人數              int increaseConfirmRow = i + 3; int increaseConfirmCol =  4;  //新增確診                Cell* confirmCell = xlsxR.cellAt(confirmRow, confirmCol); // get cell pointer.              Cell* increaseConfirmCell = xlsxR.cellAt(increaseConfirmRow, increaseConfirmCol);              if ( confirmCell != nullptr )              {                  QVariant confirmVar = confirmCell->readValue(); // read cell value (number(double), QDateTime, QString ...)                  QVariant increaseConfirmVar = increaseConfirmCell->readValue();                    m_confirmSeries->append(i+1, confirmVar.toInt());                  m_increaseConfirmSeries->append(i+1, increaseConfirmVar.toInt());              }              else              {                  qDebug() << "[debug] cell is not set.";              }          }      }      else      {          qDebug() << "[debug][error] failed to load xlsx file.";      }        QChart *chart = new QChart();  //    chart->legend()->hide();      chart->addSeries(m_confirmSeries);      chart->addSeries(m_increaseConfirmSeries);      chart->addSeries(m_mathFunction);      chart->createDefaultAxes();      chart->setTitle("2019USA-nCov");        QChartView *chartView = new QChartView(chart);      chartView->setRenderHint(QPainter::Antialiasing);        m_girdLayoutChart->addWidget(chartView);

小結:

別忘記今天還是一個特殊的日子—— 81192 !!!

我記錄我來過我存在