一维多项式求值
来源:互联网 发布:js video 播放监控 编辑:程序博客网 时间:2024/06/04 00:59
这是一个计算多项式的值的程序。
P(x)=3x^6+7x^5-3x^4+2x^3+7x^2-7x-15
请分别算出 当x=-2,-0.5,1,2,3.7,4.0的时候,P的数值。
解题思路是:设计一个通用的算法来计算多项式的值。
答案:采用递推的方法
P(x)=((an*x+an-1)x+... +a1)x+a0
也就是说,把所有的式子都拆分为 a1x+a0 的形式,
然后再不断的乘以 ((a3x+a2)x+a1)x+a0
这样不断递推下去,首项系数乘以的x的指数刚好为式子中的指数
上面已经是正确的输出了。DecimalFormat df=new DecimalFormat("0.000E00");
P(x)=3x^6+7x^5-3x^4+2x^3+7x^2-7x-15
请分别算出 当x=-2,-0.5,1,2,3.7,4.0的时候,P的数值。
解题思路是:设计一个通用的算法来计算多项式的值。
答案:采用递推的方法
P(x)=((an*x+an-1)x+... +a1)x+a0
也就是说,把所有的式子都拆分为 a1x+a0 的形式,
然后再不断的乘以 ((a3x+a2)x+a1)x+a0
这样不断递推下去,首项系数乘以的x的指数刚好为式子中的指数
/** * 这是一个计算多项式的值的程序。 * P(x)=3x^6+7x^5-3x^4+2x^3+7x^2-7x-15 * 请分别算出 当x=-2,-0.5,1,2,3.7,4.0的时候,P的数值。 * 解题思路是:设计一个通用的算法来计算多项式的值。 * 答案:采用递推的方法 * P(x)=((an*x+an-1)x+... +a1)x+a0 * 也就是说,把所有的式子都拆分为 a1x+a0 的形式, * 然后再不断的乘以 ((a3x+a2)x+a1)x+a0 * 这样不断递推下去,首项系数乘以的x的指数刚好为式子中的指数 */package Lily_Java_commons;/** * @author LilyLee * @date 2017年4月23日 * @time 下午9:20:58 * @Version 1.0 * @email lilylee_1213@foxmail.com * */public class Ploynomial_cac {static double polyD(double a[],int n,double x){double result=a[n-1];for(int i=n-2;i>=0;i--){result=result*x+a[i];}return result;}public static void main(String[] args) {// TODO Auto-generated method stubdouble a[]={-15,-7,7,2,-3,7,3};double x[]={-2,-0.5,1,2,3.7,4};double result=0.0;for(int i=0;i<x.length;i++){result=polyD(a,a.length,x[i]);System.out.println("x="+x[i]+" P="+result);}}}
上面已经是正确的输出了。
但是今天还学了一招,JAVA里面如何控制输出的格式。(上一次控制输出格式的时候感觉还是大一学C语言的时候啊....)
DecimalFormat df=new DecimalFormat("0.000E00");
DecimalFormat dff=new DecimalFormat("0.00");
/** * 这是一个计算多项式的值的程序。 * P(x)=3x^6+7x^5-3x^4+2x^3+7x^2-7x-15 * 请分别算出 当x=-2,-0.5,1,2,3.7,4.0的时候,P的数值。 * 解题思路是:设计一个通用的算法来计算多项式的值。 * 答案:采用递推的方法 * P(x)=((an*x+an-1)x+... +a1)x+a0 * 也就是说,把所有的式子都拆分为 a1x+a0 的形式, * 然后再不断的乘以 ((a3x+a2)x+a1)x+a0 * 这样不断递推下去,首项系数乘以的x的指数刚好为式子中的指数 */package Lily_Java_commons;import java.text.DecimalFormat;/** * @author LilyLee * @date 2017年4月23日 * @time 下午9:20:58 * @Version 1.0 * @email lilylee_1213@foxmail.com * */public class Ploynomial_cac {static double polyD(double a[],int n,double x){double result=a[n-1];for(int i=n-2;i>=0;i--){result=result*x+a[i];}return result;}public static void main(String[] args) {// TODO Auto-generated method stubdouble a[]={-15,-7,7,2,-3,7,3};double x[]={-2,-0.5,1,2,3.7,4};double result=0.0;DecimalFormat df=new DecimalFormat("0.000E00");DecimalFormat dff=new DecimalFormat("0.00");for(int i=0;i<x.length;i++){result=polyD(a,a.length,x[i]);System.out.println("x="+dff.format(x[i])+" P="+df.format(result));}}}
0 0
- 一维多项式求值
- 一维多项式求值
- 一维多项式求值
- 1.1 一维多项式求值
- java 一维多项式求值
- 一维多项式求值(八)
- 数学计算-多项式求值算法(一维,二维)
- 多项式求值
- 多项式求值
- 多项式求值
- 多项式求值
- 多项式求值
- 多项式求值
- 多项式求值
- 多项式求值
- 一维多项式 二维多项式
- 用拉格朗日插值多项式求值
- 多项式求和和求值
- 在python调用opencv库,使用pycharm环境
- 棋盘覆盖问题
- 约瑟夫环
- HTTP状态码
- TF卡和SD卡的区别
- 一维多项式求值
- 初章
- 阿里云linux环境下搭建配置SVN
- 10个学习编程语言的方法
- redis之sets类型
- 用jq去完成无缝轮播
- INTERRUPTIBLE和UNINTERRUPTIBLE
- Unity摄像机遮挡剔除(Occlusion Cullings)
- 关系数据库