用C语言生成一个10阶多项式及其导数的值
我正在尝试生成一个具有11个系数的10阶多项式的值。我也在尝试生成它的导数。我已经编写了三个函数,如下所示。 此代码生成多项式的值。a1到a10是系数用C语言生成一个10阶多项式及其导数的值,c,polynomial-math,C,Polynomial Math,我正在尝试生成一个具有11个系数的10阶多项式的值。我也在尝试生成它的导数。我已经编写了三个函数,如下所示。 此代码生成多项式的值。a1到a10是系数 float polynm( float a0,float a1,float a2,float a3,float a4,float a5,float a6,float a7,float a8,float a9,float a10,float x) { float poly = a0 + a1*x + a2*pow(x,
float polynm( float a0,float a1,float a2,float a3,float a4,float a5,float a6,float a7,float a8,float a9,float a10,float x)
{
float poly = a0 + a1*x + a2*pow(x,2)+a3*pow(x,3)+a4*pow(x,4)+a5*pow(x,5)+a6*pow(x,6)+a7*pow(x,7)+a8*pow(x,8)+a9*pow(x,9)+a10*pow(x,10);
return poly;
}
此代码生成它调用函数deri的多项式的导数的值
float polynm_der(float a0,float a1,float a2,float a3,float a4,float a5,float a6,float a7,float a8,float a9,float a10,float x)
{ float der = a1 + a2*deri(x,2)+a3*deri(x,3)+a4*deri(x,4)+a5*deri(x,5)+a6*deri(x,6)+a7*deri(x,7)+a8*deri(x,8)+a9*deri(x,9)+a10*deri(x,10);
return der;
}
deri is below
float deri(float x,int n)
{
float term_der = n*pow(x,n-1);
return term_der;
}
多项式的代码效率很低。如果我想生成一个100阶多项式,那就不可能了。有没有一种方法可以递归地生成多项式及其导数,以避免使用笨拙的代码 一种解决方案是接受系数数组及其长度:
float poly(int x, float coefficients[], int order)
{
int idx;
float total;
for (idx = 0; idx < order; idx++)
total += coefficients[idx] * pow(x, idx);
return total;
}
一种解决方案是接受系数数组及其长度:
float poly(int x, float coefficients[], int order)
{
int idx;
float total;
for (idx = 0; idx < order; idx++)
total += coefficients[idx] * pow(x, idx);
return total;
}
您可以重写函数以获取x值、系数数组和长度。您可以重写函数以获取x值、系数数组和长度。+1。顺便说一句,最好在for循环中使用或至少使用powx,n==powx,n-1*x。第一个、第二个和最后一个系数不能为0。我如何在数组中强制执行该操作,以便不允许用户输入0.Ouch。不要使用pow,使用霍纳法则。你将自己暴露在野外发现的最典型的10度多项式的灾难性抵消中,例如插值多项式。哇,我已经很久没有看到霍纳或合成除法被提及了;完全忘记了。不过,我不会编辑这个问题来使用它,因为这让人觉得不诚实。上面的代码是问题的直译。如果有人想写一个更好的答案,我很乐意投票。用户将输入系数的a值,我将用for循环读取它们。我的用户对c一无所知。因此,当他们试图输入0并提示他们输入另一个值时,我想给他们一条警告消息。我该怎么做+1。顺便说一句,最好在for循环中使用或至少使用powx,n==powx,n-1*x。第一个、第二个和最后一个系数不能为0。我如何在数组中强制执行该操作,以便不允许用户输入0.Ouch。不要使用pow,使用霍纳法则。你将自己暴露在野外发现的最典型的10度多项式的灾难性抵消中,例如插值多项式。哇,我已经很久没有看到霍纳或合成除法被提及了;完全忘记了。不过,我不会编辑这个问题来使用它,因为这让人觉得不诚实。上面的代码是问题的直译。如果有人想写一个更好的答案,我很乐意投票。用户将输入系数的a值,我将用for循环读取它们。我的用户对c一无所知。因此,当他们试图输入0并提示他们输入另一个值时,我想给他们一条警告消息。我该怎么做呢我喜欢你使用10个参数的方式,但是函数名的缩写我喜欢你使用10个参数的方式,但是函数名的缩写