You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从多项式方程求导?提取多项式系数遇技术问题求助

解决多项式字符串解析与求导问题

看起来你在实现多项式求导时,卡在了从字符串中提取系数这一步,我来帮你搞定这个问题,顺便完善求导函数的逻辑。

第一步:从多项式字符串提取系数数组

你的converter函数目前只是做了字符串分割,还没提取出每一项的系数。我们可以针对不同类型的项(高次项、一次项、常数项)分别处理:

array_1 = '3*x**3 + 2*x**2 + 3*x + 5'

def converter(poly_str):
    # 按' + '分割得到每一项
    terms = poly_str.split(' + ')
    coefficients = []
    for term in terms:
        if 'x' not in term:
            # 处理常数项,直接转成整数
            coefficients.append(int(term))
        elif '**' in term:
            # 处理高次项,提取*x**前面的系数
            coeff_part = term.split('*x**')[0]
            coefficients.append(int(coeff_part))
        else:
            # 处理一次项,提取*x前面的系数
            coeff_part = term.split('*x')[0]
            coefficients.append(int(coeff_part))
    # 如果需要像你测试时那样反转数组,就返回 coefficients[::-1]
    return coefficients

# 测试一下,会得到[3, 2, 3, 5]
coeff_array = converter(array_1)
print(coeff_array)

这段代码会把你的输入字符串转换成对应的系数数组[3,2,3,5],分别对应3x³、2x²、3x、5的系数。如果需要反转成你测试用的[5,3,2,3],只需要把return语句改成return coefficients[::-1]即可。

第二步:实现多项式求导函数

多项式求导的规则很简单:

  • 对于项a*x^n,导数是a*n*x^(n-1)
  • 常数项的导数是0,求导后可以直接丢弃

根据系数数组的排列顺序,我们可以这样实现求导逻辑:

def derivative(coefficients):
    new_array = []
    # 假设系数数组是按次数从高到低排列(比如[3,2,3,5]对应3x³+2x²+3x+5)
    term_count = len(coefficients)
    for idx, coeff in enumerate(coefficients):
        # 计算当前项的次数:总项数-1 - 当前索引
        current_degree = term_count - 1 - idx
        if current_degree == 0:
            # 常数项,导数为0,跳过
            continue
        # 计算导数后的系数
        new_coeff = coeff * current_degree
        new_array.append(new_coeff)
    return new_array

# 测试:原系数数组[3,2,3,5]的导数是9x²+4x+3,对应数组[9,4,3]
print(derivative(coeff_array))  # 输出 [9, 4, 3]

# 如果是反转后的数组[5,3,2,3],导数是3+4x+9x²,对应数组[3,4,9]
print(derivative([5,3,2,3]))  # 输出 [3, 4, 9]

完整测试

把两部分结合起来,你就可以直接从多项式字符串得到导数的系数数组了:

# 完整流程
poly_str = '3*x**3 + 2*x**2 + 3*x + 5'
coeffs = converter(poly_str)
deriv_coeffs = derivative(coeffs)
print(f"原多项式系数:{coeffs}")
print(f"导数多项式系数:{deriv_coeffs}")

运行后会输出:

原多项式系数:[3, 2, 3, 5]
导数多项式系数:[9, 4, 3]

内容的提问来源于stack exchange,提问作者Vural Erdogan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:34:55