2017-12-20 9 views
0

さまざまな状況で材料の温度をシミュレートしています。私は温度と時間のプロットを作成したいと思います。そこでは、ある温度の後にすべての温度がさらに5度低下し、次に温度変化の速度が観察されます。当初、私は次のものを持っていました:反復プロセスを使用したPythonの条件文

for i in range(1,len(t)): 
    te[i] = te[i-1] + f(te[i-1])*dt  

これは時間とともに減少する曲線をプロットするために使用されました(t)。私は今プロットに2つの部分を作りたいと思います。私のプロットのx値はtです。 y値はTeです。 Teが80未満の時間が経過した後、すべてのTe値をさらに5減らしたいと思います。私は通常IDLを使用しているので、Tの行に沿って何かを言うでしょう(t = 80)。これは私がこれまで行ってきたことですが、明らかに構文が完全に間違っていて、iの値はインデックスであり、時間の値ではありません。

t80 = t where Te <= 80.0 

for i in range(1,t80): 
    te[i] = te[i-1] + f(te[i-1])*dt 

for i in range(t80,len(t)): 
    te3[i] = te3[i-1] + f(te3[i-1])*dt - 5 

私はPythonでt80をどのように定義するか知っていますか?

+0

最後の式は正しいですか?あなたが 't80'の後に5度_once_で温度を下げるか、それともその後のすべてのstep_で温度を下げたいのか分かりません。 –

+0

また、ある温度が80℃より下に下がり、80℃より下に下がりますが、そうでない場合は、再び80℃を上回ると(何度も下に下がると)どうなりますか? –

+0

私は本質的に私はそれが周囲の場合には、温度と温度に冷却されている液体を持っています。私はこの動作を記述する関数を定義しました。冷却液を加えた後、温度が5度低下する。 – Louise

答えて

1

温度が80度を下回ると、さらに5度だけ温度が下がります()。温度が液体の後、すべてのステップが注がれたでさらに5度でドロップする必要があります代わりに場合は、ちょうどそれを削除

cooling_liquid_poured = False 
for i in range(1,len(t)): 
    te[i] = te[i-1] + f(te[i-1])*dt 
    if te[i] < 80 and not cooling_liquid_poured: 
     te[i] -= 5 
     cooling_liquid_poured = True 

:これが正しければ、あなたは単にあなたのforループにif条件を追加することができます変数は、if te[i] < 80をチェックしてください。

関連する問題