代码拉取完成,页面将自动刷新
import random
import math
import copy
import time
import numpy as np
import scipy
import matplotlib.pyplot as plt
global profile
profile =[]
global dx
dx =0
def func( i, x, f, df ):
temp1 = -(1/2/math.pi**2) * math.sin(f[i])**2 * df[i] * 4* math.pi
temp2 = -(1/2/math.pi**2) * math.sin(f[i+1])**2 * df[i+1] * 4* math.pi
# print("temp1 = %f, temp2 = %f "%(temp1,temp2))
temp = (temp1+temp2)*(x[i+1] - x[i])/2
return temp
def baryonNumber(x, f):
i=0
temp = 0
for xi in x:
if i==len(x)-1:
break
temp = temp + f(i, x, profile, df)
i=i+1
return temp
r0 = 1e-5
r1 = 10
N = 100
x = np.linspace(r0, r1, N)
profile = np.zeros_like(x)
df = np.zeros_like(x)
i=0
for xi in x:
profile[i] = math.pi/(r1-r0) * ( r1 - x[i])
df[i] = -math.pi/(r1-r0)
i=i+1
baryon = baryonNumber(x, func)
print(baryon)
i=5
while True:
pi = profile[i]
profile[i] = profile[i] + random.uniform(-1,1) * 0.5
temp = baryonNumber(x, func)
if abs(temp-baryon)<1e-3:
print("原来为 %f, 更新后的解为 %f "%(pi, profile[i]) )
break
else:
print("结果不符, 现在值为 %f"%( profile[i] ) )
profile[i] = pi
print(baryon)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。