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入门速成(2)
Oct 09 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
php Smarty date_format [格式化时间日期]
Mar 15 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
Feb 18 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
CI框架装载器Loader.php源码分析
Nov 04 PHP
PHP中的魔术方法总结和使用实例
May 11 PHP
如何写php守护进程(Daemon)
Dec 30 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
Sep 11 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
Sep 25 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
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
php进程间通讯实例分析
2016/07/11 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
iview中Select 选择器多选校验方法
2018/03/15 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
Vue中CSS动画原理的实现
2019/02/13 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
python连接MySQL数据库实例分析
2015/05/12 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
季度思想汇报
2014/01/01 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
小学清明节活动总结
2014/07/04 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
合作协议书范文
2014/08/20 职场文书
教师批评与自我批评
2014/10/15 职场文书
骨干教师申报材料
2014/12/17 职场文书
活着观后感
2015/06/03 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
springboot为异步任务规划自定义线程池的实现
2022/06/14 Java/Android
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python