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

Python运行二分求根绘图代码报only length-1 arrays错误如何修复

错误原因

  • 代码中使用的math.exp()仅支持接收单个标量数值作为输入,无法处理np.linspace()生成的numpy数组,执行y1 = func1(x1)时触发类型错误。
  • 二分法求解opt.bisect调用func1时传入的是单值参数,所以这一步不会报错,问题出在绘图前批量计算y值的步骤。

修复方法

将func1中的math.exp替换为支持数组广播计算的np.exp即可。

修复后完整代码

import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize as opt

def func1(x):
    f1 = np.exp(x-2) + x**3 - x
    return f1

solv1_bisect = opt.bisect(func1, -1.5, 1.5)

x1 = np.linspace(-1.5,1.5) 
y1 = func1(x1)
plt.plot(x1,y1,'r-')
plt.grid()

print('solv1_bisect = ', solv1_bisect)

内容的提问来源于stack exchange,提问作者Y Yen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:57:03