PHP写的求多项式导数的函数代码


Posted in PHP onJuly 04, 2012
<?php 
function getDerivativeByFormulaAndXDATA($formula, $x_data){ 
$xArray = explode("+", $formula); 
$Derivative = 0; 
foreach ($xArray as $x_record) { 
$tmpArray = explode("x^", $x_record); 
if(count($tmpArray) == 2){ 
$coefficient = $tmpArray[0]==""?1:$tmpArray[0]; 
$exp = $tmpArray[1]; 
} 
//constant 
else { 
$coefficient = $tmpArray[0]; 
$exp = 0; 
} 
$Derivative += $coefficient*$exp*pow($x_data,$exp-1); 
} 
return $Derivative; 
} 
function getValueByFormulaAndXDATA($formula, $x_data){ 
$xArray = explode("+", $formula); 
$y_data = 0; 
foreach ($xArray as $x_record) { 
$tmpArray = explode("x^", $x_record); 
if(count($tmpArray) == 2){ 
$coefficient = $tmpArray[0]==""?1:$tmpArray[0]; 
$exp = $tmpArray[1]; 
} 
//constant 
else { 
$coefficient = $tmpArray[0]; 
$exp = 0; 
} 
$y_data += $coefficient*pow($x_data,$exp); 
} 
return $y_data; 
} 
function getMaxDerivativeByFormulaAndXDATAS($formula, $x_datas, &$matchs){ 
$derivatives = array(); 
$max_derivative = 0; 
foreach ($x_datas as $x_data) { 
$derivative = getDerivativeByFormulaAndXDATA($formula, $x_data); 
$derivatives[$x_data] = $derivative; 
$max_derivative = $max_derivative>=abs($derivative)?$max_derivative:abs($derivative); 
//printf("x=%f, derivative=%f \n",$x_data, $derivative); 
} 
$matchs = array(); 
foreach ($derivatives as $x_data=>$derivative) { 
if(abs($derivative) == $max_derivative){ 
$matchs[] = $x_data; 
} 
} 
printf("max derivative=%f\n",$max_derivative); 
foreach ($matchs as $x_match) { 
printf(" derivative=%f when x=%f\n",$derivatives[$x_match], $x_match); 
} 
} 
//notice the format of formula: ax^b if b=0 could omit except coefficient a, if a=1 could omit coefficient 
$formula = "x^2+2x^1+1"; 
print "The formula is $formula \n"; 
//printf("Derivative of 2 is %f \n",getDerivativeByFormulaAndXDATA($formula, 3.2)); 
//print getValueByFormulaAndXDATA($formula, 3.2)."\n"; 
$sampleData = array(-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10,11,12); 
foreach ($sampleData as $x_data) { 
$str.=$x_data.", "; 
} 
print "sample x values: $str \n"; 
getMaxDerivativeByFormulaAndXDATAS($formula, $sampleData, $matchs)."\n"; 
?>

the output will be:
sample x values: -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
max derivative=26.000000
derivative=26.000000 when x=12.000000
PHP 相关文章推荐
php email邮箱正则
Oct 08 PHP
php 动态多文件上传
Jan 18 PHP
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
php替换超长文本中的特殊字符的函数代码
May 22 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
简单的php文件上传(实例)
Oct 27 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
php操作xml入门之xml基本介绍及xml标签元素
Jan 23 PHP
PHP二分查找算法示例【递归与非递归方法】
Sep 29 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
php中禁止单个IP与ip段访问的代码小结
Jul 04 #PHP
提高php运行速度的一些小技巧分享
Jul 03 #PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
Jul 02 #PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
Jul 01 #PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 #PHP
php下载文件的代码示例
Jun 29 #PHP
PHP sprintf() 函数的应用(定义和用法)
Jun 29 #PHP
You might like
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
2016/03/21 PHP
Ruffy javascript 学习笔记
2009/11/30 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
Reactjs实现通用分页组件的实例代码
2017/01/19 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
JS实现换肤功能的方法实例详解
2019/01/30 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
Python下使用Psyco模块优化运行速度
2015/04/05 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
json跨域调用python的方法详解
2017/01/11 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
利用Python yagmail三行代码实现发送邮件
2018/05/11 Python
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
上海微创软件面试题
2012/06/14 面试题
网络专业学生个人的自我评价
2013/12/16 职场文书
测控技术与仪器个人求职信范文
2013/12/30 职场文书
高一历史教学反思
2014/01/13 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
建国大业观后感600字
2015/06/01 职场文书