ChestNuT3T 2020-11-29 19:03 采纳率: 0%
浏览 102

求帮忙,math.erf函数报错

import numpy as np
# mpl_toolkits是matplotlib官方的工具包 mplot3d是用来画三维图像的工具包
from mpl_toolkits.mplot3d import Axes3D
# pyplot 是一个有命令风格的的函数集合,与matlab相似。
import math
from sympy import *
from matplotlib import pyplot as plt
# 创建一个图像窗口
fig = plt.figure()
# 在图像窗口添加3d坐标轴
ax = Axes3D(fig)
# 显示创建的图像
plt.show()
# 逻辑回归 平方差画图
import numpy as np
# mpl_toolkits是matplotlib官方的工具包 mplot3d是用来画三维图像的工具包
from mpl_toolkits.mplot3d import Axes3D
# pyplot 是一个有命令风格的的函数集合,与matlab相似。
from matplotlib import pyplot as plt

# 创建一个图像窗口
fig = plt.figure()
# 在图像窗口添加3d坐标轴
ax = Axes3D(fig)

# 使用np.linspace定义 x:范围(0,10);个数为100
x = np.linspace(0.01,10,100)
# 定义 t:范围(0,120);个数为120
t = np.linspace(0.01,120,120)
# 创建x-t平面网络
x,t = np.meshgrid(x,t)
# 定义函数
c = 0.635 * (t / 12)**0.5 * (1 - math.erf(x / (2 * (2.5 * 10**(-10) * t)**0.5)))
# 将函数显示为3d  rstride 和 cstride 代表 row(行)和column(列)的跨度 get_cmap为色图分类
ax.plot_surface(x,t,c,rstride = 1, cstride = 1,cmap=plt.get_cmap('gray'))

# 显示创建的图像
plt.show()

这是我的代码,因为没有系统学过python,但是本专业需要用python绘制一张图像,突然卡住了。报错内容如下

 

Traceback (most recent call last):
  File "D:\PythonPreject\main.py", line 33, in <module>
    c = 0.635 * (t / 12)**0.5 * (1 - math.erf(x / (2 * (2.5 * 10**(-10) * t)**0.5)))
TypeError: only size-1 arrays can be converted to Python scalars

 

网上查询了很久,还是一无进展。希望有人可以帮帮忙,看一看哪里该怎么修改

  • 写回答

1条回答 默认 最新

  • BryceRui 2020-11-30 11:09
    关注

    因为x是个数组, 但是math.erf只接受单个元素   用scipy.special.erf替换math.erf试试

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!