输入:给出sig和rho_c等值 列出所有日子 使用for循环查找每个日期的时间 保存那个时间 找到温度的变化。每个人的一天 找到每个日子的临时值 弄清楚A需要哪个值 绘制数据图 ouptut:Day vs. Temp的图表。
Aice = 1
Anoice=0.
Tice =273.
Tnoice=293.
dt = 86400.
S = 342.5
rho_c =206000000.
epsilon_tow =.62
sig =5.6710E-8
Tint=288.
import numpy as N
tempvals= N.zeros((3000,)) #creates an array to store temp. values
tempvals[0]= Tint #set the first value of array to Tint
times=N.zeros((3000,)) #creates array to store time values
for day in range(3000): #Creates the values of day and goes through
#calculates for every day time, A,dT,T
time = (dt)*day
times[day] = time
if tempvals[day] <= Tice:
A=Aice
elif tempvals[day] >=Tnoice:
A=Anoice
else :
A=(((tempvals[day]-Tice)/(Tnoice-Tice)*(Anoice-Aice))+Aice)
dT =(((S*(1-A))-((epsilon_tow*sig*(tempvals[day]**4))/rho_c )*dt
if day <2999
tempvals[day+1]= T+dT
tempvals[day]= T
plot(day,T) #plots graph of day valueson x axis and
#T values on as y-axis
plot.title(T) #creates title of the graph
答案 0 :(得分:3)
您在前一行中缺少:
。
if day < 2999: # <- need a colon here
tempvals[day+1]= T+dT
编辑:此行中您还有不匹配的括号/括号:
dT =(((S*(1-A))-((epsilon_tow*sig*(tempvals[day]**4))/rho_c )*dt # missing parens
这条线看起来应该更像:
dT = ((S*(1-A))-((epsilon_tow*sig*(tempvals[day]**4))/rho_c))*dt