二维多项式求值

来源:互联网 发布:前端wap 淘宝页面模板 编辑:程序博客网 时间:2024/09/21 06:36
  这是一个求 二维多项式的递推算法。
  P(x,y)=Aij*x^i*y^j
  这里Aij是一个4*5的二维多项式。求解(0.5,-2.0)处的p值;
  
  二维多项式求值,即为计算在指定(x,y)处的函数值。
  基于前面的一维多项式的求值,我们知道一维多项式可以拆分并递归求解。
  那么二维多项式其实就是两个一维多项式的计算,一个x的一维多项式的解是y的一维多项式的系数。
  递推的公式是: pj=Rj+1*y+Aijx^j

 

package Lily_Java_commons;/** *  @author   LilyLee * @date     2017年4月23日 * @time     下午9:43:19 * @Version  1.0 * @email    lilylee_1213@foxmail.com * */public class poly_2D {static double Poly_2D(double a[][],int m,int n,double x,double y){//这里m是x的项数,n是y的项数double result=0.0;double temp;double tt=1.0; //tt的含义是x的值,等于1是从不含x的值开始乘的意思for(int i=0;i<m;i++){temp=a[i][n-1]*tt; for(int j=n-2;j>=0;j--){ //内层递推计算temp=temp*y+a[i][j]*tt;}result+=temp;tt*=x;}return result;}public static void main(String[] args) {// TODO Auto-generated method stubdouble A[][]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20}};int m=4;int n=5;double x=0.5;double y=-2.0;double result=Poly_2D(A,m,n,x,y);System.out.println(result);}}

result=182.5;

0 0