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 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
追求程序速度,而不是编程的速度
Apr 23 PHP
PHP基础学习之流程控制的实现分析
Apr 28 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
php统计文章排行示例
Mar 04 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
Nov 04 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
PHP 的Opcache加速的使用方法
Dec 29 PHP
PDO::getAttribute讲解
Jan 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源码之 ext/mysql扩展部分
2009/07/17 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
Python contextlib模块使用示例
2015/02/18 Python
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
Django admin美化插件suit使用示例
2017/12/12 Python
Python入门学习指南分享
2018/04/11 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
python中的 zip函数详解及用法举例
2020/02/16 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
物业管理公司实习生自我鉴定
2013/09/19 职场文书
疾病捐款倡议书
2014/05/13 职场文书
结对共建工作方案
2014/06/02 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
教师个人年终总结
2015/02/11 职场文书
电话营销开场白
2015/05/29 职场文书
运动会加油稿30字
2015/07/21 职场文书
八年级语文教学反思
2016/03/03 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
python3使用diagrams绘制架构图的步骤
2021/04/08 Python