亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Linux > 正文

Linux腳本開發數學庫在PHP中的重要性

2024-08-28 00:23:41
字體:
來源:轉載
供稿:網友
國內最大的酷站演示中心!

  簡介

  與其它開放源碼語言(比如 perl 和 python)相比,php 社區缺少強有力的工作來開發數學庫。造成這種狀況的一個原因可能是由于已經存在大量成熟的數學工具,這可能阻礙了社區自行開發 php 工具的工作。例如,我曾研究過一個功能強大的工具 s system,它擁有一組令人印象深刻的統計庫,專門被設計成用來分析數據集,并且在 1998 年由于其語言設計而獲得了 acm 獎。如果 s 或者其開放源碼同類 r 僅僅是一個 exec_shell 調用,那么為何還要麻煩用 php 實現相同的統計計算功能呢?有關 s system、它的 acm 獎或 r 的更多信息,請參閱參考資料。

  難道這不是在浪費開發人員的精力嗎?如果開發 php 數學庫的動機是出自節省開發人員的精力以及使用最好的工具來完成工作,那么 php 現在的課題是很有意義的。

  另一方面,出于教學動機可能會鼓勵對 php 數學庫的開發。對于大約 10% 的人來說,數學是個值得探索的有趣課題。對于那些同時還熟練應用 php 的人來說,php 數學庫的開發可以增強數學學習過程,換句話說,不要只閱讀有關 t 測試的章節,還要實現一個能計算相應的中間值并用標準格式顯示它們的類。

  通過指導和訓練,我希望證明開發 php 數學庫并不是一項很難的任務,它可能代表一項有趣的技術和學習難題。在本文中,我將提供一個 php 數學庫示例,名為 simplelinearregression,它演示了一個可以用來開發 php 數學庫的通用方法。讓我們從討論一些通用的原則開始,這些原則指導我開發這個 simplelinearregression 類。

  指導原則

  我使用了六個通用原則來指導 simplelinearregression 類的開發。

  每個分析模型建立一個類。

  使用逆向鏈接來開發類。

  預計有大量的 getter。

  存儲中間結果。

  為詳細的 api 制定首選項。

  盡善盡美并非目標。

  讓我們更詳細地逐條研究這些指導方針。

  每個分析模型建立一個類

  每種主要的分析測試或過程應當有一個名稱與測試或過程名相同的 php 類,這個類包含了輸入函數、計算中間值和匯總值的函數和輸出函數(將中間值和匯總值用文本或圖形格式全部顯示在屏幕上)。

  使用逆向鏈接來開發類

  在數學編程中,編碼的目標通常是分析過程(比如 multipleregression、timeseries 或 chisquared)所希望生成的標準輸出值。從解決問題的角度出發,這意味著您可以使用逆向鏈接來開發數學類的方法。

  例如,匯總輸出屏幕顯示了一個或多個匯總統計結果。這些匯總統計結果依賴于中間統計結果的計算,這些中間統計結果又可能會涉及到更深一層的中間統計結果,以此類推。這個基于逆向鏈接的開發方法導出了下一個原則。

  預計有大量的 getter

  數學類的大部分類開發工作都涉及到計算中間值和匯總值。實際上,這意味著,如果您的類包含許多計算中間值和匯總值的 getter 方法,您不應當感到驚訝。

  存儲中間結果

  將中間計算結果存儲在結果對象內,這樣您就可以將中間結果用作后續計算的輸入。在 s 語言設計中實施了這一原則。在當前環境下,通過選擇實例變量來表示計算得到的中間值和匯總結果,從而實施了該原則。

  為詳細的 api 制定首選項

  當為 simplelinearregression 類中的成員函數和實例變量制定命名方案時,我發現:如果我使用較長的名稱(類似于 getsumsquarederror 這樣的名稱,而不是 getyy2)來描述成員函數和實例變量,那么就更容易了解函數的操作內容和變量所代表的意義。

  我沒有完全放棄簡寫名稱;但是,當我用簡寫形式的名稱時,我得設法提供注釋以完整闡述該名稱的含義。我的看法是:高度簡寫的命名方案在數學編程中很常見,但它們使得理解和證明某個數學例程是否按部就班更為困難,而原本不必造成此種困難。

  盡善盡美并非目標

  這個編碼練習的目標不是一定要為 php 開發高度優化和嚴格的數學引擎。在早期階段,應當強調學習實現意義重大的分析測試,以及解決這方面的難題。

  實例變量:當對統計測試或過程進行建模時,您需要指出聲明哪些實例變量。

  實例變量的選擇可以通過說明由分析過程生成的中間值和匯總值來確定。每個中間值和匯總值都可以有一個相應的實例變量,將變量的值作為對象屬性。

  我采用這樣的分析來確定為清單 1 中的 simplelinearregression 類聲明哪些變量??梢詫ultipleregression、anova 或 timeseries 過程執行類似的分析。

  

<?php      // copyright 2003, paul meagher   // distributed under gpl      class simplelinearregression {      var $n;   var $x = array();   var $y = array();   var $confint;   var $alpha;   var $xmean;   var $ymean;   var $sumxx;   var $sumxy;   var $sumyy;   var $slope;   var $yint;   var $predictedy  = array();   var $error    = array();   var $squarederror = array();   var $totalerror;   var $sumerror;   var $sumsquarederror;   var $errorvariance;   var $stderr;   var $slopestderr;   var $slopeval;  // t value of slope   var $yintstderr;   var $yinttval;  // t value for y intercept   var $r;   var $rsquared;   var $df;     // degrees of freedom   var $slopeprob; // probability of slope estimate   var $yintprob;  // probability of y intercept estimate   var $alphatval; // t value for given alpha setting   var $confintofslope;      var $rpath = "/usr/local/bin/r"; // your path here      var $format = "%01.2f"; // used for formatting output      }   ?>   

  

清單 1. simplelinearregression 類的實例變量

  構造函數

  simplelinearregression 類的構造函數方法接受一個 x 和一個 y 向量,每個向量都有相同數量的值。您還可以為您預計的 y 值設置一個缺省為 95% 的置信區間(confidence interval)。

  構造函數方法從驗證數據形式是否適合于處理開始。一旦輸入向量通過了“大小相等”和“值大于 1”測試,就執行算法的核心部分。

  執行這項任務涉及到通過一系列 getter 方法計算統計過程的中間值和匯總值。將每個方法調用的返回值賦給該類的一個實例變量。用這種方法存儲計算結果確保了前后鏈接的計算中的調用例程可以使用中間值和匯總值。還可以通過調用該類的輸出方法來顯示這些結果,如清單 2 所描述的那樣。

  

<?php      // copyright 2003, paul meagher   // distributed under gpl      function simplelinearregression($x, $y, $confidenceinterval="95") {      $numx = count($x);   $numy = count($y);      if ($numx != $numy) {   die("error: size of x and y vectors must be the same.");      }   if ($numx <= 1) {   die("error: size of input array must be at least 2.");   }      $this->n        = $numx;   $this->x        = $x;   $this->y        = $y;      $this->confint     = $confidenceinterval;   $this->alpha      = (1 + ($this->confint / 100) ) / 2;      $this->xmean      = $this->getmean($this->x);   $this->ymean      = $this->getmean($this->y);   $this->sumxx      = $this->getsumxx();   $this->sumyy      = $this->getsumyy();   $this->sumxy      = $this->getsumxy();   $this->slope      = $this->getslope();   $this->yint      = $this->getyint();   $this->predictedy   = $this->getpredictedy();   $this->error      = $this->geterror();   $this->squarederror  = $this->getsquarederror();   $this->sumerror    = $this->getsumerror();   $this->totalerror   = $this->gettotalerror();   $this->sumsquarederror = $this->getsumsquarederror();   $this->errorvariance  = $this->geterrorvariance();   $this->stderr     = $this->getstderr();   $this->slopestderr   = $this->getslopestderr();   $this->yintstderr   = $this->getyintstderr();   $this->slopetval    = $this->getslopetval();   $this->yinttval    = $this->getyinttval();   $this->r        = $this->getr();   $this->rsquared    = $this->getrsquared();   $this->df       = $this->getdf();   $this->slopeprob    = $this->getstudentprob($this->slopetval, $this->df);   $this->yintprob    = $this->getstudentprob($this->yinttval, $this->df);   $this->alphatval    = $this->getinversestudentprob($this->alpha, $this->df);   $this->confintofslope = $this->getconfintofslope();      return true;   }   ?>

  

清單 2. 調用類輸出方法
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产盗摄xxxx视频xxx69| 91在线观看免费高清完整版在线观看| 久久色免费在线视频| 国模精品视频一区二区| 日韩欧美视频一区二区三区| 久久久国产一区二区三区| 国产网站欧美日韩免费精品在线观看| 97婷婷大伊香蕉精品视频| 日本最新高清不卡中文字幕| 亚洲成人久久久| 久久久久国产精品免费网站| 欧美性xxxxxx| 日产日韩在线亚洲欧美| 国产精品久久久久久久久久99| 狠狠色香婷婷久久亚洲精品| 久久色免费在线视频| 免费91麻豆精品国产自产在线观看| 九九热这里只有在线精品视| 欧美精品免费在线观看| 欧美高清自拍一区| 成人天堂噜噜噜| 国产精品视频999| 欧美成人精品激情在线观看| 亚洲综合自拍一区| 亚洲色图35p| 国产69精品99久久久久久宅男| 亚洲国产天堂久久国产91| 成人黄色中文字幕| 91美女福利视频高清| 高潮白浆女日韩av免费看| 成人性生交大片免费观看嘿嘿视频| 欧美壮男野外gaytube| 亚洲精品一区二区在线| 日韩欧美精品网址| 久久不射电影网| 九九热精品在线| 欧美在线视频免费播放| 色多多国产成人永久免费网站| 精品国产1区2区| 国产精品成人免费视频| 九九热精品视频在线播放| 亚洲欧美日韩在线高清直播| 日韩天堂在线视频| 成人综合国产精品| 日韩欧美在线免费观看| 精品国产区一区二区三区在线观看| 欧美日韩国产影院| 91精品视频大全| 影音先锋日韩有码| 精品久久久久久| 九九综合九九综合| 国产精品久久久久福利| 欧美日韩不卡合集视频| 日韩中文字幕视频在线| 亚洲在线视频福利| 91精品国产高清自在线看超| 久久久久国产精品免费| 国产精品av免费在线观看| 亚洲激情视频在线| www国产精品视频| 38少妇精品导航| 国模私拍一区二区三区| 精品国产成人av| 亚洲高清久久网| 国产日韩在线观看av| 欧美电影《睫毛膏》| 国产精品欧美在线| 91精品91久久久久久| 91亚洲永久免费精品| 欧美一区二区三区精品电影| 日本午夜人人精品| 欧美日韩在线免费观看| 日韩中文字幕第一页| 亚洲男人av在线| 久久久久久91香蕉国产| 日韩一区二区三区国产| 亚洲国产欧美在线成人app| 伊人伊成久久人综合网站| 在线观看视频99| 久久视频精品在线| 国产精品久久婷婷六月丁香| 日韩电影中文字幕| 国产情人节一区| 欧美综合一区第一页| 91av在线视频观看| 成人在线精品视频| 国产欧美一区二区三区久久| 最好看的2019的中文字幕视频| 欧美激情精品久久久久久免费印度| 97免费在线视频| 俺去亚洲欧洲欧美日韩| 欧美肥老妇视频| 欧美性猛交xxxxx免费看| 欧美激情在线观看| 精品欧美国产一区二区三区| 久久久视频免费观看| 亚洲综合日韩在线| 亚洲国产一区自拍| 日韩在线不卡视频| 国产有码一区二区| 久久综合免费视频影院| 亚洲欧美国产精品va在线观看| 国产精品久久久久影院日本| 日韩午夜在线视频| 亚洲美女av在线| 中文字幕久热精品在线视频| 亚洲精品国产拍免费91在线| 91在线高清免费观看| 国产精品美乳一区二区免费| 日韩激情视频在线播放| 在线观看欧美日韩| 日韩精品免费电影| 国产精品私拍pans大尺度在线| 久久精品视频免费播放| 91在线精品视频| 欧美一区二区大胆人体摄影专业网站| 日韩一级裸体免费视频| 亚洲аv电影天堂网| 久久久成人av| 日韩美女免费视频| 欧美乱大交xxxxx另类电影| 欧美福利视频在线| 亚洲的天堂在线中文字幕| 激情久久av一区av二区av三区| 亚洲成人亚洲激情| 欧美与欧洲交xxxx免费观看| 2019日本中文字幕| 欧美成人第一页| 永久免费毛片在线播放不卡| 亚洲精品免费网站| 国产精品视频一区二区高潮| 一本一本久久a久久精品牛牛影视| 一区二区三区亚洲| 91国语精品自产拍在线观看性色| 欧美激情在线狂野欧美精品| 日韩一级裸体免费视频| 97视频在线观看免费高清完整版在线观看| 日韩亚洲欧美成人| 俺也去精品视频在线观看| 国产成人91久久精品| 国产精品99免视看9| 久久久亚洲精品视频| 亚洲毛片在线看| 欧美性猛交xxxx| 成人激情视频在线观看| 国产精品久久不能| 欧美精品videosex极品1| 欧美激情欧美狂野欧美精品| 亚洲色图17p| 亚洲自拍欧美另类| 日韩精品久久久久久福利| 日韩精品在线免费播放| 亚洲精品一区在线观看香蕉| 97在线视频免费播放| 国产香蕉97碰碰久久人人| 久久综合九色九九| 91在线观看免费观看| 亚洲欧美自拍一区| 欧美中在线观看| 综合国产在线观看| 国产精品一区二区在线| 国产日韩欧美日韩| 黄色一区二区在线观看| 成人激情综合网|