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 相关文章推荐
屏蔽浏览器缓存另类方法
Oct 09 PHP
腾讯QQ php程序员面试题目整理
Jun 08 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
PHP数组无限分级数据的层级化处理代码
Dec 29 PHP
获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)
Jun 01 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
Jan 31 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
Jul 08 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 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
我的论坛源代码(一)
2006/10/09 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
php实现简单四则运算器
2020/11/29 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
Python Nose框架编写测试用例方法
2017/10/26 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
家长评语和期望
2014/02/10 职场文书
小学捐书活动总结
2014/07/05 职场文书
运动员获奖感言
2014/08/15 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书