一维多项式求值:
一个通用的计算式多项式的值的算法可以采用递推的方式。首先可以将多项式变形为如下等价形式:
P(x)=(…((a1x+a2)x+c)x+d)x+…an-1)x+an
依照这个思路来编写一维多项式求解过程:
double polynomiallD(double *a,int n,double x)//n为多项式的系数,x为指定的变量值,a存放的是多项式的n个系数
{
int i;
double result;
result=a[n-1];
for(i=n-2;i>=0;i--)
{
result=result*x+a[i];
}
return result;
}
二维多项式
double polynomial2D(double *a,int m,int n,double x,double y)
{
int i,j;
double result,temp,tt;
result =0.0;
tt=1.0;
for(i=0;i<m;i++)
{
temp=a[i*n+n-1]*tt;
for(j=n-2;j>=0;j--)//内层递推算法
{
temp=temp*y+a[i*n+j]*tt;
}
result+=temp;
tt*=x;
}
return result;
}
多项式乘法
void polynomial_mul(double* A,int m,double *B,int n,double *R,iny k)
{
int i,j;
for(i=0;;i<k;i++)
{
R[i]=0.0;
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
R[i+j]+=A[i]*B[j];
}
}
}
其中,输入参数A[]和m为多项式A(x)的系数矩阵和项数…