python中的对称对数标度数组

2024-10-03 09:18:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图求解一维非线性泊松方程(电荷分布取决于电势)。我一直把它当作一个最小化问题来处理,并且一直在使用scipy.optimize公司模块。在

虽然定性上我得到了一个合理的答案,但我注意到它随数组中点之间的距离而变化。这是合理的,因为解(及其导数)是指数的。在定义问题的空间边界附近受影响最大的解决方案。在

“fsolve”完成计算所需的时间似乎随着数组中点数的增加而急剧增加。在numpy的logspace函数的帮助下,我一直在研究使用非线性间距的选项。但是,此函数仅在数组的一侧提供更紧密的间距。我一直试图使用“logspace”生成两个数组并将它们连接起来,但是没有得到所需的结果。在

为了澄清这一点,我需要一个范围在[0,x](x是一些浮点值)的数组,当数组点接近0或x时,数组点之间的间距会变小。关于如何实现这一点有什么建议吗?在


Tags: 模块函数答案距离公司scipy数组optimize
1条回答
网友
1楼 · 发布于 2024-10-03 09:18:23

下面应该给您一个介于0和1之间的日志刻度间距,以便您可以根据您的需求进行缩放。我包括了两个解,有边值和没有边值。在

import numpy
import math

#set number of spaces: num=?
logrange = numpy.logspace(0,math.log10(11),num=6)

#including boudary points
inclusive = numpy.hstack([logrange -1,21-logrange[-2:0:-1],20])/20
print(inclusive)

#excluding boundary points
exclusive = numpy.hstack([logrange[1:] -1,21-logrange[-2:0:-1]])/20
print(exclusive)

相关问题 更多 >