8. Kód od umělé inteligence (AI)#
V této úloze vyjdeme z kódu, který vygenerovala umělá inteligence, a budeme tento kód modifikovat tak, aby řešil model na delším časovém intervalu.
V AnacondaCloud jsem oslovil Asistenta AI s následujícím dotazem.
8.1. User#
Chci modelovat ochlazování kávy pomocí Newtonova zákona ochlazování. Vygeneruj mi kód, který řeší příslušnou diferenciální rovnici. Použij knihovnu scipy.
8.2. Assistant#
Samozřejmě! Pro řešení diferenciální rovnice pomocí Newtonova zákona ochlazování můžeme použít knihovnu scipy
. Nejprve musíme nainstalovat tuto knihovnu, pokud ji ještě nemáme nainstalovanou. Můžeme to udělat pomocí příkazu !pip install scipy
. Poté můžeme začít s kódem.
Začneme importem potřebných knihoven a definicí diferenciální rovnice:
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
# Definice diferenciální rovnice
def newtonuv_zakon_ochlazovani(T, t, k):
dTdt = -k * (T - T_okolni)
return dTdt
Následně musíme definovat počáteční podmínku, časový interval a konstantu ochlazování:
# Počáteční podmínka
T0 = 90
# Časový interval
t = np.linspace(0, 10, 100)
# Konstanta ochlazování
k = 0.1
# Teplota okolí
T_okolni = 25
Nakonec můžeme použít funkci odeint
z knihovny scipy
k řešení diferenciální rovnice a vykreslit výsledky:
# Řešení diferenciální rovnice
T = odeint(newtonuv_zakon_ochlazovani, T0, t, args=(k,))
# Vykreslení výsledků
plt.plot(t, T)
plt.xlabel('Čas')
plt.ylabel('Teplota')
plt.title('Ochlazování kávy')
plt.grid(True)
plt.show()
Tímto kódem bychom měli získat graf závislosti teploty kávy na čase.
Konec odpovědi od bota a spuštění kódu potvrdí předpoklad. Dostaneme následující obrázek.
8.3. Úkol#
Knihovna SciPy nainstalována je, takže první část odpovědi přejdeme.
Vykopírujte si všechny části kódu do odpovědního políčka a ověřte (zatím bez odeslání odpovědi, tj. tlačítkem Precheck), že dostanete uvedený obrázek.
Poté se snažte odstranit evidentní nedostatek, že nevidíme, jak teplota chladne k teplotě místnosti. Zkusme prodloužit čas simulace. Z grafu to vypadá, že simulace končí po deseti časových jednotkách. Pokuste se lokalizovat místo, kde je toto v programu nastaveno. Poté opravte na 50 časových jednotek. Jinak nic neměňte a sledujte, jestli se obrázek změní tak, že uvidíme, jak se pokles teploty zpomaluje.