gpt4 book ai didi

python - 边界条件

转载 作者:行者123 更新时间:2023-12-04 08:20:33 25 4
gpt4 key购买 nike

谁能帮我解决以下方程的边界条件?我找不到图中显示的图形。它们用于不同的 u_0 ,一个有 4 个根,第二个有 2 个根。
enter image description here

import matplotlib.pyplot as plt
import math
import numpy as np
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, figsize=(5,5))

# Equation - dispersion relation
omega_p = 500
k = 5
u_0 = 5
u_02 = 10
m = 90
M = 2
omega = np.arange(0, 500, 0.1)
ksi = omega/omega_p
ksi_0 = k*u_0/omega_p
ksi_02 = k*u_02/omega_p
F = (m/M)/ksi**2 + 1/(ksi-ksi_0)**2
F2 = (m/M)/ksi**2 + 1/(ksi-ksi_02)**2

# Fig 1
ax1.plot(ksi, F)
# Fig 2
ax2.plot(ksi, F2)
plt.show()

最佳答案

我无法检查方程的物理特性,但显示中的问题似乎源于两个未定义的函数,其中发生了除以 0 的情况。我稍微修改了你的代码(引入一个 epsilon 来防止 div0 - 这在物理上没有意义,但说明了函数的行为):

import matplotlib.pyplot as plt
import math
import numpy as np

fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, figsize=(5,5))

# Equation - dispersion relation
omega_p = 500
k = 5
u_0 = 5
u_02 = 10
m = 90
M = 2
omega = np.arange(-20, 500, 0.1)
ksi = omega / omega_p
ksi_0 = k*u_0 / omega_p
ksi_02 = k*u_02 / omega_p

print(ksi)
print(ksi_0, ksi_02)
eps = 0.00001

F = (m/M) / (ksi**2+eps*10) + 1 / ((ksi-ksi_0)**2+eps)
F2 = (m/M) / (ksi**2+eps*10) + 1 / ((ksi-ksi_02)**2+eps)

# Fig 1
ax1.plot(ksi[:600], F[:600])
# Fig 2
ax2.plot(ksi[:800], F2[:800])
plt.show()
这使
[-0.04   -0.0398 -0.0396 ...  0.9994  0.9996  0.9998]
0.05 0.1
enter image description here
这大约是您所期望的(根据 y 轴的切割,您将有 2 或 4 个根)。现在也许单位有问题?这也可能是您的函数给出如此大值的原因(即在您的示例中切割的位置远大于 1)。

关于python - 边界条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65517708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com