这是一个求 二维多项式的递推算法。
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
result=182.5;
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 stub
double 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;