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 flush类输出缓冲剖析
Oct 19 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
php explode函数实例代码
Feb 27 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
PHP 读取和编写 XML
Nov 19 PHP
php检测url是否存在的方法
Apr 14 PHP
php简单生成随机数的方法
Jul 30 PHP
smarty循环嵌套用法示例分析
Jul 19 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 PHP
WAF的正确bypass
Jan 05 PHP
PHP实现创建微信自定义菜单的方法示例
Jul 14 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
ThinkPHP之M方法实例详解
2014/06/20 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
javascript函数库-集合框架
2007/04/27 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
Python采集腾讯新闻实例
2014/07/10 Python
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python实现猜单词小游戏
2020/05/22 Python
Python turtle绘画象棋棋盘
2019/08/21 Python
Python如何实现动态数组
2019/11/02 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
Python如何给函数库增加日志功能
2020/08/04 Python
了解一下python内建模块collections
2020/09/07 Python
单位授权委托书范本
2014/09/26 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
python Polars库的使用简介
2021/04/21 Python
python批量创建变量并赋值操作
2021/06/03 Python
Python异常类型以及处理方法汇总
2021/06/05 Python