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和ACCESS写聊天室(八)
Oct 09 PHP
Windows PHP5和Apache的安装与配置
Jun 08 PHP
php tp验证表单与自动填充函数代码
Feb 22 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
解析MySql与Java的时间类型
Jun 22 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
Jun 27 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
php防止sql注入的方法详解
Feb 20 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 PHP
浅谈laravel aliases别名的原理
Oct 24 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获得用户ip地址的比较不错的方法
2014/02/08 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
javascript textContent与innerText的异同分析
2010/10/22 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
vue2.0使用v-for循环制作多级嵌套菜单栏
2018/06/25 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
2019/08/27 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
Python入门教程之运算符与控制流
2016/08/17 Python
在centos7中分布式部署pyspider
2017/05/03 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
python打印异常信息的两种实现方式
2019/12/24 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
DBA的职责都有哪些
2012/05/16 面试题
医院志愿者活动总结
2015/05/06 职场文书
PyTorch的Debug指南
2021/05/07 Python
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL