提问人:Ferreira H. S. 提问时间:10/28/2023 更新时间:10/28/2023 访问量:8
Python:为什么我构建的这段代码没有使用初始列表中的所有三个 M0 值?(磁化强度 x 温度 - Weiss 理论)
Python: Why this code I built is not using all the three M0 values within the initial list? (Magnetization x Temperature - Weiss Theory)
问:
我正在尝试评估(使用数值方法求解超越方程)当我改变初始猜测 M0 的值时,迭代次数会变化多少。我想我不应该期望它为如此不同的 M0 值返回相同数量的迭代,所以我认为这段代码可能不会使用我希望它使用的所有这三个值。
#ITEM C:
import numpy as np
Tc = 1.0
T = list(np.arange(0.01,1.2,0.001))
M0 = [0.5,50.,100.]
erro_min = 1e-6
for k,Mk in enumerate(M0):
erro = 1.
iteracao = 0
if k == 0:
print('\nc) Com critério de convergência dado por {}, alteramos agora os valores de chute inicial para o processo de solução da eq. autoconsistente. A intenção é avaliar possíveis mudanças nas quantidades de iterações.\n\n--> Para M0 = {} tínhamos:'.format(erro_min,Mk))
else:
print('\n--> Para M0 = {} temos'.format(Mk))
for n, Tn in enumerate(T):
while erro > erro_min:
iteracao += 1
M = Mk
a = M
b = np.tanh(Tc*M/Tn)
if abs(a - b) > erro_min:
Mk = b
else:
break
print("\nNúmero de iterações: {}".format(iteracao))
我试图在 but before 进程中使用/包含,但它显然得到了一个为 k = 1 和 2 的 M(T) 获得的特定值。for k in range(3):
for n, Tn in enumerate(T):
while
答: 暂无答案
评论