一元多项式问题

合集下载

一元多项式的求和

一元多项式的求和

一元多项式的求和一元多项式的求和是数学中常见的问题,它涉及到对一元多项式中的各项进行求和运算,是代数学中的重要概念之一。

本文将介绍一元多项式的求和的基本概念、方法和应用。

一元多项式是指仅含有一个未知数的多项式,它由若干个单项式相加或相减而成。

每个单项式由系数和次数两部分组成,其中系数可以是实数、复数或其他数域中的元素,次数为非负整数。

一元多项式的一般形式可以表示为:P(x) = a_nx^n + a_{n-1}x^{n-1} + ... + a_1x + a_0其中,P(x)表示一元多项式,a_n, a_{n-1}, ..., a_1, a_0为系数,x为未知数,n为最高次数。

一元多项式的求和即是对多项式中各项的系数进行求和运算。

具体来说,就是将各项的系数相加得到一个结果。

例如,对于一元多项式:P(x) = 2x^3 - 5x^2 + 3x - 1我们可以将其系数相加得到求和结果为:2 + (-5) +3 + (-1) = -1这就是该一元多项式的求和结果。

对于一元多项式的求和,可以应用代数学中的求和公式或方法进行计算。

常见的求和方法包括直接相加法、分组求和法和利用求和公式法。

直接相加法是最简单直观的求和方法,即将各项的系数直接相加。

这种方法适用于项数较少或系数较简单的一元多项式。

例如,对于一元多项式:P(x) = 2x^3 - 5x^2 + 3x - 1我们可以直接相加得到求和结果为:2 + (-5) +3 + (-1) = -1分组求和法是将一元多项式中的各项按照次数进行分组,然后对每组的系数进行求和。

这种方法适用于项数较多或系数较复杂的一元多项式。

例如,对于一元多项式:P(x) = 2x^3 - 5x^2 + 3x - 1我们可以按次数分组得到:2x^3 + (-5x^2) + 3x + (-1)然后对每组的系数进行求和,得到求和结果为:2 + (-5) +3 + (-1) = -1利用求和公式法是根据一元多项式的特点,利用求和公式进行计算。

一元多项式相加问题实验报告

一元多项式相加问题实验报告

一元多项式相加问题实验报告一元多项式相加问题一、问题描述通过键盘输入两个形如P 0 +P 1 X 1 +P 2 X 2 +…+P n X 的多项式,经过程序运后在屏幕上输出它们的相加和。

二、数据结构设计一个一元多项式的每一个子项都由“系数-指数”两部分组成,因此可将其抽象为包含系数coef、指数exp、指针域next 构成的链式线性表。

将两个多项式分别存放在两个线性表中,然后经过相加后将所得多项式存放在一个新的线性表中,但是不用再开辟新的存储空间,只依靠结点的移动来构成新的线性表,期间可以将某些不需要的空间回收。

基于这样的分析,可以采用不带头结点的单链表来表示一个一元多项式。

具体数据类型定义为:struct node {float coef;//系数域int exp;//指数域struct node *next; }; 三、功能函数设计1、输入多项式的系数和指数初始化多项式的功能模块具体函数为node *in_fun() 此函数的处理较为全面,要求用户按照指数递增的顺序和一定的输入格式输入各个系数不为0 的子项,输入一个子项建立一个相关结点,当遇到输入结束标志时停止输入。

关键步骤具体如下:⑴控制用户按照指数递增的顺序输入r=a; while(r!=q-next){if(y=r-exp){cout“请按照指数递增顺序输入,请重新输入“;cinxy;break;}r=r-next;} 从头开始遍历,若遇到目前输入的指数不是最大时,就跳出循环,让用户重新输入。

⑵当输入的系数为零时,不为其分配存储空间存储while(x==0) { cinxy; continue;} 即若系数为0,不再进行动态分配并新建结点,而是重新提取用户输入的下一个子项的系数和指数,利用continue 进入下一次循环。

⑶初始化完成后将最后一个结点的指针域置为空,并返回该新建链表的首地址。

if(q!=NULL)q-next=NULL;return a; ⑷动态分配空间新建结点存储系数和指数的代码如下:p=new node;p-coef=x;p-exp=y;if(a==NULL) a=p;else q-next=p;q=p; 2、多项式显示功能函数由于系数有正有负,故采取如下处理:对于正数,输出时在前面加“+”,头指针除外;对于负数,直接将系数输出即可,即:p=a;while(p){if(p==a)coutp-coef"*x^"p-else if(p-coef0)coutp-coef"*x^"p-else if(p-coef0)cout"+"p-coef"*x^"p-p=p-next;} 输出的多项式的形式形如:P 1 X^1+P 2 X^2+…+P n X^n 3、多项式相加的功能函数函数为:node *plus_fun(node *a,node *b) 此函数根据在 1 中初始化的两个多项式进行相加运算,并存放在以c 为头指针的一个新链表中。

一元多项式因式分解方法归纳

一元多项式因式分解方法归纳

一元多项式因式分解方法归纳摘要:给出了一元多项式因式分解的几种常用方法,如提公因式法,运用公式法,分组分解法,十字相乘法,配方法,拆项补项法等等。

解释了这些方法的理论来源,给出具体实例,并指出每种方法的具体做法.关键词:一元多项式因式分解提公因式法运用公式法分组分解法因式分解是中学数学中最重要的恒等变形之一,它被广泛地应用于初等数学之中,是我们解决许多数学问题的有力工具.因式分解方法灵活,技术性强,学习这些方法与技巧,不仅是掌握因式分解内容所必须的,而且对于培养学生的解题技能,发展学生的思维能力,都有着十分独特的作用.学习它,既可以复习整式的四则运算,又为学习分式打好基础;学好它,即可以培养学生的观察,思维发展性,运算能力,又可以提高学生综合分析和解决问题的能力.一提公因式法1 定义:一般地,如果多项式的各项有公因式,可以把这个公因式提到括号外面,将多项式写成因式分解的乘积的形式,这种分解因式的方法叫做提公因式法.2 具体做法:⑴确定公因式的方法①定系数:当各项系数都是整数时,公因式的系数应该取各项系数的最大公约数;②定字母:字母取各项的相同的字母;③定指数:各字母的指数取次数最低的.⑵如果多项式的第一项是负的,一般要提出“—”号,使括号内的第一项的系数成为正数.提出“—”号时,多项式的各项都要变号.3 提公因式法基本步骤:⑴找出公因式;⑵提公因式并确定另一个因式:①第一步找公因式,可按照确定公因式的方法,先确定系数再确定字母; ②第二步提公因式并确定另一个因式,注意要确定另一个因式; ③提完公因式后,另一因式的项数与原多项式的项数相同. 4 注意:①提公因式后,另一个因式的项数与原多项式一致; ②提公因式后,另一个因式不能再含有公因式.二 运用公式法1 定义:如果把乘法公式反过来,就可以用来把某些多项式分解因式,这种分解因式的方法叫做运用公式法.2 因式分解常用公式:⑴代数中常用的乘法公式有:平方差公式:()()b a b a -+ 22b a -=完全平方公式:()2b a ± 222b ab a +±=将上述乘法公式反过来就得到用公式来分解因式的方法,主要有以下三个公式:两根法: ⎥⎥⎦⎤⎢⎢⎣⎡----⎥⎥⎦⎤⎢⎢⎣⎡-+--=++a ac b b x a ac b b x a c bx ax 2424222平方差公式:22b a -=()()b a b a -+完全平方公式:()2222b a b ab a ±=+±⑵其他公式立方和公式: ()()2233bab a b a b a +-+=+立方差公式:()()2233bab a b a b a ++-=-完全立方公式:()3322333b a b ab b a a ±=±+±例1 因式分解1646-x 分析 664x 可变形为()238x ,或变形为()324x ,而1既可看作21,也可看作31,这样,本题可先用平方差公式分解. 解 方法一1646-x=()238x 1- (把664x 变形为()238x )()()181833-+=x x (利用平方差公式)=()183+x ()()124122++-x x x()()()()124121241222++-+-+=x x x x x x方法二 1646-x ()1432-=x (把664x 变形为()324x )()()141614242++-=x x x (运用立方差公式) ()()()224418161212xx x x x -++-+= (把24x拆为2248x x -)()()()()[]2222141212x x x x -+-+= (利用完全平方公式)()()()()124124121222+-++-+=x x x x x x (运用平方差公式)点评:在分解因式时,尽管采用的方法不同,但结果应是相同的,本题的两种解法,显然第一种方法比较简单.例2 已知A ()()()()495432+-+-+=x x x x (x 为整数),求证: A 为一个完全平方数. 证明:因为A ()()()()495432+-+-+=x x x x ()()4920622+----=x x x x()()()222221316926--=+---=x x x x x x所以A 是一个完全平方数.三 分组分解法1 定义:把各项适当分组,先把因式分组,再使分解因式在各组之间进行.2 注意:在用分组分解法因式分解时,要注意分组不能使一个多项式变为乘积形式,分组的目的是分好的各组能提取各自的公因式同时使各组提取公因式后剩下的多项式又是各组的公因式,可以再提取,从而使问题得到解决,上述规律可以通俗的归纳成:“分组的目的是为了提取,提取的目的是为了再提取”,若多项式带有括号,且括号内的式子相同时,可用换元后进行分组分解,若括号内式子不相同,又不便直接分组时,要将括号去掉,重新整理后再分组分解. 3分组分解法的实质是分组后能直接提公因式或运用公式法. 4 具体方法:5 总结利用分组的手段为提公因式法创造条件,因此分组分解法是转化的数学思想在因式分解中的集中体现,分组的目的是经过适当的分组以后,将原来不显现的条件通过分组显现出来,将其转化为用已学过的提公因式法或运用公式法来进行因式分解。

高等代数一元多项式例题

高等代数一元多项式例题

高等代数一元多项式例题
当涉及到高等代数的一元多项式例题时,我可以为您提供一个典型的例子,以便更好地理解。

假设我们有以下一元多项式:
P(x) = 3x^4 - 2x^3 + 5x^2 - 7x + 10
在这个例子中,P(x) 是一个四次多项式,其中x 是变量,3、-2、5、-7 和10 是系数。

每个项是由变量的幂次和对应的系数组成。

现在,我们来解决几个与这个多项式相关的问题
1. 求导:
要求P(x) 的导函数,可以通过对每一项进行求导并合并结果来实现。

对于这个例子来说,得到的导函数为:
P'(x) = 12x^3 - 6x^2 + 10x - 7
2. 求函数值:
给定一个特定的x 值,我们可以求出P(x) 的函数值。

例如,当x = 2 时,可以计算出:
P(2) = 3(2)^4 - 2(2)^3 + 5(2)^2 - 7(2) + 10 = 48
3. 因式分解:
对于多项式P(x),我们可以尝试将其因式分解为更简单的形式。

这需要使用因式分解的技巧和方法。

但是,并非所有的多项式都可以被因式分解,有些可能需要使用更高级的技术。

4. 求根:
求多项式的根是找出使得P(x) 等于零的x 值。

这就是求方程P(x) = 0 的解。

对于这个例子来说,我们可以通过使用因式分解、配方法、综合定理等方法来解决这个问题。

以上是一些关于高等代数一元多项式例题的常见问题和解决方法。

一元多项式的运算

一元多项式的运算

数据结构课程设计实验报告专业班级:学号:姓名:2011年1月1日题目:一元多项式的运算1、题目描述一元多项式的运算在此题中实现加、减法的运算,而多项式的减法可以通过加法来实现(只需在减法运算时系数前加负号)。

在数学上,一个一元n次多项式P n(X)可按降序写成:P n(X)= P n X^n+ P(n-1)X^(n-1)+......+ P1X+P0它由n+1个系数惟一确定,因此,在计算机里它可以用一个线性表P来表示:P=(P n,P(n-1),......,P1,P0)每一项的指数i隐含在其系数P i的序号里。

假设Q m(X)是一元m次多项式,同样可以用一个线性表Q来表示:Q=(q m,q(m-1),.....,q1,q0)不是一般性,假设吗吗m<n,则两个多想是相加的结果:R n(X)= P n(X)+ Q m(X)很显然,可以对P,Q和R采用顺序存储结构,使得多项式相加的算法定义和实现简单化。

然而,在通常的应用中,多项式的次数可能变化很大而且很高,使得顺序存储结构的最大长度很难确定。

特别是在处理项数少且次数特别高的情况下,对内存空间的浪费是相当大的。

因此,一般情况下,都采用链式存储结构来处理多项式的运算,使得两个线性链表分别表示一元多项式P n(X)和Q m(X),每个结点表示多项式中的一项。

通过分析多项式的特征,不难看出多项式是由单项式构成的,而每个单项式都具有系数和指数,当系数为0时,该项就是去了意义,在计算机内要表示一个多项式,至少具有以下数据信息:系数信息、指数信息和指向下一个单项式的指针。

通过指针,我们就可以把多个单项式连接起来,形成一个多项式。

2、任务要求系数定义的是float型,范围是3.4*10^-38~3.4*10^38;指数定义的是int型,范围是-2147483648~+2147483647;输入多项式系数及指数,系统会自动将系数转化为浮点型。

功能:(1).提示输入数据。

一元多项式表示与相加

一元多项式表示与相加

系数 coef 指数 exp 指针 next
结点结构体定义如下: struct Polynode { int coef; int exp; Polynode *next; } Polynode , * Polylist;
例:建立一元多项式链式存储算法 【算法思想】通过键盘输入一组多项式的系数和指数,用尾插法建立一元 多项式的链表。以输入系数 0 为结束标志,并约定建立多项式链表时,总 是按指数从小到大的顺序排列。 【算法描述】
scanf(“%d,%d”,&c,&e);/*键入多项式的系数和指数项*/
while(c!=0)
/*若 c=0,则代表多项式的输入结束*/
{
s=(Polynode*)malloc(sizeof(Polynode)); /* 申 请 新
的结点*/
s->coef=c ;
s->exp=e ;
rear->next=s ;
① 若 p->exp< q->exp,则结点 p 所指的结点应是“和多项式”中的 一项,令指针 p 后移;
② 若 p->exp=q->exp,则将两个结点中的系数相加,当和不为零时 修改结点 p 的系数域,释放 q 结点;若和为零,则和多项式中无此项,从 A 中 删去 p 结点,同时释放 p 和 q 结点。
B(x)=8x+22x7-9x8
polya
-1
polyb
-1
70 81
31
98
5 17 ∧
22 7
-9 8 ∧
(2)多项式相加的运算规则 为了保证“和多项式”中各项仍按升幂排列,在两个多项式中: ①指数相同项的对应系数相加,若和不为零,则构成“和多项式”中的一 项; ②指数不相同的项仍按升幂顺序复抄到“和多项式”中。 【算法思想】以单链表 polya 和 polyb 分别表示两个一元多项式 A 和 B, A+B 的求和运算,就等同于单链表的插入问题(将单链表 polyb 中的结点插入 到单链表 polya 中),因此 “和多项式“中的结点无需另生成。 为实现处理,设 p、q 分别指向单链表 polya 和 polyb 的当前项,比较 p、q 结点的指数项,由此得到下列运算规则:

一元对称多项式的相关问题

一元对称多项式的相关问题
前言
“对称”,原来是几何中的概念。意思是說两个几何图形相对而相称。从一定的角度看去,这两个图形所处的地位是相同的。建筑图案以及某些艺术品往往由于具有一定的对称性而更觉美观。在解决几何問題时,对称性也往往起重要作用。代数中也有对称。一元n次方程的每里得到了启发,要研究一元n次方程,就不能不考虑到它的根的对称性。这样,就
学号:031201210
四总结
对于对称多项式的研究,还有许多需要深入学习的知识,比如对称多项式在建筑方面的应用,轮换对称多项式,以及其在初等代数中的应用,对称多项式的构造,对称多项式的因式分解都是很重要的概念。
五参考文献:北京大学,高等代数(第三版),王萼芳,石生明修订;北京大学,高等代数(第四版),张禾瑞修订;复旦大学,高等代数(第二版)。
对称多项式是多元多项式中常见的一种,下面介绍关于对称多项式的基本事实。一个多元多项式,如果把其中任何两个元互换,所得的结果都与原式相同,则称此多项式是关于这些元的对称多项式。如x2+y2+z2 xy+yz+zx 1*X 2*B+4都是关于元x、y、z的对称多项式。根据对称多项式基本定理,任意一个n元对称多项式。x;,x。,…,x。)都可以用基本对称多项式表出,本文运用对称多项式基本定理解决下面问题:若已知一元n次方程/+a;/-‘十一,q/+q一0的根之间的关系,可导出方程的系数a1,a:,…,~之间应满足的关系。
【引言】文献通过研究一元多项式的根与系数的关系,引出n对称元多项式,称为初等对称多项式,找到表对称多项式为初等对称多项式的多项式的方法,并发现对称多项式基本定理以及一元多项式的判别式。
前言
摘要
引言
一~一元多项式的根与系数的关系··········1
二~ n元多项式的介绍····························2

一元多项式的定义和运算

一元多项式的定义和运算

多 问题:5、除了定义之外,判断一个集合是数环 有没有其他简单的方法? 项 式
定理1.1.1:设S是一个非空数集,S是数环的充 高 等 要条件是S中任两个数的差和积仍在S中。 代 二、数域 数 定义2: 设F是一个含有不等零的数的数集,如果F
中任两个数的和、差、积、商(除数不为0)仍在F中, 则称F是一个数域。 定义 2: 设F是一个数环,如果 ① F内含有一个非 1 零数; ② 对 a, b F , 且 b 0 ,则 a b F 则称F是一个数域。 多 例如:有理数集Q,实数集R,复数集C都是数域,
高 等 代 数
第一章 多项式
学时:28学时 教学方法和手段
由于多项式与整数在许多方面有相似之处,因此在建 立多项式分解理论时要注意与整数理论作对比。
基本内容和教学目的
1
本章主要讨论一元多项式的概念和运算,建立多项式 因式分解理论,并讨论与之有密切关系的求根问题。 这是中学有关知识的加深和扩充。
有理数、实数、复数。再比如讨论多项式的因式分 解、方程的根的情况,都跟数的范围有关。
例如
1
x 2 在有理数范围内不能分解,在实数范围内
2
多 项 式
就可以分解。 x2 1 0 在实数范围内没有根,在复数范围内就 有根。等等。
我们目前学习的解析几何,数学分析都是在实数 高 等 范围内来讨论问题的。但在高等代数中,通常不做 代 这样的限制。 在代数中,我们主要考虑一个集合中元素的加减 数
多 项 式
本章的重点和难点
重点:一元多项式的因式分解理论. 难点:最大公因式的概念,多项式的整除,互素和不可约多 项式等概念之间的联系与区别.
§1.1 数环和数域 高 研究数学问题常常需要明确规定所考虑的数的 等 代 范围,学习数学也是如此。 数 比如,先学习自然数,然后整数,再正有理数、

§1.2_一元多项式的定义和运算

§1.2_一元多项式的定义和运算

an 0, bm 0 anbm 0
f x g x 0
f x g x nm
多项式乘法没有零因子。
第一章 多项式
推论1:若 f x g x 0 f x 0或g x 0 证:若f=0或g=0,则必有fg=0。 反之,若 f x 0, g x 0
第一章
多项式
定义2: f x , g x 是两个多项式, f x g x
最高次项, 亦称为首项。 除系数为0的项之外,同次项的系数都相等。 多项式的表法唯一。 方程 a0 a1x an xn 0 是一个条件等式而不是 两个多项式相等。 定义3: 设 f x a0 a1x
k 相乘积的和作为 x 的系数。得:
k f x g x aib j x k 0 i j k 2 3 2 例1.2.3:设 f x 3x 4x 5, g x x 2x x 1
nm
f x g x x 5x 5x 6
f x n.
第一章 多项式
an xn , an 0,
非负整数n称为 f x 的次数,记为:
2 f x 3 x 2x 1, f x 2, 例1.2.2:
f x 3, f x 0
零次多项式:次数为0的多项式即非零常数。 零多项式:系数全为0的多项式。对零多项式不 定义次数,因此,在谈论多项式的次数时,意味着这 个多项式不是零多项式。 首一多项式:首项系数为1的多项式。 二、多项式的运算 定义4: 设 f x a0 a1x
第一章 多项式

C++一元多项式计算问题-课程设计说明书2

C++一元多项式计算问题-课程设计说明书2

学院课程设计说明书题目一元多项式计算问题系(部) 计算机科学与技术系专业(班级) 计算机科学与技术专业姓名学号指导教师起止日期第十三、十四周课程设计任务书课程名称:数据结构与算法设计题目:一元多项式计算问题已知技术参数和设计要求:问题描述:设计一个稀疏多项式简单计算器基本要求:(1)输入并分别建立多项式A和B(2)输入输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……,其中n是多项式的项数,ci和ei是第i项的系数和指数,序列按指数降序排列(3)完成两个多项式的相加、相减,并将结果输出;测试数据:(1) A+B A= 3x14-8x8+6x2+2 B=2x10+4x8+-6x2(2) A-B A=11x14+3x10+2x8+10x6+5 B=2x14+3x8+5x6+7(3) A+B A=x3+x1 B=-x3-x1(4) A+B A=0 B=x7+x5+x3+x1(5) A-B A=100x100+50x50+20x20+x B=10x100+10x50+10x20+x选作内容:(1).多项式在x=1时的运算结果(2)求多项式A和B的乘积设计工作量:40课时工作计划:指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表摘要本文是关于一个一元稀疏多项式计算器的问题。

一元稀疏多项式计算内容包括输入并建立多项式,多项式相加,多项式求值,多项式求乘积以及输出多项式。

本程序运用面向对象程序设计方法,使用C++语言,利用Microsoft Visual C++ 6.0开发工具,还有数据结构课中学到的链式存储结构,存储一元稀疏多项式,从而实现程序的基本功能。

在程序中定义了各种类型的运算的模块,通过主程序的调用来完成它们之间的配合,进而使得一元稀疏多项式计算器的顺利运行。

关键词:数据结构;一元稀疏多项式;链表; C++语言目录1 设计内容与要求 (1)2.设计说明 (1)2.1 问题描述与功能设计 (1)2.2 数据结构与算法 (1)2.3 函数定义 (3)2.4 界面设计 (4)2.5 编码 (5)2.6 测试 (10)3 总结 (14)参考文献 (15)附录A 源代码 (16)⒈设计内容与要求设计内容:设计一个稀疏多项式简单计算器,能够进行简单的基本运算。

用C语言解决一元多项式运算问题

用C语言解决一元多项式运算问题

用C语言解决一元多项式运算问题摘要本数据结构课程设计运用一元多项式运算的基本法则,对一元多项式的加法、减法运算进行设计,并有人机交换界面。

本课程设计中,系统开发平台为Windows XP;程序设计语言主要采用C语言,其中也掺入了C++部分语句,兼而两者的优势并存;开发环境为Microsoft Visual C++ 6.0,友好的界面、功能更加强大,相比较于C语言的专用开发环境Turbo C,其操作简单却已能完全在其环境中借用C语言开发设计出源程序;程序运行平台为Windows 98/2000/XP,程序兼容特性比较强,具有很好的移植特性。

在程序设计中,整个程序层次结构突出,直观性与易理解性优势明显。

程序通过调试运行后,完成了一元多项式运算的各种操作的设想,符合题目要求,初步实现了设计目标,达到了预期的效果。

关键词:数据结构课程设计; C程序语言;多项式1 引言计算机的快速发展,特别是计算机网络的发展,越来越深刻地改变了人们生活的方方面面。

但同时,也要求人们能高效、有效地完成某些运算任务。

而“数据结构”是计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且已成为其他理工专业的热门选修课。

本课程设计主要是对所学的数据结构知识进行整合和运用,解决在一元多项式的运算,包括加法、减法及乘法运算,通过该程序,将大大减少运算时间,提高工作效率。

2 课程设计目的在我们对一个具体的问题进行分析时,往往要抽象出一个模型,设计一个算法来实现所需要达到的功能。

在此程序中,我们主要是综合运用所学过的知识,回顾VC++编程的同时,熟悉并掌握数据结构中的算法分析与设计。

同时,要掌握类C语言的算法转换成C程序并上机调试的基础;这次课程设计,要求设计一个C语言程序,该程序能够按照指数的降幂排列,并完成多个一元多项式的相加、相减、相乘,并将结果输出。

通过这次课程设计,进一步巩固《数据结构》等课程所学的知识,特别加强指针、结构体、文件数据类型的应用,熟悉面向过程的结构化、了解面向对象设计方法,通过本次课程设计的实践,加强动手能力的操作,掌握程序设计的流程,以及用C程序语言编写程序,从而解决实际问题的能力,了解掌握Visual C++开发环境,在老师的指导下,独立完成课程设计的全部内容,培养严谨的科学态度和认真学习的工作作风,培养创造性思维方式。

利用综合除法巧解一元多项式问题

利用综合除法巧解一元多项式问题

利用综合除法巧解一元多项式问题作者:胡姣姣程茜来源:《科教导刊》2018年第12期摘要综合除法在高等代数学习中占据非常重要的地位,数学解题中应用十分广泛。

而一元多项式的计算特别是分解因式、求根问题比较复杂难解,本文利用综合除法简便计算多项式函数值,对高次多项式进行有效分解,同时推广了除式次数大于1的综合除法的表示形式。

关键词多项式综合除法有理根因式分解中图分类号:O13 文献标识码:A DOI:10.16400/ki.kjdkx.2018.04.023The Ingenious Use of Synthetic Division to Solvethe Problem of One Element PolynomialHU Jiaojiao, CHENG Qian(School of Mathematics and Statistics, Qinghai Normal University, Xining, Qinghai 810008)Abstract Synthetic division plays an important role in the study of higher algebra, is widely used in solving mathematical problems. And the calculation of a polynomial factorization, especially the root problem is complicated, in this paper, the polynomial function can be easily decomposed by using the synthetic division method, and the high degree polynomial can be decomposed effectively. And at the same time, the expression of division number greater than 1 is extended.Keywords polynomial; synthetic division; rational root; factorization一元多项式是数学学习重要组成部分,是学生学习函数的基石;综合除法是带余除法的一种特殊情况,是研究多项式理论的重要工具,在多项式计算中充当有利工具,本文利用这一工具分析如何简便快速计算多项式函数的函数值问题,且在综合除法的基础上结合有理根判断法分解高次多项式;最后再对除式次数大于1的综合除法表达式,讨论其商式和余式的求法并给出简洁的表达形式。

一元稀疏多项式以循环单链表按降幂排列

一元稀疏多项式以循环单链表按降幂排列

一元稀疏多项式以循环单链表按降幂排列一元稀疏多项式是指只含有一种未知数的多项式,并且其中大部分系数为零。

在计算机科学和数学领域,如何高效地表示和计算一元稀疏多项式一直是一个重要的问题。

循环单链表作为一种数据结构,可以很好地解决这一问题。

本文将从深度和广度两个方面来探讨一元稀疏多项式以循环单链表按降幂排列的表示方法。

一、基本概念和原理1. 一元稀疏多项式的定义一元稀疏多项式是指形如P(x)=a0x^m0 + a1x^m1 + ... + anx^mn的多项式,其中ai为系数,mi为指数。

很显然,如果某些项的系数为0,那么这些项可以被省略,从而得到一元稀疏多项式。

2. 循环单链表的定义循环单链表是一种特殊的单链表,它的最后一个节点指向头节点,从而形成一个循环。

这种数据结构可以很好地表示具有环路特性的问题,如环形队列和循环链表。

二、一元稀疏多项式的表示在计算机中,一元稀疏多项式通常以循环单链表的形式进行表示。

每个节点表示多项式的一项,节点中包含系数和指数两个信息。

按降幂排列的循环单链表可以很好地反映多项式的次序关系,从而方便进行各种运算操作。

举例来说,对于多项式P(x)=3x^5 + 2x^3 - x^2 + 4的表示,可以使用如下的循环单链表结构:1. 指数为5,系数为32. 指数为3,系数为23. 指数为2,系数为-14. 指数为0,系数为4这样,通过循环单链表的方式,可以直观地展现出多项式的结构和内容。

三、如何操作循环单链表表示的一元稀疏多项式1. 多项式的相加当需要对两个一元稀疏多项式进行相加时,可以直接对对应指数的节点进行系数相加。

如果某一项在另一个多项式中不存在,则直接将这一项插入到结果多项式的对应位置。

2. 多项式的相乘多项式的相乘需要将一个多项式的每一项依次与另一个多项式的所有项进行相乘,并将结果按指数相加合并。

这个操作需要对循环单链表进行多次插入和删除操作,而循环单链表的特性能够很好地支持这种需求。

一元多项式计算程序报告

一元多项式计算程序报告

学院课程设计题目:(一元多项式计算问题)一元多项式计算。

要求:能够按照指数降序排列建立并输出一元多项式;能够完成两个一元多项式的相加、相减,并将结果输入。

1、问题分析和任务定义(1).任务定义:此程序需要完成如下的要求:将多项式按照指数降序排列建立并输出,将两个一元多项式进行相加、相减操作,并将结果输入。

a:输入并建立多项式;b:输出多项式,输出形式为表达式的形式,并且多项式的指数为降序;c:多项式a和b相加,建立多项式a+b;d:多项式a和b相减,建立多项式a-b。

e:多项式的输出形式为类数学表达式。

(2).问题分析:本程序的关键点在于如何将输入的一元多项式按指数的降序进行排列,而难点就是将输入的两个一元多项式进行相加、相减操作。

实现本程序需要解决以下几个问题:1、如何将输入的一元多项式按指数的降序进行排列;2、如何确定要输入的多项式的项数;3、如何将输入的两个一元多项式进行显示出来;4、如何将输入的两个一元多项式进行相加操作;5、如何将输入的两个一元多项式进行相减操作。

次程序是链表的应用,通过链表实现一元多项式的相加相减操作。

要对一元多项式进行表示:一元多项式的表示在计算机可以用链表来表示为了节省存储空间,我们只存储多项式中系数非0 的项。

链表中的每一个节点存放多项式的一个系数非0项,它包含三个域,分别存放该项的系数、指数以及指向下一多项式项节点的指针。

下图1所示为该结点的结构:图1结点的结构创建一元多项式链表,对一元多项式的运算中会出现各种可能情况进行分析,实现一元多项式的相加、相减操作。

2、数据结构的选择和概要设计本题设计要求能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加,相减,并将结果输入。

(1)数据结构的选用A:基于链表中的节点可以动态生成的特点,以及链表可以灵活的添加或删除节点的数据结构,为了实现任意多项式的加法,减法,因此选择单链表的结构体,它有一个系数,指数,下一个指针3个元属;例如,图2中的两个线性链表分别表示一元多项式和一元多项式。

一元稀疏多项式

一元稀疏多项式

一元稀疏多项式一元稀疏多项式是指只有一个未知数,并且多项式中的项数相对较少的一种多项式。

本文将对一元稀疏多项式进行详细介绍,并给出一些例子来帮助读者更好地理解。

一元稀疏多项式可以用如下的一般形式表示:P(x) = a_nx^n +a_{n-1}x^{n-1} + ... + a_2x^2 + a_1x + a_0,其中n为多项式的最高次数,a_n, a_{n-1}, ..., a_1, a_0为常数系数。

需要注意的是,a_n不能为0,且多项式中的项数n相对较小。

在一元稀疏多项式中,通常只有少数几个项的系数不为0,其余项的系数均为0。

这就是所谓的稀疏性。

由于稀疏性的存在,一元稀疏多项式的表达和计算都相对简单,可以有效地节省时间和空间。

下面我们通过一些具体的例子来看一元稀疏多项式的应用。

例1:P(x) = 3x^4 + 2x^3 + 5x + 1这是一个一元稀疏多项式,其中只有四个项的系数不为0。

通过观察可以发现,该多项式的最高次数为4,只有这一项的系数不为0,其余项的系数均为0。

因此,这个多项式可以用较简单的形式表示。

例2:Q(x) = 2x^6 + 4x^2 - 3这也是一个一元稀疏多项式,其中有三个项的系数不为0。

与例1类似,通过观察可以发现,该多项式的最高次数为6,只有两个项的系数不为0,其余项的系数均为0。

从例子中我们可以看出,一元稀疏多项式具有较为简洁的表达形式,且易于计算。

在实际应用中,一元稀疏多项式常用于各种数学问题的求解,如多项式插值、信号处理等。

多项式插值是指通过给定数据点,来拟合一个多项式函数,使得该多项式函数与给定数据点的值相近。

在一元稀疏多项式的情况下,我们可以通过给定的数据点,找到一个相应的一元稀疏多项式来近似表示这些数据点。

通过这种方式,我们可以通过已知的数据点来推断未知数据点的值,或者通过已知数据点的值来预测未来的数值。

在信号处理领域,一元稀疏多项式也有着广泛的应用。

多项式的解法公式

多项式的解法公式

多项式的解法公式一、一元一次多项式(形如ax + b = 0,a≠0)1. 解法公式。

- 移项:将含x的项移到等号一边,常数项移到等号另一边,得到ax=-b。

- 求解x:x =-(b)/(a)。

二、一元二次多项式(形如ax^2+bx + c = 0,a≠0)1. 解法公式。

- 求根公式:x=frac{-b±√(b^2)-4ac}{2a}。

- 当b^2-4ac>0时,方程有两个不同的实数根。

- 当b^2-4ac = 0时,方程有两个相同的实数根(即一个实数根)。

- 当b^2-4ac<0时,方程没有实数根,在复数范围内有两个共轭复数根。

三、二元一次多项式方程组(形如a_1x + b_1y=c_1 a_2x + b_2y=c_2)1. 解法公式。

- 代入消元法。

- 由第一个方程a_1x + b_1y=c_1解出x(或y),例如x=(c_1 - b_1y)/(a_1)(a_1≠0)。

- 将x=(c_1 - b_1y)/(a_1)代入第二个方程a_2x + b_2y=c_2,得到关于y的一元一次方程,然后求解y。

- 把求出的y值代入x=(c_1 - b_1y)/(a_1)求出x。

- 加减消元法。

- 若要消去x,则给第一个方程乘以a_2,给第二个方程乘以a_1,得到a_1a_2x + a_2b_1y=a_2c_1 a_1a_2x + a_1b_2y=a_1c_2。

- 两式相减(a_1a_2x + a_2b_1y)-(a_1a_2x + a_1b_2y)=a_2c_1 - a_1c_2,即(a_2b_1 - a_1b_2)y=a_2c_1 - a_1c_2,然后求解y。

- 将y的值代入原方程组中的一个方程求解x。

CAGD∕CG领域中一元多项式方程求根问题综述

CAGD∕CG领域中一元多项式方程求根问题综述

CAGD∕CG领域中一元多项式方程求根问题综述I. 引言A. 研究背景和意义B. 问题描述C. 研究现状II. 一元多项式方程求根的基本理论A. 一元多项式方程的定义B. 求根定理C. 求根方法分类III. 常见的求根方法A. 牛顿迭代法B. 二分法C. 割线法D. Chord-Tangent法E. Jenkins-Traub方法IV. 一元多项式方程求根的优化算法A. 区间分解法B. 牛顿下山法C. 迭代法的加速算法D. 特殊问题的求根算法V. 总结与展望A. 研究总结B. 研究不足和未来发展方向C. 结语注意:此为较为全面的综述提纲,实际写作过程中,可以根据具体需要适量增减章节数量及具体内容。

I. 引言A. 研究背景和意义一元多项式方程求根问题是CAGD∕CG领域中的一个重要问题,涉及计算机图形学、计算机辅助几何设计和其他领域。

在实际运用中,很多复杂的问题都可以归结为求解一元多项式方程的根,例如计算机图形学中的曲面重构、曲线绘制和几何造型等。

B. 问题描述对于一个一元多项式方程P(x)=0,一般来说,在常见的代数计算领域中,有相应的求根方法可以求解出这个方程的根。

但在实际计算机应用中,由于计算精度的限制和计算复杂度的问题,传统数值计算方法不能满足要求。

因此,需要研究更加高效和鲁棒的求解方法。

C. 研究现状在过去的几十年中,有很多学者对一元多项式方程求根问题进行了研究。

早期的研究主要使用迭代算法,如牛顿迭代法、割线法、二分法等。

这些算法能够求得比较精确的近似解,但是计算复杂度高,收敛速度慢,且容易陷入局部最优解。

近年来,随着数值分析和计算机科学领域的发展,研究者们提出了更多的高效算法,如多项式分解法、区间分解法、特征值法、代数法等。

其中,Jenkins-Traub方法在实际应用中表现出了较高的效率和鲁棒性。

在本综述中,我们将介绍相关的基本理论、常见的求根方法和优化算法,并着重讨论它们的效率和优势。

一元多项式习题及解答

一元多项式习题及解答

习 题 一A 组1. 判别{},a a b =+∈QQ 是否为数域? 解 是.2. 设32()1f x x x x =+++,2()32g x x x =++,求()()f x g x +,()()f x g x -,()()f x g x . 解 32()()243f x g x x x x +=+++,3()()21f x g x x x -=--,5432()()46652f x g x x x x x x =+++++.3.设19932199431995()(54)(421)(8112)f x x x x x x =----+,求()f x 的展开式中各项系数的和. 解 由于()f x 的各项系数的和等于(1)f ,所以199319941995(1)(54)(421)(8112)1f =----+=-.4. 求()g x 除以()f x 的商()q x 与余式()r x .(1) 322()31,()321f x x x x g x x x =---=-+; (2) 42()25,()2f x x x g x x x =-+=-+.解 (1) 用多项式除法得到 所以,17262(),()3999q x x r x x =-=--. (2) 用多项式除法得到 所以,2()1,()57q x x x r x x =+-=-+.5.设,a b 是两个不相等的常数,证明多项式()f x 除以()()x a x b --所得余式为()()()()f a f b af b bf a x a b a b--+--. 证明 依题意可设()()()()f x x a x b q x cx d =--++,则解得故所得余式为()()()()f a f b af b bf a x a b a b--+--.6. 问,,m p q 适合什么条件时,()f x 能被()g x 整除?(1) 3()f x x px q =++,2()1g x x mx =+-;(2) 42()f x x px q =++,2()1g x x mx =++.解 (1) 由整除的定义知,要求余式()0r x =.所以先做多项式除法,要求2()(1)()0r x p m x q m =+++-=, 所以2(1)0,0p m q m ++=-=.即21,p m q m =--=时,可以整除.(2) 方法同上.先做多项式除法,所得余式为22()(2)(1)r x m p m x q p m =--++--,所以22(2)0,10m p m q p m --=+--=,即01m p q ==+,或22,1p m q -==时,可以整除.7. 求()f x 与()g x 的最大公因式:(1) 43232()341,()1f x x x x x g x x x x =+---=+--;(2) 4332()41,()31f x x x g x x x =-+=-+;(3) 42432()101,()61f x x x g x x x =-+=-+++.解 (1) 用辗转相除法得到用等式写出来,就是2()()(231)f x xg x x x =+---,21133()(231)2444g x x x x x ⎛⎫⎛⎫=-+----+ ⎪ ⎪⎝⎭⎝⎭,284332313344x x x x ⎛⎫⎛⎫---=+-- ⎪⎪⎝⎭⎝⎭,所以()(),()1f x g x x =+.(2) 同样地,所以()(),()1f x g x =.(3) 同样用辗转相除法,可得 ()2(),()1f x g x x =--.8. 求(),()u x v x 使()()()()()(),()u x f x v x g x f x g x +=:(1) 432432()242,()22f x x x x x g x x x x x =+---=+---:(2) 43232()421659,()254f x x x x x g x x x x =--++=--+:(3) 4322()441,()1f x x x x x g x x x =--++=--.解 (1) 利用辗转相除法,可以得到3()()(2)f x g x x x =+-,32()(1)(2)(2)g x x x x x =+-+-,322(2)x x x x -=-.因而,()2(),()2f x g x x =-,并且所以()1,()2u x x v x x =--=+(2) 利用辗转相除法,可以得到2()2()(639)f x xg x x x =-+-,211()(639)(1)33g x x x x x ⎛⎫=-+--+-- ⎪⎝⎭, 2(639)(1)(69)x x x x -+-=--+.因而,()(),()1f x g x x =-,并且 所以21122(),()13333u x x v x x x =-+=--. (3) 利用辗转相除法,可以得到2()(3)()(2)f x x g x x =-+-, ()(1)(2)1g x x x =+-+.因而()(),()1f x g x =,并且所以32()1,()32u x x v x x x x =--=+--. 9. 设323()(1)22,()f x x t x x u g x x tx u =++++=++的最大公因式是一个二次多项式,求,t u 的值.解 利用辗转相除法,可以得到 2()()(1)(2)f x g x t x t x u =+++-+,222222212()(1)(2)[(1)(2)]()(1)(2)1(1)(1)(1)t t t u t t u t t g x x t x t x u x t t t t ⎡⎤⎛⎫-+-++-+--⎡⎤=+++-+++ ⎪⎢⎥⎣⎦++++⎝⎭⎣⎦由题意,()f x 与()g x 的最大公因式是一个二次多项式,所以解得0,4u t ==-.10. 设()242(1)1x Ax Bx -++,求A 和B .解 用2(1)x -去除()f x 421Ax Bx =++,得余式1()(42)13r x A B x A B =++--,由题意要求知1()0r x =,即解得1,2A B ==-.11. 证明:如果()(),()1f x g x =,()(),()1f x h x =,那么()(),()()1f x g x h x =.证明 由条件可知,存在1()u x 和1()v x 使得11()()()()1u x f x v x g x +=,存在2()u x 和2()v x 使得22()()()()1u x f x v x h x +=.用()h x 乘以第一式得11()()()()()()()u x f x h x v x g x h x h x +=,代入第二式得[]2211()()()()()()()()()1u x f x v x u x f x h x v x g x h x ++=,即[]21212()()()()()[()()]()()1u x u x v x h x f x v x v x g x h x ++=,所以()(),()()1f x g x h x =.12. 证明:如果()f x 与()g x 不全为零,且()()()()()(),()u x f x v x g x f x g x +=,那么()(),()1u x v x =.证明 由于()()()()()(),()u x f x v x g x f x g x +=,()f x 与()g x 不全为零,所以()(),()0f x g x ≠.两边同时除以()(),()0f x g x ≠,有()()()()()()1(),()(),()f x g x u x v x f x g x f x g x +=, 所以()(),()1u x v x =. 13. 证明:如果()(),()()d x f x d x g x ,且()d x 为()f x 与()g x 的一个组合,那么()d x 是()f x 与()g x 的一个最大公因式.证明 由题意知()d x 是()f x 与()g x 的公因式.再由条件设()()()()()d x u x f x v x g x =+. 又设()h x 为()f x 与()g x 的任一公因式,即()(),()()h x f x h x g x ,则由上式有 ()()h x d x .故而()d x 是()f x 与()g x 的一个最大公因式.14. 证明:()()()(),()()(),()()f x h x g x h x f x g x h x =,其中()h x 的首项系数为1.证明 显然()(),()()f x g x h x 是()()f x h x 与()()g x h x 的一个公因式.下面来证明它是最大公因式. 设(),()u x v x 满足()()()()()(),()u x f x v x g x f x g x +=,则()()()()()()((),())()u x f x h x v x g x h x f x g x h x +=.由上题结果知,()(),()()f x g x h x 是()()f x h x 与()()g x h x 的一个最大公因式,又首项系数为1,所以()()()(),()()(),()()f x h x g x h x f x g x h x =.15. 设多项式()f x 与()g x 不全为零,证明()()()(),1(),()(),()f x g x f x g x f x g x ⎛⎫= ⎪ ⎪⎝⎭.证明 设()()(),()d x f x g x =,则存在多项式(),()u x v x ,使()()()()()d x u x f x v x g x =+.因为()f x 与()g x 不全为零,所以()0d x ≠.上式两边同时除以()d x ,有()()()()1()()(),()(),()f x g x u x v x f x g x f x g x =+, 故()()()(),1(),()(),()f x g x f x g x f x g x ⎛⎫= ⎪ ⎪⎝⎭成立.16.分别在复数域、实数域和有理数域上分解41x +为不可约因式之积.解 在实数域上的分解式为 ()()4222221(1)211x x x x x +=+-=+++.在复数域上的分解式为4122222222x x x x x ⎛⎫⎛⎫⎛⎫⎛⎫+=+-++---+ ⎪⎪⎪⎪ ⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭⎝⎭. 在有理数域上41x +是不可约多项式.否则,若41x +可约,有以下两种可能.(1)41x +有一次因式,从而它有有理根,但(1)0f ±≠,所以41x +无有理根.(2)41x +无一次因式,设4221()()x x ax b x cx d +=++++,其中,,,a b c d 为整数.于是0a c +=,0b d ac ++=,0ad bc +=,1bd =,又分两种情况:①1b d ==,又 a c =-,从而由 0b d ac ++=,得22a =,矛盾;②1b d ==-,则22a =-,矛盾.综合以上情况,即证.17. 求下列多项式的有理根:(1) 32()61514f x x x x =-+-;(2) 42()4751g x x x x =---;(3) 5432()614113h x x x x x x =+----.解 (1)由于()f x 是首项系数为1的整系数多项式,所以有理根必为整数根,且为14-的因数.14-的因数有:1,2,7,14±±±±,计算得到:故2x =是()f x 的有理根.再由多项式除法可知,2x =是()f x 的单根.(2) 类似(1)的讨论可知,()g x 的可能的有理根为:111,,24±±±,计算得到 111171111(1)9,(1)1,5,0,,22464464g g g g g g ⎛⎫⎛⎫⎛⎫⎛⎫=--==--==--=- ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭⎝⎭, 故12x =-是()g x 的有理根.再由多项式除法可知,12x =-是()f x 的2重根. (3) 类似地,()h x 的可能的有理根为:1,3±±,计算得到(1)28,(1)0,(3)0,(3)96h h h h =--==-=-.故1x =-,3x =是()h x 的有理根.再由多项式除法可知,1x =-是()h x 的4重根,3x =是()h x 的单根.18.若实系数方程30x px q ++=有一根a bi +(,a b 为实数,0b ≠),则方程30x px q +-=有实根2a .证明 设原方程有三个根123,,ααα.不失一般性,令1a bi α=+,从而有 2a bi α=-,由根与系数的关系可知 12330()()a bi a bi αααα=++=++-+,所以32a α=-,即3(2)(2)0a p a q -+-+=,故3(2)(2)0a p a q +-=.这说明30x px q +-=有实根2a .19. 证明:如果(1)()n x f x -,那么(1)()n n x f x -.证明 因为(1)()n x f x -,所以 (1)(1)0nf f ==.因此,令()(1)()f x xg x =-,则有 ()(1)()n n n f x x g x =-, 即(1)()n n x f x -.20. 下列多项式在有理数域上是否可约?(1) 21()1f x x =+;(2) 4322()8122f x x x x =-++;(3) 633()1f x x x =++;(4) 4()1p f x x px =++,p 为奇素数;(5) 45()41f x x kx =++,k 为整数.解 (1)1()f x 的可能的有理根为:1±,而(1)2f ±=,所以它在有理数域上不可约.(2)由Eisenstein 判别法,取素数2p =,则2不能整除1,而 2(8),212,22-,但是22不能整除2,所以该多项式在有理数域上不可约.(3)令1x y =+,代入633()1f x x x =++有654323()(1)615211893g y f y y y y y y y =+=++++++.取素数3p =,由Eisenstein 判别法知,()g y 在有理数域上不可约,所以()f x 在有理数域上不可约.(4) 令1x y =-,代入4()1p f x x px =++,得11222214()(1)()p p p p p p p p p g y f y y C y C y C y C p y p ----=-=-+--++-,取素数p ,由Eisenstein 判别法知,()g y 在有理数域上不可约,所以4()f x 在有理数域上不可约.(5) 令1x y =+,代入45()41f x x kx =++,得4325()(1)46(44)42g y f y y y y k y k =+=++++++,取素数2p =,由Eisenstein 判别法知,()g y 在有理数域上不可约,所以5()f x 在有理数域上不可约.B 组1.设()f x ,()g x ,()h x 是实数域上的多项式,(1) 若222()()()f x xg x xh x =+,则()()()0f x g x h x ===.(2) 在复数域上,上述命题是否成立?证明 (1)当()()0g x h x ==时,有2()0f x =,所以()0f x =,命题成立.如果()g x ,()h x 不全为零,不妨设()0g x ≠.当()0h x =时,()22()()12()xg x xh x g x ∂+=+∂为奇数;当()0h x ≠时,因为()g x ,()h x 都是实系数多项式,所以2()xg x 与2()xh x 都是首项系数为正实数的奇次多项式,于是也有22(()())xg x xh x ∂+为奇数.而这时均有2()0f x ≠,且2()2()f x f x ∂=∂为偶数,矛盾.因此有()()0g x h x ==,从而有()0f x =.(2) 在复数域上,上述命题不成立.例如,设()0f x =,()n g x x =,()i nh x x =,其中n 为自然数,有222()()()f x xg x xh x =+,但()0g x ≠,()0h x ≠.2. 设(),(),()[]f x g x h x P x ∈,满足 2(1)()(1)()(2)()0x h x x f x x g x ++-++=,2(1)()(1)()(2)()0x h x x f x x g x ++++-=.证明()2(1)(),()x f x g x +.证明 两式相加得到22(1)()2(()())0x h x x f x g x +++=.由2(1,)1x x +=可知 ()2(1)()()x f x g x ++.两式相减得到2()4()0,()2()f x g x f x g x -+==. 故()()221(),1()x f x x g x ++,即()()21(),()x f x g x +.3.设1212()()()()g x g x f x f x ,证明(1) 若11()()f x g x ,1()0f x ≠,则22()()g x f x ;(2) 若212()()()g x f x f x ,是否有22()()g x f x ?解 (1) 因为1212()()()()g x g x f x f x ,11()()f x g x ,故存在多项式()h x ,1()h x 使得1212111()()()()(),()()()f x f x g x g x h x g x f x h x ==.于是12112()()()()()()f x f x f x h x g x h x =.由于1()0f x ≠,故有212()()()()f x h x g x h x =,即22()()g x f x .(2) 否.例如取1()2g x x =-,22()1g x x =-,1()(1)(2)f x x x =--,2()(1)(2)f x x x =++.虽然1212()()()()g x g x f x f x 且212()()()g x f x f x ,但2()g x 不能整除2()f x .4.当k 为何值时,2()(6)42f x x k x k =++++和2()(2)2g x x k x k =+++的最大公因式是一次的?并求出此时的最大公因式.解 显然()()(2)g x x k x =++.当()(),()2f x g x x =+时,(2)42(6)420f k k -=-+++=,则3k =.当()(),()f x g x x k =+时,2()(6)420f k k k k k -=-+++=,则1k =.这时()(),()1f x g x x =+. 5.证明:对于任意正整数n ,都有 ()()(),()(),()n n n f x g x f x g x =.证明 由题意可知()f x 与()g x 不全为零.令()(),()()f x g x d x =,则()0d x ≠,从而()(),1()()f x g x d x d x ⎛⎫= ⎪⎝⎭,所以对任意正整数n ,有()(),1()()n n f x g x d x d x ⎛⎫⎛⎫⎛⎫ ⎪= ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭,于是有 ()()()()1()()n nf xg x u x v x d x d x ⎛⎫⎛⎫+= ⎪ ⎪⎝⎭⎝⎭,即 ()()()()()n n n u x f x v x g x d x +=. 又由()()d x f x ,()()d x g x ,有()()n n d x f x ,()()n n d x g x ,因此()n d x 是()n f x 与()ng x 的首项系数为1的最大公因式,从而有 ()()(),()()(),()nn n n f x g x d x f x g x ==. 6. 设11()()(),()()(),f x af x bg x g x cf x dg x =+=+且0ad bc -≠,证明()()11(),()(),()f x g x f x g x =.证明 设()(),()()f x g x d x =,则()(),()()d x f x d x g x .由于1()()()f x af x bg x =+,1()()()g x cf x dg x =+, 故11()(),()()d x f x d x g x .又设11()(),()()h x f x h x g x ,由上式及0ad bc -≠,可得11()()()d b f x f x g x ad bc ad bc =---, 11()()()c a g x f x g x ad bc ad bc-=+--, 从而 ()(),()()h x f x h x g x ,于是 ()()h x d x ,即()d x 也是1()f x 和1()g x 的最大公因式,即()()11(),()(),()f x g x f x g x =.7.设1()()()f x d x f x =,1()()()g x d x g x =,且()f x 与()g x 不全为零,证明()d x 是()f x 与()g x 的一个最大公因式的充分必要条件是()11(),()1f x g x =.证明 必要性.若()d x 是()f x 与()g x 的一个最大公因式,则存在多项式(),()u x v x 使()()()()()u x f x v x g x d x +=,于是11()()()()()()()u x d x f x v x d x g x d x +=.由()f x 与()g x 不全为零知()0d x ≠,因此有11()()()()1u x f x v x g x +=,即()11(),()1f x g x =.充分性.若()11(),()1f x g x =,则存在多项式(),()u x v x ,使11()()()()1u x f x v x g x +=.两边同时乘()d x 有()()()()()u x f x v x g x d x +=.由()d x 是()f x 与()g x 的一个公因式知,()d x 是()f x 与()g x 的一个最大公因式.8.设()f x 和()g x 是两个多项式,证明()(),()1f x g x =当且仅当()()(),()()1f x g x f x g x +=. 证明 必要性.设()(),()1f x g x =,若()()f x g x +与()()f x g x 不互素,则有不可约公因式()p x ,使()()()p x f x g x , 所以()()p x f x 或()()p x g x .不妨设()()p x f x ,由()()()()p x f x g x +可知()()p x g x ,因此()p x 是()f x 和()g x 的公因式,与(),()f x g x 互素矛盾,故()()f x g x +与()()f x g x 互素.充分性.设(()(),()())1f x g x f x g x +=,则存在(),()u x v x 使()()()()()()()1f x g x u x f x g x v x ++=,()()()()()()()1f x u x g x u x f x v x ++=,上式说明()(),()1f x g x =.9. 如果23312(1)()()x x f x xf x +++,那么1(1)()x f x -,2(1)()x f x -.证明 21x x ++的两个根为1ε=和2ε=33121εε==. 因为()23312(1)()()x x f x xf x +++,所以331212()()()()x x f x xf x εε--+,故有即解得12(1)(1)0f f ==,从而1(1)()x f x -,2(1)()x f x -.10. 若()()n f x f x ,则()f x 的根只能是零或单位根.证明 因为()()n f x f x ,故存在多项式()q x ,使()()()n f x f x q x =.设a 为()f x 的任一根,即()0f a =,则()()()0n f a f a q a ==.也就是说,当a 为()f x 的一根时,n a 也为()f x 的一根.依此类推,可知2,,,n n a a a 也是()f x 的根.由于()f x 的根的个数有限,故必定存在正整数,s t (不妨设s t >),使得s t n n a a =,(1)0t s t n n n a a --=.于是有0t n a =即0a =,或者(1)0s tn n a --=,即a 为单位根. 11. 设()f x 是一个整系数多项式,且(0),(1)f f 都是奇数,则()f x 没有整数根.证明 设10()n n f x a x a x a =+++,假设()f x 有整数根α,则x α-整除()f x ,即()()()f x x q x α=-,其中商式()q x 也是一个整系数多项式.事实上,设1110()n n q x b x b x b --=+++,代入上式并比较两端同次幂系数,得112110100,,,,n n n n n a b a b b a b b a b ααα----==-=-=-, 因为()f x 是一个整系数多项式,所以,110,,,n b b b -也是整数,令0,1x x ==分别代入展开式,得 (0)(0),(1)(1)(1)f q f q αα=-=-.由于(0),(1)f f 都是奇数,则α及1α-都必须是奇数,这是不可能的,所以,()f x 不能有整数根.12.证明对于任意非负整数n ,都有 ()()22211(1)n n x x x x ++++++. 证明 设α是21x x ++的任一根,即 210αα++=,21αα+=-,31α=.由此得221222123(1)()(1)0n n n n n n αααααα+++++++=+-=-=,即α也是221(1)n n x x ++++的根.又因为21x x ++无重根,因此()()22211(1)n n x x x x ++++++.13. 假设12,,,n a a a 是两两不同的整数,证明:多项式12()()()()1n f x x a x a x a =----在有理数域上不可约.证明 用反证法.假设()f x 在有理数域上可约,则有整系数多项式12(),()g x g x ,使得12()()()f x g x g x =.于是12()()()i i i f a g a g a =,1,2,,i n =.因此,12()1,()1i i g a g a ==-或12()1,()1i i g a g a =-=.这样总有12()()i i g a g a =-,从而由推论2知12()()g x g x =-,所以21()()f x g x =-.这与()f x 的首项系数为1相矛盾,故()f x 在有理数域上不可约.。

一元多项式

一元多项式

1.2一元多项式1.若43232231321(),()f x x x x x g x x x x =-+-+=-+-,求()(),()(),f x g x f x g x +-和()()f x g x4324325522()(),()()f x g x x x x f x g x x x x x +=++-=-+-+ 765432314141210621()()f x g x x x x x x x x =-+-+-+- 2.求,,a b c 使22432211251()()x bx x ax x x cx x +--+=++--224322112211()()()()()x bx x ax x b a x ab x a b x +--+=+-+-++-432251x x cx x =++-- 所以: 2511,,b a ab c a b -=-=+=-213,,a b c ⇒=-== 3.,,,a b c d 取何值时,多项式32322()()()f x a b c x a b c x dx =+-++-++与 322()()()()g x a c x a d x c a x b =++-+++相等.1234,,,a b c d ====4.将多项式4323223()f x x x ax x =-++-化成2x +的方幂形式43232262852122261()()()()()f x x x x x =+-+++-++5.设多项式00(),()f x g x ≠≠,问(),()f x g x 的系数满足什么条件时,公式(()())m ax{(),()}f x g x f x g x ∂+≤∂∂ 等号成立?满足什么条件时,小于号成立?1110()n n n n f x a x a xa x a --=++++ ,1110()n n n n g xb x b x b x b --=++++ 当0n n a b +≠时,公式中的等号成立; 当0n n a b +=时,公式中的小于号成立;6.设(),(),()[]f x g x h x R x ∈,若222()()()f x xg x xh x =+,则0()()()f x g x h x ===(),()g x h x 至少有一个不是零多项式.由于(),()[]g x h x R x ∈,所以2222(()())m ax{(),()}g x h x g x h x ∂+=∂∂ 于是等式222()()()f x xg x xh x =+右边的的次数为奇数,而左边的次数为偶数,这导致矛盾,所以必然有0()()()f x g x h x ===7. .设(),()[]f x g x R x ∈,若00(),()f x g x ≠≠,证明则220()()f x g x +≠11100(),n n n n n f x a x a x a x a a --=++++≠ ,11100(),m m m m m g x b x b x b x b b --=++++≠ ,并且m n ≤于是22()()f x g x +的最高次项的系数为22,()n m a b m n +=或2,()n a m n <,不论是哪种情形,22()()f x g x +的最高次项的系数都不为零,所以220()()f x g x +≠ (但这个结论对复数域上的多项式不成立,例如22(),(),f x ix g x x ==但22440()()f x g x x x +=-+=。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一元多项式相加问题本实验的目的是进一步熟练掌握应用链表处理实际问题的能力。

一、问题描述:一元多项式相加是通过键盘输入两个形如p0+p1*x^1+p2*x^2+pn*x^n的多项式,经过程序运算后在屏幕上输出它们的相加和。

二、数据结构设计:分析任意一元多项式的描述方法可知,一个一元多项式的每一个子项都有“系数—指数”两部分组成,所以可以将它抽象成一个有“系数—指数对”构成的线性表,由于对多项式中系数为0的子项可以不记录它的指数值,对于这样的情况就不再付出存储空间来存放它了。

基于这样的分析,可以采用一个带有头结点的单链表来表示一个一元多项式。

具体数据类型定义为:typedef struct node{float coef;int exp;int flag;struct node *next;}PolyNode;三、功能(函数)设计:1、输入并建立多项式的功能模块PolyNode * create(){float A;int B;PolyNode *a=NULL;PolyNode *b=NULL;PolyNode *c=NULL;scanf("%f,%d",&A,&B);while(A!=0||B!=0){if(A!=0){c=new PolyNode;c->coef=A;c->exp=B;c->flag=0;c->next=NULL;if(a==NULL){a=c;b=a;}else{b->next=c;b=c;}}scanf("%f,%d",&A,&B);}return a;}2、多项式相加的功能模块PolyNode *add(PolyNode *p,PolyNode *q){PolyNode *x,*y;PolyNode *r=NULL;PolyNode *c=NULL;PolyNode *l=NULL;x=p;y=q;while(x&&y){r=new PolyNode;if(x->exp==y->exp){r->coef=x->coef+y->coef;r->exp=x->exp;r->flag=0;r->next=NULL;x->flag=1;y->flag=1;x=x->next;y=y->next;}else if(x->exp>y->exp){r->coef=y->coef;r->exp=y->exp;r->flag=0;r->next=NULL;y->flag=1;y=y->next;}else{r->coef=x->coef;r->exp=x->exp;r->flag=0;r->next=NULL;x->flag=1;x=x->next;}if(c==NULL){c=r;l=c;}else{l->next=r;l=r;}}if(x==NULL)x=y;while(x){r=new PolyNode;r->coef=x->coef;r->exp=x->exp;r->flag=0;r->next=NULL;if(c==NULL){c=r;l=c;}else{l->next=r;l=r;}x->flag=1;x=x->next;}return c;}3、多项式显示的功能模块int print(PolyNode *w){if(w==NULL){cout<<'0';return 0;}PolyNode *v;v=w;cout<<'(';if(v->coef<0)cout<<'-';cout<<v->coef<<'x'<<v->exp;v=v->next;while(v){if(v->coef>=0)cout<<'+';cout<<v->coef<<'x'<<v->exp;v=v->next;}cout<<')';}四、界面设计:注意提示用户每一步操作输入的格式和限制,指导用户按照正确的格式输入数据。

如图:五、编码实现:#include<iostream>#include<stdio.h>using namespace std;typedef struct node{float coef;int exp;int flag;struct node *next;}PolyNode;int print(PolyNode *w){if(w==NULL){cout<<'0';return 0;}PolyNode *v;v=w;cout<<'(';if(v->coef<0)cout<<'-';cout<<v->coef<<'x'<<v->exp;v=v->next;while(v){if(v->coef>=0)cout<<'+';cout<<v->coef<<'x'<<v->exp;v=v->next;}cout<<')';}PolyNode *add(PolyNode *p,PolyNode *q){ PolyNode *x,*y;PolyNode *r=NULL;PolyNode *c=NULL;PolyNode *l=NULL;x=p;y=q;while(x&&y){r=new PolyNode;if(x->exp==y->exp){r->coef=x->coef+y->coef;r->exp=x->exp;r->flag=0;r->next=NULL;x->flag=1;y->flag=1;x=x->next;y=y->next;}else if(x->exp>y->exp){r->coef=y->coef;r->exp=y->exp;r->flag=0;r->next=NULL;y->flag=1;y=y->next;}else{r->coef=x->coef;r->exp=x->exp;r->flag=0;r->next=NULL;x->flag=1;x=x->next;}if(c==NULL){c=r;l=c;}else{l->next=r;l=r;}}if(x==NULL)x=y;while(x){r=new PolyNode;r->coef=x->coef;r->exp=x->exp;r->flag=0;r->next=NULL;if(c==NULL){c=r;l=c;}else{l->next=r;l=r;}x->flag=1;x=x->next;}return c;}PolyNode * create(){float A;int B;PolyNode *a=NULL;PolyNode *b=NULL;PolyNode *c=NULL;scanf("%f,%d",&A,&B);while(A!=0||B!=0){if(A!=0){c=new PolyNode;c->coef=A;c->exp=B;c->flag=0;c->next=NULL;if(a==NULL){a=c;b=a;}else{b->next=c;b=c;}}scanf("%f,%d",&A,&B);}return a;}int del(PolyNode *s){if(s==NULL){return 0;}PolyNode *c=s;PolyNode *d=c->next;while(d!=NULL){delete []c;c=d;d=d->next;}delete []c;s=NULL;}int main(){PolyNode *h=NULL;PolyNode *i=NULL;PolyNode *j=NULL;cout<<"请输入第一个多项式:按照“系数,指数”的形式输入每一个子项!"<<endl;h=create();cout<<"请输入第二个多项式:按照“系数,指数”的形式输入每一个子项!"<<endl;i=create();j=add(h,i);cout<<"两个多项式相加后得:"<<endl;print(h);cout<<" + ";print(i);cout<<" = ";print(j);cout<<endl;del(h);del(i);del(j);system("pause");return 0;}六、运行与测试:测试以下数据,比较结果:第一个多项式测试结果,如上图:第二个多项式测试结果,如上图:第三个多项式测试结果,如上图:七、结论:经测试,运行结果完全正确,程序没有问题,而且也加强了对链表的理解和应用。

相关文档
最新文档