# -*- coding: utf-8 -*-
"""
Created on Mon Oct  5 13:26:32 2026

@author: noeli
"""
import matplotlib.pyplot as plt 


a = 0.5
L = 1
Tx0 = 0
TL = 0
tau = 1
Nx = 30
Nt = 1000
dt = tau/(Nt-1)
dx = L/(Nx-1)


T = [[None for j in range(Nx)] for i in range(Nt)]
T[0] = [100 for j in range(Nx)]

for i in range(Nt-1):
    for j in range(Nx) :
        if j!=0 and j!= Nx-1 :
            der2 = (T[i][j+1]-2*T[i][j] + T[i][j-1])/(dx**2)
        if j == 0 :
            der2 = (T[i][1] - 2*T[i][0] + Tx0) /(dx**2)
        if j == Nx-1 :
            der2 = (TL - 2*T[i][-1] + T[i][-2])/(dx**2)
        T[i+1][j] = T[i][j] + dt*a*der2
        
        
        
x = [j*dx for j in range(Nx)]
plt.figure()


for i in range(0, Nt, 100) :
    plt.plot(x,T[i], label = f"t = {i*dt : .2f} s ")


plt.xlabel("x(m)")
plt.ylabel("T(°C)")
plt.title("Evolution de la température T(x)")
plt.legend()
plt.grid(True)
plt.show()      


        
        
        
