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试试

    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办