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 include的妙用,实现路径加密
Jul 29 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
php采用ajax数据提交post与post常见方法总结
Nov 10 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 PHP
php使用Cookie控制访问授权的方法
Jan 21 PHP
PHP实现事件机制的方法
Jul 10 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
Netbeans 8.2与PHP相关的新特性介绍
Oct 08 PHP
php数组指针操作详解
Feb 14 PHP
Ubuntu上安装yaf扩展的方法
Jan 29 PHP
PHP字符串中抽取子串操作实例分析
Jun 22 PHP
Laravel框架验证码类用法实例分析
Sep 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
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
Yii2增删改查之查询 where参数详细介绍
2016/08/08 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
JQuery 学习笔记 选择器之二
2009/07/23 Javascript
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
vue中引用阿里字体图标的方法
2018/02/10 Javascript
JavaScript实现左右滚动电影画布
2020/02/06 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
python中enumerate函数用法实例分析
2015/05/20 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
Python内置函数OCT详解
2016/11/09 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
社区七一党员活动方案
2014/01/25 职场文书
家长对孩子评语
2014/01/30 职场文书
英文感谢信范文
2015/01/21 职场文书
用人单位聘用意向书
2015/05/11 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
《工作是最好的修行》读后感3篇
2019/12/13 职场文书