📌  相关文章
📜  10类RD Sharma解决方案-第2章多项式-练习2.2(1)

📅  最后修改于: 2023-12-03 14:38:48.447000             🧑  作者: Mango

10类RD Sharma解决方案-第2章多项式-练习2.2

RD Sharma解决方案是一本颇受印度高中生欢迎的教辅书,其中第2章主要涉及多项式的理论知识和应用。本练习2.2主要涉及多项式求和、差、积、商、余数等基础操作,适合初学者和巩固者进行练习。

练习题目

以下是本章练习2.2的题目:

  1. 求多项式 $2x^3 -3x^2 + x - 7$ 和 $3x^3 + 4x^2 + 2x -5$ 的和。

  2. 求$f(x)=5x^2 + 2x$ 和 $g(x)=6x^2 - 8x$ 的差。

  3. 求多项式 $x^4 + x^3 + 4x^2 - 1$ 与 $x^3 + 2x^2 - 3x + 5$ 的积。

  4. 求多项式 $q(x)$ 和 $r(x)$,使得 $3x^4 - 10x^3 + x^2 - 5$ 可以写成 $q(x)(x-2)+r(x)$ 的形式,且 $r(x)$ 的次数小于 $2$。

  5. 已知 $f(x)=3x^3 + 2x^2 - x + 4$,求 $f(2)$。

  6. 已知 $g(x)=4x^4 + 2x^3 + x^2 + 7x - 5$,求 $g(-3)$。

解法
  1. 两多项式相加,只需将同类项相加即可,即 $(2x^3 + 3x^3)+(-3x^2+4x^2)+(x+2x)-7-5$。最终结果为 $5x^3+x^2+3x-12$。

  2. 两多项式相减,同样只需将同类项相减即可,即 $(5x^2-6x^2)+(2x+8x)$。最终结果为 $-x^2+10x$。

  3. 直接使用分配律进行展开,然后进行合并同类项、化简即可。最终结果为 $x^7 + x^6 + 6x^5 -3x^4 -4x^3 -13x^2 + 13x -5$。

  4. 使用长除法或辗转相除法即可。处理流程如下:

    • 首先将 $3x^4 - 10x^3 + x^2 - 5$ 的首项 $3x^4$ 除以除数 $x-2$,得到商 $3x^3$ 和余数 $6x^3+5x^2-5$。
    • 将余数的首项 $6x^3$ 除以除数 $x-2$,得到商 $6x^2+17x$ 和余数 $39x+5$。
    • 最终结果为 $q(x)=3x^3+6x^2+17x$,$r(x)=39x+5$。
  5. 直接将 $x$ 替换为 $2$,然后进行计算即可。最终结果为 $32$。

  6. 直接将 $x$ 替换为 $-3$,然后进行计算即可。最终结果为 $-107$。

源代码

以下是Python实现的解法代码片段:

# Q1
def sum_polynomials(poly1, poly2):
    res = []
    for i in range(len(poly1)):
        res.append(poly1[i] + poly2[i])
    return res

poly1 = [2, -3, 1, -7]
poly2 = [3, 4, 2, -5]
print(sum_polynomials(poly1, poly2))  # [5, 1, 3, -12]

# Q2
def sub_polynomials(poly1, poly2):
    res = []
    for i in range(len(poly1)):
        res.append(poly1[i] - poly2[i])
    return res

poly1 = [5, 2, 0]
poly2 = [6, -8, 0]
print(sub_polynomials(poly1, poly2))  # [-1, 10, 0]

# Q3
def multiply_polynomials(poly1, poly2):
    n1, n2 = len(poly1), len(poly2)
    res = [0] * (n1 + n2 - 1)
    for i in range(n1):
        for j in range(n2):
            res[i + j] += poly1[i] * poly2[j]
    return res

poly1 = [1, 1, 4, 0, -1]
poly2 = [1, 2, -3, 5]
print(multiply_polynomials(poly1, poly2))  # [1, 3, 10, 17, 3, -13, 13, -5]

# Q4
def divide_polynomials(dividend, divisor):
    n = len(dividend)
    q = [0] * (n - len(divisor) + 1)
    for i in range(len(q)):
        q[i] = dividend[i] // divisor[0]
        for j in range(len(divisor)):
            dividend[i+j] -= divisor[j] * q[i]
    r = dividend[-(len(divisor)-1):]
    return q, r

dividend = [3, -10, 0, 1, -5]
divisor = [1, -2]
q, r = divide_polynomials(dividend, divisor)
print(q, r)  # [3, 6, 17]  [39, 5]

# Q5
def compute_polynomial(poly, x):
    res = 0
    for i in range(len(poly)):
        res += poly[i] * x ** i
    return res

poly = [3, 2, -1, 4]
x = 2
print(compute_polynomial(poly, x))  # 32

# Q6
poly = [4, 2, 1, 7, -5]
x = -3
print(compute_polynomial(poly, x))  # -107

以上Python代码实现了本章练习2.2中各个题目的解法。其中 sum_polynomials()sub_polynomials()multiply_polynomials()divide_polynomials()compute_polynomial() 分别对应了求多项式和、差、积、商与余数、计算多项式的值的解法。