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 相关文章推荐
第十二节 类的自动加载 [12]
Oct 09 PHP
用PHP函数解决SQL injection
Oct 09 PHP
再次研究下cache_lite
Feb 14 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 PHP
基于Zend的Config机制的应用分析
May 02 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
tp5.1 框架数据库-数据集操作实例分析
May 26 PHP
PHP实现文件上传与下载
Aug 28 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调用三种数据库的方法(1)
2006/10/09 PHP
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
php中10个不同等级压缩优化图片操作示例
2016/11/14 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
Javascript 入门基础学习
2010/03/10 Javascript
理解JavaScript的prototype属性
2012/02/11 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
div模拟滚动条效果示例代码
2013/10/16 Javascript
浅谈Unicode与JavaScript的发展史
2015/01/19 Javascript
浅析JS运动
2015/12/28 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
javascript 将共享属性迁移到原型中去的实现方法
2016/08/31 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
python分割文件的常用方法
2014/11/01 Python
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python连接Redis的基本配置方法
2018/09/13 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
一组SQL面试题
2016/02/15 面试题
会计与审计专业大专生求职信
2013/10/03 职场文书
五年级科学教学反思
2014/02/05 职场文书
小学二年级评语
2014/04/21 职场文书
七一建党节演讲稿
2014/09/11 职场文书
公司离职证明标准样本
2014/10/05 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书