python - 如何解决 broyden1 np.ndarray 调用问题?

标签 python numpy

第一次在这里发帖,目前正在为大学做一个项目,我有点卡住了。

这部分任务是使用蒙特卡罗方法来估计积分的值(在本例中,我们要积分的函数是 f(r)。这是我当前的代码:

import numpy as np # import numpy
from scipy.optimize #import broyden1

def U(r, ep, sig):
    return 4*ep*((sig/r)**(12)-(sig/r)**(6)) # return U(r) 

# Function to calculate f(r)
def f(r, ep, sig):
    Ur = 4*ep*((sig/r)**(12)-(sig/r)**(6)) # puts U(r) into this function
    return (1-np.exp(-Ur/(k*T)))*(r**2) # return f(r)

data = np.array([[2.56,3.75,3.4,4.07],[1.41,1.32,1.66,3.04]]) #He, N2, Ar, Xe
k =  1.38*10**-23 # Boltzmann constant
T = 300 # temperature value T
R = np.linspace(1*10**-10, 10, 1000) # r defined with 1000 values between 2.5 and 10
U = U(R, data[1,0], data[0,0])# calculate U((r)
F = f(R, data[1,0], data[0,0]) # calculate f(r)

cutoff = broyden1(F,6)

我收到一条错误消息“TypeError:‘numpy.ndarray’对象不可调用”。我知道这是一个非常常见的错误消息,但我无法从这里的其他帖子中找出我的问题是什么。

任何帮助将不胜感激,谢谢!

最佳答案

我认为您将焦耳与 eV 混合在一起。

你的力函数中的这一部分正在爆炸

np.exp(-Ur/(k*T))

您的脚本未到达最后一个函数调用(即cutoff = broyden1(F,6))

我认为因为你的玻尔兹曼常数应该用 eVK-1 而不是 JK-1 表示。所以k = 8.617333262145*10**-5

编辑

您的问题可能与此 issue 有关。我对你的代码做了一些修改,现在正在运行。然而,找到解决方案需要时间。

from functools import partial
import numpy as np # import numpy
from scipy.optimize import broyden1

def U(r, ep, sig):
    return 4*ep*((sig/r)**(12)-(sig/r)**(6)) # return U(r) 

# Function to calculate f(r)
def F(r):
    ep = 1.41
    sig = 2.56
    Ur = 4*ep*((sig/r)**(12)-(sig/r)**(6)) # puts U(r) into this function
    return (1-np.exp(-Ur/(k*T)))*(r**2) # return f(r)

data = np.array([[2.56,3.75,3.4,4.07],[1.41,1.32,1.66,3.04]]) #He, N2, Ar, Xe
#k =  1.38*10**-23 # Boltzmann constant
k = 8.617333262145*10**-5
T = 300 # temperature value T
R = np.linspace(1*10**-10, 10, 1000) # r defined with 1000 values between 2.5 and 10
U = U(R, data[1,0], data[0,0])# calculate U((r)
#F = f(R, data[1,0], data[0,0])# calculate f(r)
cutoff = broyden1(F,R,f_tol=1e-2)

关于python - 如何解决 broyden1 np.ndarray 调用问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60005632/

相关文章:

python - 配置 django 设置以使用 1.4.1。加载模板错误

Python 脚本在 PyCharm 中运行,但不在 Git Bash 中运行

python - 在导入 pandas 之前我需要导入 NumPy 还是可以单独使用 pandas ?

python - 使用 parseString 时的 pyparsing.ParseException(searchString 有效)

python - 多个数组的绘图

python - 使用 Matplotlib 和 Numpy,有没有办法找到线性方程的所有直线交点?

python - 将 100x9 广播到 100x9x1x1 numpy 数组以在 Caffe 中进行计算的正确方法

python - Flask 将函数流式输出到浏览器

python - Python 中均值和协方差的快速增量更新

python - 如果不是,如何使列单调递减?