欢迎光临
我们一直在努力

多多项式除法,多项式分解除项法

最近的一项工作就是用vector实现多项式类,这个类需要完成多项式的数据结构的定义以及基本运算,包括加减乘除,前三个还比较容易,对于多项式的除法,因为有除不尽的情况,比如:

计算

其结果是:

明显是除不尽的,但是按照普通的除法去做,余数就会被舍弃,当涉及到求值或者求导时,就会产生极大的误差,尤其是在实现axdmht法求解高次多项式的数值解时,需要计算迭代点的函数值以及导数值,余数的舍弃必然使函数值产生偏差,其导数值也必然不准,也就使最后产生不靠谱的结果。

解决方案有两种思路,也是我自己的思考过程,第一种,我想通过指针的形式将多项式除法的结果和傻傻的白昼返回,然后在计算函数值和导数值的时候,需要将余数和除数再次相除,这样做确实可以解决问题,但是,前提是需要将被除数,除数区分开,在单次除法的计算中问题不大,但是涉及到复杂函数构成时,就显得困难了。

vps云服务器所以产生了第二种解决方案,就是遇到除法,不去计算结果,而是构造一个结构体,这个结构体有两部分构成,一部分是被除数,一部分是除数,也就是变成分子分母的形式

template<typename T>struct Div_Poly{Poly<T> Numer_Poly; //分子–被除数Poly<T> Denom_Poly;//分母–除数}

在涉及除法时,就直接传值操作,而不进行实际的除法运算,求函数值时直接将函数值代入,求导数值时,利用导数的定义

?

进行计算。

delta_x可以设置为double类型的极小值,比如可以取?0.00000001,自己把握精度。

这部分代码我将传到的github上

Poly_class_based_on_vector

文件为demo_4.1.zip

其他为早期版本。

03361959

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。