function y = eltSomme(n,x,t)
// Termes de la série à étudier

        y = (4 / (n*%pi)^3) * ((-1)^n - 1) * exp( (-(n*%pi)^2) * t) * sin(n*%pi*x);
endfunction

function s = sommePartielle(N,x,t)
// Calcule la somme partielle de 0 jusqu'à N d'un eltSomme

    s = 0;
    for i = 1:1:N
        s = s + eltSomme(i,x,t);
    end
endfunction

function res = sommeTotale(N,x,t,prec)
// Calcule une somme totale (définie avec eltSomme) selon une précision prec

    if (abs(eltSomme(N+1,x,t)) < prec)
        res = sommePartielle(N,x,t);
    else
        res = sommeTotale(N+1,x,t,prec);
    end
endfunction

function res = graphPb4()
// Graphe Problème 4

	precX = 0.05; // Précision de x
	precT = 0.05; // Précision de t
	precZ = 0.01; // Précision de u(x,t) 
    x = 0:precX:1;
    t = 0:precT:1;
    for i=1:length(x)
        for j=1:length(t)
            z(i,j) = sommeTotale(0,x(i),t(j),precZ);
        end
    end
    plot3d(x,t,z);
endfunction

function res = graphPb5()
// Graphe Problème 5

	precX = 0.05; // Précision de x
	precT = 0.05; // Précision de t
	precZ = 0.01; // Précision de v(x,t)
    x = 0:precX:1;
    t = 0:precT:1;
    for i=1:length(x)
        for j=1:length(t)
            z(i,j) = 1 + x(i) + sommeTotale(0,x(i),t(j),precZ);
        end
    end
    plot3d(x,t,z);
endfunction
