【问题标题】:Plotting equation for solenoid magnetic field in python, receiving error在python中绘制螺线管磁场方程,接收错误
【发布时间】:2021-07-12 14:04:56
【问题描述】:

我对此很陌生,所以我不知道出了什么问题。我正在尝试绘制通过 jupyter 笔记本中螺线管轴的磁场方程。它不断返回错误'TypeError:**或pow()不支持的操作数类型:'list'和'int''。这是方程式的代码:

def model(x,a,b,c,l,r):
     y=a*b*c*.5*((x/(math.sqrt(x**2+r**2)))-((x-l)/(math.sqrt((x-l)**2+r**2)))
return y

任何帮助。

【问题讨论】:

  • 每个参数的数据类型是什么?在某些时候,您会尝试整理列表。
  • a,b,c,l 和 r 都是常数。 X2 是我的数据集,稍后我尝试使用代码 plt.plot(model(x2,a,b,c,l,r)) 进行绘制。不知道为什么它不起作用

标签: python matplotlib plot jupyter-notebook


【解决方案1】:

如果您想一次计算整个数字集合,您应该使用numpy.ndarrays 而不是lists。因此将x=np.array(x) 转换为numpy 并将math.sqrt 转换为np.sqrt 可能已经解决了您的问题。

在尝试运行您的代码时,我注意到括号不匹配;但你应该仔细检查。

import numpy as np

def model(x, a, b, c, l, r):
    y = 0.5*a*b*c * (x / np.sqrt(x**2 + r**2) - (x-l) / np.sqrt((x - l)**2 + r**2))
    return y

a, b, c, l, r = 1, 2, 3, 4, 5  # constants 
x = np.linspace(0, 1, 100)     # dummy data 

y = model(x, a, b, c, l, r)

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 2016-04-13
    • 2021-12-15
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多