发布时间 : 星期二 文章C语言课程设计任务书更新完毕开始阅读
(6)一元多项式的减法计算
它从两个多项式的头部开始, 两个多项式的某一项都不为空时, 如果 数相等的话,系数就应该相减;相加的和不为 0 的话,用头插法建立 一个新的节点。 p 的指数小于 q 的指数的话,就应该复制 q 节点到多 项式中。p 的指数大于 q 的指数的话, 就应该复制 p 节点到多形式中。 并且建立的节点的系数为原来的相反数; 当第二个多项式为空时, 第 一个多项式不为空时, 将第一个多项式用心节点产生。 当第一个多项 式为空,第二个多项式不为空时,将第二个多项式用新节点产生,并 且建立的节点系数为原来的相反数。
数学模型:
在数学上,一个一元多项式 Pn(x) 可按升幂写成 :
Pn(x)=p +p1x+p2x
2+,, +p n
2+,,
0
n
x
n
+p
它由 n+1个系数唯一确定, 因此,在计算机中它可用一个线性表 P来 表示:
P=(p0 ,p 1,p 2, ,,
,p )
n
每一项的指数 i 隐含在其系数 Pi 的序号里,每一项的值顺序为各个 多项式的系数值。
加法模型:
假设 Qm(X)是一元 m次多项式,同样可用线性表 Q来表示:
Q=(q0,q 1,q 2, ,,
qm)
不失一般性,设 m
- 8 -
链表来表示,规则是相同指数的项的系数相加,所以 (p0+q0,p 1+q1,,
pm+qm,pm+1,,
p
n),例如:
P(x)+Q(x)=
4+5x2+3x+1,Q(x)=3x 2+1, 相加后R(x)= 2x 4+8x2+3x+2,用一维 P(x)=2x
向量表表示分别为( 1,3,5,0,2)+(1,0,3 ,)=(2,3,8,0 ,2), 写成数学形式即为 2x
4+8x2+3x+2,结论正确。减法模型同加法模型。具体函数模块的流程图:
功能选择模块:
开始
指数系数 输入功能函数对应的数字
判断输入是否合法
通过 switch 判断返回哪 一个功能函数
调用该功能函数
结束
- 9 -
输入数据函数:
开始
输入各 项的指
调用输出函数
显示运行结果
结束
求和函数模块:
开始
定义存储结果的空链 r
是
存储多项式 1 的空 链 P 是否为空
否
是
存储多项式 2 的空 链 Q 是否为空
否
同指数项系数相加后存入
r 中
直接把 q 中各 项存入 r
直接把 p 中各 项存入 r 中
输出存储多项式的和的链 r
合并同类项
结束
- 10 -