python循环可以运行但是输出结果没有变化

循环可以运行,但是循环进行到第三次之后,print输出的k,r,V_gamma,c_ Nb的结果不变了这怎么回事?

import numpy as np                 #导入numy

#初始状态
V_gamma=0.0281                   #γ'相的初始体积分数
c_Nb=0.001094                      #Nb的初始浓度
T=1000+273.15                      #开式加热温度
R=8.314                            #玻尔兹曼常数

delta_t=0.1                        #增量步
t=0.                                #初始时间
e=np.e                           #自然对数
pi=np.pi

#gamma不变参数
D=8.8*10**(-5)*e**(-257000/R/T)    #γ'相溶质元素扩散系数
r0=1.3                           #γ'相的初始尺寸
cp=0.0716                          #γ'相中的溶质元素浓度
cw=0.0281                          #γ'相溶质元素平衡浓度
r=r0
#数据记录    作为输出
list_t=[]
list_delta=[]
list_gamma=[]
list_c=[]
list_r=[]


#列表输入第一个数据(t=0)
list_t.append(t)
list_gamma.append(V_gamma)
list_c.append(c_Nb)
list_r.append(r0)

#迭代计算
while t<1:
    t=t+delta_t    #时间更新
    list_t.append(t)    #记录时间
    if r>0:
        cr=cw*e**(2*2.78*10**(-5)/R/T/r0)    #γ'相的c_r的计算
        k=2*(cr-c_Nb)/(cp-cr)    #γ'相的k值的计算
        print('k=',k)
        r=r0-k*D/2/r0-k*(D*delta_t/pi)**0.5    #γ'相尺寸的计算
        print('r=',r)
        V_gamma=0.0281*(r/r0)**3    #γ'相体积分数的计算
        print('V_gamma',V_gamma)
        c_Nb=(0.0299-V_gamma*cp)/(1-V_gamma)    #Nb元素浓度的计算
        print('c_Nb=',c_Nb)
        print('\n')
    else:
        V_gamma=0
        r=0


实际执行结果看,r的值第二和第三次循环输出的值已经一样了,说明由于k的值相差很小,导致r的值趋近相同,所以后面就没有变化了
如果这是错误的结果,那具体要看一下你的计算公式写的是不是有错误

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632