php开源嘛
首页 | English | MySql数据库 | Php编程 | 建站杂烩 | 系统服务器 | 资源共享 | 专题 | 才桀网 | 支持论坛
  当前位置:主页>系统服务器>文章内容
Linux脚本开发数学库在PHP中的重要性
来源:网络 作者:本站整理 发布时间:2007-08-17  

Linux脚本开发数学库在PHP中的重要性

简介 phpma.com

  与其它开放源码语言(比如 Perl 和 Python)相比,PHP 社区缺少强有力的工作来开发数学库。造成这种状况的一个原因可能是由于已经存在大量成熟的数学工具,这可能阻碍了社区自行开发 PHP 工具的工作。例如,我曾研究过一个功能强大的工具 S System,它拥有一组令人印象深刻的统计库,专门被设计成用来分析数据集,并且在 1998 年由于其语言设计而获得了 ACM 奖。如果 S 或者其开放源码同类 R 仅仅是一个 exec_shell 调用,那么为何还要麻烦用 PHP 实现相同的统计计算功能呢?有关 S System、它的 ACM 奖或 R 的更多信息,请参阅参考资料。 phpma.com

  难道这不是在浪费开发人员的精力吗?如果开发 PHP 数学库的动机是出自节省开发人员的精力以及使用最好的工具来完成工作,那么 PHP 现在的课题是很有意义的。

  另一方面,出于教学动机可能会鼓励对 PHP 数学库的开发。对于大约 10% 的人来说,数学是个值得探索的有趣课题。对于那些同时还熟练应用 PHP 的人来说,PHP 数学库的开发可以增强数学学习过程,换句话说,不要只阅读有关 T 测试的章节,还要实现一个能计算相应的中间值并用标准格式显示它们的类。

  通过指导和训练,我希望证明开发 PHP 数学库并不是一项很难的任务,它可能代表一项有趣的技术和学习难题。在本文中,我将提供一个 PHP 数学库示例,名为 SimpleLinearRegression,它演示了一个可以用来开发 PHP 数学库的通用方法。让我们从讨论一些通用的原则开始,这些原则指导我开发这个 SimpleLinearRegression 类。

  指导原则 phpma.com

  我使用了六个通用原则来指导 SimpleLinearRegression 类的开发。

  每个分析模型建立一个类。

  使用逆向链接来开发类。

  预计有大量的 getter。

  存储中间结果。 phpma.com

  为详细的 API 制定首选项。

  尽善尽美并非目标。

  让我们更详细地逐条研究这些指导方针。

  每个分析模型建立一个类

  每种主要的分析测试或过程应当有一个名称与测试或过程名相同的 PHP 类,这个类包含了输入函数、计算中间值和汇总值的函数和输出函数(将中间值和汇总值用文本或图形格式全部显示在屏幕上)。

  使用逆向链接来开发类 phpma.com

  在数学编程中,编码的目标通常是分析过程(比如 MultipleRegression、TimeSeries 或 ChiSquared)所希望生成的标准输出值。从解决问题的角度出发,这意味着您可以使用逆向链接来开发数学类的方法。

  例如,汇总输出屏幕显示了一个或多个汇总统计结果。这些汇总统计结果依赖于中间统计结果的计算,这些中间统计结果又可能会涉及到更深一层的中间统计结果,以此类推。这个基于逆向链接的开发方法导出了下一个原则。

  预计有大量的 getter

  数学类的大部分类开发工作都涉及到计算中间值和汇总值。实际上,这意味着,如果您的类包含许多计算中间值和汇总值的 getter 方法,您不应当感到惊讶。

  存储中间结果 phpma.com

  将中间计算结果存储在结果对象内,这样您就可以将中间结果用作后续计算的输入。在 S 语言设计中实施了这一原则。在当前环境下,通过选择实例变量来表示计算得到的中间值和汇总结果,从而实施了该原则。

  为详细的 API 制定首选项 phpma.com

  当为 SimpleLinearRegression 类中的成员函数和实例变量制定命名方案时,我发现:如果我使用较长的名称(类似于 getSumSquaredError 这样的名称,而不是 getYY2)来描述成员函数和实例变量,那么就更容易了解函数的操作内容和变量所代表的意义。

  我没有完全放弃简写名称;但是,当我用简写形式的名称时,我得设法提供注释以完整阐述该名称的含义。我的看法是:高度简写的命名方案在数学编程中很常见,但它们使得理解和证明某个数学例程是否按部就班更为困难,而原本不必造成此种困难。

  尽善尽美并非目标 phpma.com

  这个编码练习的目标不是一定要为 PHP 开发高度优化和严格的数学引擎。在早期阶段,应当强调学习实现意义重大的分析测试,以及解决这方面的难题。

  实例变量:当对统计测试或过程进行建模时,您需要指出声明哪些实例变量。

  实例变量的选择可以通过说明由分析过程生成的中间值和汇总值来确定。每个中间值和汇总值都可以有一个相应的实例变量,将变量的值作为对象属性。

  我采用这样的分析来确定为清单 1 中的 SimpleLinearRegression 类声明哪些变量。可以对MultipleRegression、ANOVA 或 TimeSeries 过程执行类似的分析。 phpma.com

<?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 
   
  } 
  ?> 
  

(阅读次数:
共2页: 上一页 1 [2] 下一页
上一篇:深入探讨PHP中的内存管理问题   下一篇:结合AJAX进行PHP开发之入门
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·Linux配置web服务器全攻略
·Linux系统下Apache服务器设置与
·win中整合配置PHP和MySQL经典教
·Apache日志分析工具--AWStats安
·Apache中httpd.conf文件配置详解
·Linux嵌入式开发环境的简单介绍
·Linux系统下PHP服务器安全配置技
·Apache+Tomcat负载平衡设置方法
·Linux网络基本网络配置方法介绍
·配置Apache服务器并且设置DNS
·Linux系统Apache用户授权和访问
·Apache伪静态html(URL Rewrite)
  相关文章
·基于Linux操作系统的目录服务的
·Linux服务器与网络设备的维护之
·增加Apache最大连接数的方法详细
·Linux系统Apache用户授权和访问
·怎样用IIS或Apache做PHP的服务器
·Apache指南: .htaccess文件使用
·Linux下Apache并发连接数和带宽
·Linux系统下Apache服务器设置与
·Apache重负荷服务器应如何优化
·L.A.M.P 环境配置文档之服务器
·Linux 系统下实现多线程客户/服
·Linux系统下查CPU个数的方法

关于我们 | 本站声明 | 友情连接 | 诚邀加盟 | 网站地图
版权Power by DedeCms   技术支持QQ =>> 罗江游鱼   Jacking  后台登陆
Copyright @ 2007 公司地址:柳州市东环路268号 邮编:545006 电话:15920389818 桂ICP备07006725号