Directory[]

SetDirectory["numerickemetode/v9"]

Poisson

Konstantna funkcija f=10

nd1 = 
      NDSolve[{u''[x] == -10, u[0] == 0, u[1] == 0}, 
        u[x], {x, 0, 1}]

tn1 = Plot[u[x] /. nd1, {x, 0, 1}, PlotRange -> All]

tp1 = Import["poisson.dat", "Table"];

g1 = ListPlot[tp1]

Show[tn1, g1]

Primjer 2 iz predavanja tjedan3.pdf, funkcija je proporcionalna sinusu.

tp2 = Import["poisson.dat", "Table"];

gpr2 = ListPlot[tp2, PlotStyle -> RGBColor[1, 0, 0]]

nd2 = 
      NDSolve[{u''[x] == -16 (π^2) Sin[4 π x], u[0] == 0, 
          u[1] == 0}, u[x], {x, 0, 1}]

tpr2 = Plot[u[x] /. nd2, {x, 0, 1}, PlotRange -> All]

Show[tpr2, gpr2]

Temperatura

Jednadžba vodljivosti topline riješena pomoću  eksplicitne metode konačnih razlika.

t1 = Import["Temp0.dat", "Table"];

t2 = Import["Temp1.dat", "Table"];

t3 = Import["Temp2.dat", "Table"];

g1 = ListPlot[t1]

g2 = ListPlot[t2]

g3 = ListPlot[t3]

Show[g1, g2, g3]

Riješenja pomoću MOL metode.

molt1 = Import["TempMOL0.dat", "Table"];

molt2 = Import["TempMOL1.dat", "Table"];

molt3 = Import["TempMOL2.dat", "Table"];

mg3 = ListPlot[molt3, PlotStyle -> RGBColor[0, 1, 0]]

mg1 = ListPlot[molt1]

mg2 = ListPlot[molt2, PlotStyle -> RGBColor[1, 0, 0]]

Show[mg1, mg2, mg3]

Usporedba MOL i eksplicitne metode.

Show[g2, mg2]

Show[g3, mg3]

Rezultati dobiveni programom napisanim u fortranu.

df3 = Import["tempMOL.dat", "Table"];

fg3 = ListPlot[df3, PlotJoined -> True]

Show[fg3, mg3]

mg3

Pokušaj riješavanja pomoću NDSolve u Mathematici

\(nd1 = 
      NDSolve[{∂\_t u[x, t] + ∂\_{x, 2}u[x, t] == 0, 
          u[0, t] == 0, u[1, t] == 0, u[x, 0] == 100}, 
        u[x, t], {x, 0, 1}, {t, 0, 1}]\)

Plot[u[x, t] /. nd1 /. t ->  .5, {x, 0, 1}]

Već kod običnih linearnih parcijalnih diferencijalnih jednadžbi možemo imati velike probleme kod korištenja algoritama koji su skriveni u NDSolve funkciji.