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 zend解密软件绿色版测试可用
Apr 14 PHP
discuz的php防止sql注入函数
Jan 17 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
在yii中新增一个用户验证的方法详解
Jun 20 PHP
浅析linux下apache服务器的配置和管理
Aug 10 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
PHP Static延迟静态绑定用法分析
Mar 16 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 PHP
PHP新特性详解之命名空间、性状与生成器
Jul 18 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 PHP
PHP7 其他语言层面的修改
Mar 09 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基础知识:控制结构
2006/12/13 PHP
PHP缓冲区用法总结
2016/02/14 PHP
PHP序列化操作方法分析
2016/09/28 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
在laravel中使用Symfony的Crawler组件分析HTML
2017/06/19 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
详解Python的Lambda函数与排序
2016/10/25 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
J2EE中常用的名词进行解释
2015/11/09 面试题
平面设计岗位职责
2013/12/14 职场文书
函授药学自我鉴定
2014/02/07 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
golang实现浏览器导出excel文件功能
2022/03/25 Golang