weixin_51529282
ChestNuT3T
采纳率0%
2020-11-29 19:03

求帮忙,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条回答

  • weixin_43162240 Bryce__LY 5月前

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

    点赞 评论 复制链接分享

相关推荐