Question: Trouble Plotting Solution in Maple Using Fokas Method for Heat Equation

Hello,

I’m trying to solve a problem from Modern Mathematical Methods for Scientists and Engineers using Maple, specifically applying the Fokas method (Unified Transform) to the heat equation on the half-line. The problem setup matches Example 9.1 from the book.

Everything runs fine until I try to plot the solution using plot3d.
 

restart; with(plots); with(LinearAlgebra); with(Student[VectorCalculus]); V := proc (k, x, t) options operator, arrow; -((1/2)*I)*exp(I*k*x-k^2*t)*(1/(k-I)+1/(k+I)-k*(1/(k^2+1)+1/(k^2-1)))/(Pi*k) end proc

proc (k, x, t) options operator, arrow; Student:-VectorCalculus:-`-`(Student:-VectorCalculus:-`*`(Student:-VectorCalculus:-`*`(Student:-VectorCalculus:-`*`(I, Student:-VectorCalculus:-`*`(2, Pi)^Student:-VectorCalculus:-`-`(1)), Student:-VectorCalculus:-`*`(exp(Student:-VectorCalculus:-`+`(Student:-VectorCalculus:-`*`(Student:-VectorCalculus:-`*`(I, k), x), Student:-VectorCalculus:-`-`(Student:-VectorCalculus:-`*`(k^2, t)))), k^Student:-VectorCalculus:-`-`(1))), Student:-VectorCalculus:-`+`(Student:-VectorCalculus:-`+`(Student:-VectorCalculus:-`+`(k, Student:-VectorCalculus:-`-`(I))^Student:-VectorCalculus:-`-`(1), Student:-VectorCalculus:-`+`(k, I)^Student:-VectorCalculus:-`-`(1)), Student:-VectorCalculus:-`-`(Student:-VectorCalculus:-`*`(k, Student:-VectorCalculus:-`+`(Student:-VectorCalculus:-`+`(k^2, 1)^Student:-VectorCalculus:-`-`(1), Student:-VectorCalculus:-`+`(k^2, -1)^Student:-VectorCalculus:-`-`(1))))))) end proc

(1)

phi1 := (1/8)*Pi; phi2 := 7*Pi*(1/8); k1 := proc (r) options operator, arrow; r*exp(I*phi1) end proc; k2 := proc (r) options operator, arrow; r*exp(I*phi2) end proc; dk1 := proc (r) options operator, arrow; diff(k1(r), r) end proc; dk2 := proc (r) options operator, arrow; diff(k2(r), r) end proc

u1 := proc (x, t) options operator, arrow; evalf(int(Re(V(k1(r), x, t)*dk1(r)-V(k2(r), x, t)*dk2(r)), r = 0 .. 80)) end proc

proc (x, t) options operator, arrow; evalf(Student:-VectorCalculus:-int(Re(Student:-VectorCalculus:-`+`(Student:-VectorCalculus:-`*`(V(k1(r), x, t), dk1(r)), Student:-VectorCalculus:-`-`(Student:-VectorCalculus:-`*`(V(k2(r), x, t), dk2(r))))), r = 0 .. 80)) end proc

(2)

u := proc (x, t) options operator, arrow; exp(-x/sqrt(2))*cos(t-x/sqrt(2))+u1(x, t) end proc

proc (x, t) options operator, arrow; Student:-VectorCalculus:-`+`(Student:-VectorCalculus:-`*`(exp(Student:-VectorCalculus:-`-`(Student:-VectorCalculus:-`*`(x, sqrt(2)^Student:-VectorCalculus:-`-`(1)))), cos(Student:-VectorCalculus:-`+`(t, Student:-VectorCalculus:-`-`(Student:-VectorCalculus:-`*`(x, sqrt(2)^Student:-VectorCalculus:-`-`(1)))))), u1(x, t)) end proc

(3)

plot3d(u(x, t), x = 0 .. 3, t = 0 .. 2*Pi, axes = boxed, shading = zhue, style = surface, labels = ["x", "t", "u(x,t)"])

NULL


 

Download fokas_method.mw

Has anyone successfully handled similar integrals inside plot3d? Is there a better way to numerically evaluate the Fokas integral so Maple can plot it efficiently?

 

Please Wait...