1 Star 0 Fork 0

jswangone/code

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
test1.py 1.21 KB
一键复制 编辑 原始数据 按行查看 历史
jswangone 提交于 2021-04-13 12:21 . 二维谱方法
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)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/jswangone/code.git
git@gitee.com:jswangone/code.git
jswangone
code
code
master

搜索帮助