#set document(title: "6.5 Solving PDEs with the Laplace Transform", author: "Jiří Lebl") #set page(width: 8.5in, height: auto, margin: 1in) #import "@preview/cetz:0.5.2" #set text(font: ("STIX Two Text", "Libertinus Serif", "New Computer Modern"), size: 10.5pt, lang: "en") #show math.equation: set text(font: ("STIX Two Math", "New Computer Modern Math")) #set par(justify: true, leading: 0.62em, spacing: 0.9em) #set enum(spacing: 1.1em) // room between list items so tall inline fractions don't collide #set list(spacing: 1.1em) #set table(stroke: 0.5pt + rgb("#c7ccd3")) #let BLUE = rgb("#183B6F") // brand navy — section bars + example/solution labels (white on navy 11.09:1) #let ORANGE = rgb("#A94509") // brand primary-700 — AA-safe deep orange for TEXT (5.93:1 on white; raw brand #F37021 is 2.94:1 and must never carry text) #let RED = rgb("#DC2626") // brand error-600 #let GREEN = rgb("#059669") // brand success-600 (decoration only; small green text uses green-text #007942) #show heading.where(level: 1): it => block(width: 100%, above: 0pt, below: 16pt, fill: gradient.linear(BLUE, rgb("#2C5AA0")), inset: (x: 14pt, y: 12pt), radius: 3pt, text(fill: white, weight: "bold", size: 19pt, it.body)) #show heading.where(level: 2): it => block(width: 100%, above: 18pt, below: 10pt, fill: BLUE, inset: (x: 10pt, y: 6pt), radius: 2pt, text(fill: white, weight: "bold", size: 12pt, it.body)) #show heading.where(level: 3): it => text(fill: ORANGE, weight: "bold", size: 12.5pt, it.body) #show heading.where(level: 4): it => text(fill: BLUE, weight: "bold", size: 10.5pt, it.body) #let examplebox(label, title, body) = block(width: 100%, breakable: true, fill: rgb("#EFF1F5"), stroke: 0.5pt + rgb("#CFDDF0"), radius: 4pt, inset: 10pt, above: 12pt, below: 12pt)[ #block(below: 6pt)[#box(fill: BLUE, inset: (x: 6pt, y: 2pt), radius: 2pt, text(fill: white, weight: "bold", size: 8.5pt, label)) #h(0.4em) #strong[#title]] #body] // rail = decorative left rule (raw brand token); labelcolor = AA-safe label text shade #let notebox(label, rail, labelcolor, tint, body) = block(width: 100%, breakable: true, fill: tint, stroke: (left: 3pt + rail), inset: (left: 10pt, rest: 8pt), radius: (right: 4pt), above: 11pt, below: 11pt)[ #text(fill: labelcolor, weight: "bold", size: 7.5pt, tracking: 0.5pt)[#upper(label)] #linebreak() #body] #let solutionbox(body) = block(above: 4pt, below: 8pt)[ #text(fill: BLUE, weight: "bold", size: 8.5pt)[Solution] #linebreak() #body] #let figph(msg) = block(width: 100%, height: 60pt, fill: rgb("#f6f7f9"), stroke: (paint: rgb("#c7ccd3"), dash: "dashed"), radius: 4pt, inset: 10pt)[ #align(center + horizon, text(fill: rgb("#889"), style: "italic", size: 9pt, msg))] // Standardize inlined figure sizes: measure the natural CeTZ canvas, then scale to a // consistent envelope (aspect-aware; see build_typst.py FIG_* constants). Unlike the // print preamble, dimensions are FLOORED: in an editor a user can trim a figure to a // degenerate 1-D shape (a bare line), and w/h or tw/w would then divide by zero. #let _STD_W = 3.5 #let _WIDE_W = 5.6 #let _MAX_H = 3.4 #let _ASPECT_WIDE = 2.2 #let _UPSCALE_MAX = 1.15 #let stdfig(body) = context { let m = measure(body) let w = calc.max(m.width / 1in, 0.01) let h = calc.max(m.height / 1in, 0.01) let tw = if w / h > _ASPECT_WIDE { _WIDE_W } else { _STD_W } let s = calc.min(tw / w, _MAX_H / h, _UPSCALE_MAX) align(center, box(scale(x: s * 100%, y: s * 100%, reflow: true, body))) } #show figure: set block(breakable: false) #set figure(gap: 8pt) #show figure.caption: set text(size: 8.5pt, fill: rgb("#555")) == 6.5#h(0.6em)Solving PDEs with the Laplace Transform The Laplace transform comes from the same family of transforms as does the Fourier series#math.equation(block: false, alt: "to the power 1")[$1$], which we used in #link("https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/4%3A_Fourier_series_and_PDEs")[Chapter 4] to solve partial differential equations (PDEs). It is therefore not surprising that we can also solve PDEs with the Laplace transform. Given a PDE in two independent variables #math.equation(block: false, alt: "x")[$x$] and #math.equation(block: false, alt: "t")[$t$], we use the Laplace transform on one of the variables (taking the transform of everything in sight), and derivatives in that variable become multiplications by the transformed variable #math.equation(block: false, alt: "s")[$s$]. The PDE becomes an ODE, which we solve. Afterwards we invert the transform to find a solution to the original problem. It is best to see the procedure on an example. #examplebox("Example 1")[][ Consider the first order PDE #math.equation(block: true, alt: "y sub t equals minus α y sub x , for x greater than 0 , t greater than 0 ,")[$y_(t) = − α y_(x) , #h(2em) "for " x > 0 , #h(0.5em) t > 0 ,$] with side conditions #math.equation(block: true, alt: "y open parenthesis 0 , t close parenthesis equals C , y open parenthesis x , 0 close parenthesis equals 0 .")[$y ( 0 , t ) = C , #h(2em) y ( x , 0 ) = 0 .$] This equation is called the #emph[convection equation] or sometimes the #emph[transport equation], and it already made an appearance in #link("https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/1%3A_First_order_ODEs/1.9%3A_First_Order_Linear_PDE")[Section 1.9], with different conditions. See Figure #math.equation(block: false, alt: "1")[$1$] for a diagram of the setup. #figure(figph[Box on the xy-axes with y\_t = -alpha y\_x, y = C, and y = 0], alt: "Box on the xy-axes with y_t = -alpha y_x, y = C, and y = 0", caption: [Figure #math.equation(block: false, alt: "1")[$1$]: Transport equation on a half line.]) A physical setup of this equation is a river of solid goo, as we do not want anything to diffuse. The function #math.equation(block: false, alt: "y")[$y$] is the concentration of some toxic substance.#math.equation(block: false, alt: "squared")[$2$] The variable #math.equation(block: false, alt: "x")[$x$] denotes position where #math.equation(block: false, alt: "x equals 0")[$x = 0$] is the location of a factory spewing the toxic substance into the river. The toxic substance flows into the river so that at #math.equation(block: false, alt: "x equals 0")[$x = 0$] the concentration is always #math.equation(block: false, alt: "C")[$C$]. We wish to see what happens past the factory, that is at #math.equation(block: false, alt: "x greater than 0")[$x > 0$]. Let #math.equation(block: false, alt: "t")[$t$] be the time, and assume the factory started operations at #math.equation(block: false, alt: "t equals 0")[$t = 0$], so that at #math.equation(block: false, alt: "t equals 0")[$t = 0$] the river is just pure goo. Consider a function of two variables #math.equation(block: false, alt: "y open parenthesis x , t close parenthesis")[$y ( x , t )$]. Let us fix #math.equation(block: false, alt: "x")[$x$] and transform the #math.equation(block: false, alt: "t")[$t$] variable. For convenience, we treat the transformed #math.equation(block: false, alt: "s")[$s$] variable as a parameter, since there are no derivatives in #math.equation(block: false, alt: "s")[$s$]. That is, we write #math.equation(block: false, alt: "Y open parenthesis x close parenthesis")[$Y ( x )$] for the transformed function, and treat it as a function of #math.equation(block: false, alt: "x")[$x$], leaving #math.equation(block: false, alt: "s")[$s$] as a parameter. #math.equation(block: true, alt: "Y open parenthesis x close parenthesis equals L \\{ y open parenthesis x , t close parenthesis \\} equals ∫ 0 infinity y open parenthesis x , t close parenthesis e to the power minus s t d s .")[$Y ( x ) = L \\\{ y ( x , t ) \\\} = ∫_(0)^(∞) y ( x , t ) e^(− s t) d s .$] The transform of a derivative with respect to #math.equation(block: false, alt: "x")[$x$] is just differentiating the transformed function: #math.equation(block: true, alt: "L \\{ y sub x open parenthesis x , t close parenthesis \\} equals ∫ 0 infinity y sub x open parenthesis x , t close parenthesis e to the power minus s t d s equals the fraction d over d x [ ∫ 0 infinity y open parenthesis x , t close parenthesis e to the power minus s t d s ] equals Y prime open parenthesis x close parenthesis .")[$L \\\{ y_(x) ( x , t ) \\\} = ∫_(0)^(∞) y_(x) ( x , t ) e^(− s t) d s = frac(d, d x) [ ∫_(0)^(∞) y ( x , t ) e^(− s t) d s ] = Y^(′) ( x ) .$] To transform the derivative in #math.equation(block: false, alt: "t")[$t$] (the variable being transformed), we use the rules from #link("https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/6%3A_The_Laplace_Transform/6.2%3A_Transforms_of_derivatives_and_ODEs")[Section 6.2]: #math.equation(block: true, alt: "L \\{ y sub t open parenthesis x , t close parenthesis \\} equals s Y open parenthesis x close parenthesis minus y open parenthesis x , 0 close parenthesis .")[$L \\\{ y_(t) ( x , t ) \\\} = s Y ( x ) − y ( x , 0 ) .$] In our specific case, #math.equation(block: false, alt: "y open parenthesis x , 0 close parenthesis equals 0")[$y ( x , 0 ) = 0$], and so #math.equation(block: false, alt: "L \\{ y sub t open parenthesis x , t close parenthesis \\} equals s Y open parenthesis x close parenthesis")[$L \\\{ y_(t) ( x , t ) \\\} = s Y ( x )$]. We transform the equation to find #math.equation(block: true, alt: "s Y open parenthesis x close parenthesis equals minus α Y prime open parenthesis x close parenthesis .")[$s Y ( x ) = − α Y^(′) ( x ) .$] This ODE needs an initial condition. The initial condition is the other side condition of the PDE, the one that depends on #math.equation(block: false, alt: "x")[$x$]. Everything is transformed, so we must also transform this condition #math.equation(block: true, alt: "Y open parenthesis 0 close parenthesis equals L \\{ y open parenthesis 0 , t close parenthesis \\} equals L \\{ C \\} equals the fraction C over s .")[$Y ( 0 ) = L \\\{ y ( 0 , t ) \\\} = L \\\{ C \\\} = frac(C, s) .$] We solve the ODE problem #math.equation(block: false, alt: "s Y open parenthesis x close parenthesis equals minus α Y prime open parenthesis x close parenthesis")[$s Y ( x ) = − α Y^(′) ( x )$], #math.equation(block: false, alt: "Y open parenthesis 0 close parenthesis equals the fraction C over s")[$Y ( 0 ) = frac(C, s)$], to find #math.equation(block: true, alt: "Y open parenthesis x close parenthesis equals the fraction C over s e to the power minus the fraction s over α x .")[$Y ( x ) = frac(C, s) e^(− frac(s, α) x) .$] We are not done, we have #math.equation(block: false, alt: "Y open parenthesis x close parenthesis")[$Y ( x )$], but we really want #math.equation(block: false, alt: "y open parenthesis x , t close parenthesis")[$y ( x , t )$]. We transform the #math.equation(block: false, alt: "s")[$s$] variable back to #math.equation(block: false, alt: "t")[$t$]. Let #math.equation(block: true, alt: "0 if t less than 0 ,; 1 otherwise")[$0 "if " t < 0 , \ 1 "otherwise"$] be the Heaviside function. As #math.equation(block: true, alt: "L \\{ u open parenthesis t minus a close parenthesis \\} equals ∫ 0 infinity u open parenthesis t minus a close parenthesis e to the power minus s t d t equals ∫ a infinity e to the power minus s t d t equals the fraction e to the power minus a s over s ,")[$L \\\{ u ( t − a ) \\\} = ∫_(0)^(∞) u ( t − a ) e^(− s t) d t = ∫_(a)^(∞) e^(− s t) d t = frac(e^(− a s), s) ,$] then #math.equation(block: true, alt: "y open parenthesis x , t close parenthesis equals L to the power minus 1 { the fraction C over s e to the power minus the fraction s over α x } equals C u open parenthesis t minus the fraction x over α close parenthesis .")[$y ( x , t ) = L^(− 1) \{ frac(C, s) e^(− frac(s, α) x) \} = C u ( t − frac(x, α) ) .$] In other words, #math.equation(block: true, alt: "0 if t less than the fraction x over α ,; C otherwise.")[$0 "if " t < frac(x, α) , \ C "otherwise."$] See Figure #math.equation(block: false, alt: "2")[$2$] for a diagram of this solution. The line of slope #math.equation(block: false, alt: "the fraction 1 over α")[$frac(1, α)$] indicates the wavefront of the toxic substance in the picture as it is leaving the factory. What the equation does is simply move the initial condition to the right at speed #math.equation(block: false, alt: "α")[$α$]. #figure(figph[Graph of wavefront slope 1/alpha. Shows line y = 1/alpha x. Cuts with lower half y = 0 and upper half y = C], alt: "Graph of wavefront slope 1/alpha. Shows line y = 1/alpha x. Cuts with lower half y = 0 and upper half y = C", caption: [Figure #math.equation(block: false, alt: "2")[$2$]: Wavefront of toxic substance is a line of slope #math.equation(block: false, alt: "the fraction 1 over a")[$frac(1, a)$].]) Shhh…#math.equation(block: false, alt: "y")[$y$] is not differentiable, it is not even continuous (nobody ever seems to notice). How could we plug something that’s not differentiable into the equation? Well, just think of a differentiable function very very close to #math.equation(block: false, alt: "y")[$y$]. Or, if you recognize the derivative of the Heaviside function as the delta function, then all is well too: #math.equation(block: true, alt: "y sub t open parenthesis x , t close parenthesis equals the fraction ∂ over ∂ t [ C u open parenthesis t minus the fraction x over α close parenthesis ] equals C u prime open parenthesis t minus the fraction x over α close parenthesis equals C δ open parenthesis t minus the fraction x over α close parenthesis")[$y_(t) ( x , t ) = frac(∂, ∂ t) [ C u ( t − frac(x, α) ) ] = C u^(′) ( t − frac(x, α) ) = C δ ( t − frac(x, α) )$] and #math.equation(block: true, alt: "y sub x open parenthesis x , t close parenthesis equals the fraction ∂ over ∂ x [ C u open parenthesis t minus the fraction x over α close parenthesis ] equals minus the fraction C over α u prime open parenthesis t minus the fraction x over α close parenthesis equals minus the fraction C over α δ open parenthesis t minus the fraction x over α close parenthesis .")[$y_(x) ( x , t ) = frac(∂, ∂ x) [ C u ( t − frac(x, α) ) ] = − frac(C, α) u^(′) ( t − frac(x, α) ) = − frac(C, α) δ ( t − frac(x, α) ) .$] So #math.equation(block: false, alt: "y sub t equals minus α y sub x")[$y_(t) = − α y_(x)$]. ] Laplace equation is very good with constant coefficient equations. One advantage of Laplace is that it easily handles nonhomogeneous side conditions. Let us try a more complicated example. #examplebox("Example 2")[][ Consider #math.equation(block: true, alt: "y sub t plus y sub x plus y equals 0 , for x greater than 0 , t greater than 0 ,; y open parenthesis 0 , t close parenthesis equals sin open parenthesis t close parenthesis , y open parenthesis x , 0 close parenthesis equals 0 .")[$y_(t) + y_(x) + y = 0 , #h(2em) "for " x > 0 , #h(0.5em) t > 0 , \ y ( 0 , t ) = sin ( t ) , #h(2em) y ( x , 0 ) = 0 .$] Again, we transform #math.equation(block: false, alt: "t")[$t$], and we write #math.equation(block: false, alt: "Y open parenthesis x close parenthesis")[$Y ( x )$] for the transformed function. As #math.equation(block: false, alt: "y open parenthesis x , 0 close parenthesis equals 0")[$y ( x , 0 ) = 0$], we find #math.equation(block: true, alt: "s Y open parenthesis x close parenthesis plus Y prime open parenthesis x close parenthesis plus Y open parenthesis x close parenthesis equals 0 , Y open parenthesis 0 close parenthesis equals the fraction 1 over s squared plus 1 .")[$s Y ( x ) + Y^(′) ( x ) + Y ( x ) = 0 , #h(2em) Y ( 0 ) = frac(1, s^(2) + 1) .$] The solution of the transformed equation is #math.equation(block: true, alt: "Y open parenthesis x close parenthesis equals the fraction 1 over s squared plus 1 e to the power minus open parenthesis s plus 1 close parenthesis x equals the fraction 1 over s squared plus 1 e to the power minus x s e to the power minus x .")[$Y ( x ) = frac(1, s^(2) + 1) e^(− ( s + 1 ) x) = frac(1, s^(2) + 1) e^(− x s) e^(− x) .$] Using the second shifting property (6.2.14) and linearity of the transform, we obtain the solution #math.equation(block: true, alt: "y open parenthesis x , t close parenthesis equals e to the power minus x sin open parenthesis t minus x close parenthesis u open parenthesis t minus x close parenthesis .")[$y ( x , t ) = e^(− x) sin ( t − x ) u ( t − x ) .$] ] We can also detect when the problem is in the sense that it has no solution. Let us change the equation to #math.equation(block: true, alt: "minus y sub t plus y sub x equals 0 , for x greater than 0 , t greater than 0 ,; y open parenthesis 0 , t close parenthesis equals sin open parenthesis t close parenthesis , y open parenthesis x , 0 close parenthesis equals 0 .")[$− y_(t) + y_(x) = 0 , #h(2em) "for " x > 0 , #h(0.5em) t > 0 , \ y ( 0 , t ) = sin ( t ) , #h(2em) y ( x , 0 ) = 0 .$] Then the problem has no solution. First, let us see this in the language of#link("https://math.libretexts.org/Bookshelves/Differential_Equations/Differential_Equations_for_Engineers_(Lebl)/1%3A_First_order_ODEs/1.9%3A_First_Order_Linear_PDE")[Section 1.9]. The characteristic curves are #math.equation(block: false, alt: "t equals minus x plus C")[$t = − x + C$]. If #math.equation(block: false, alt: "τ")[$τ$] is the the characteristic coordinate, then we find the equation #math.equation(block: false, alt: "y sub τ equals 0")[$y_(τ) = 0$] along the curve, meaning a solution is constant along characteristic curves. But these curves intersect both the #math.equation(block: false, alt: "x")[$x$]-axis and the #math.equation(block: false, alt: "t")[$t$]-axis. For example, the curve #math.equation(block: false, alt: "t equals minus x plus 1")[$t = − x + 1$] intersects at #math.equation(block: false, alt: "open parenthesis 1 , 0 close parenthesis")[$( 1 , 0 )$] and #math.equation(block: false, alt: "open parenthesis 0 , 1 close parenthesis")[$( 0 , 1 )$]. The solution is constant along the curve so #math.equation(block: false, alt: "y open parenthesis 1 , 0 close parenthesis")[$y ( 1 , 0 )$] should equal #math.equation(block: false, alt: "y open parenthesis 0 , 1 close parenthesis")[$y ( 0 , 1 )$]. But #math.equation(block: false, alt: "y open parenthesis 1 , 0 close parenthesis equals 0")[$y ( 1 , 0 ) = 0$] and #math.equation(block: false, alt: "y open parenthesis 0 , 1 close parenthesis equals sin open parenthesis 1 close parenthesis ⧸ equals 0")[$y ( 0 , 1 ) = sin ( 1 ) "⧸" = 0$]. See Figure #math.equation(block: false, alt: "3")[$3$]. #figure(figph[Graph shows y is constant along t = -x+1 with y = sin(t), y(1,0) = 0 and y(0,1) = sin(1)], alt: "Graph shows y is constant along t = -x+1 with y = sin(t), y(1,0) = 0 and y(0,1) = sin(1)", caption: [Figure #math.equation(block: false, alt: "3")[$3$]: Ill-posed problem.]) Now consider the transform. The transformed problem is #math.equation(block: true, alt: "minus s Y open parenthesis x close parenthesis plus Y prime open parenthesis x close parenthesis equals 0 , Y open parenthesis 0 close parenthesis equals the fraction 1 over s squared plus 1 ,")[$− s Y ( x ) + Y^(′) ( x ) = 0 , #h(0.5em) Y ( 0 ) = frac(1, s^(2) + 1) ,$] and the solution ought to be #math.equation(block: true, alt: "Y open parenthesis x close parenthesis equals the fraction 1 over s squared plus 1 e to the power s x .")[$Y ( x ) = frac(1, s^(2) + 1) e^(s x) .$] Importantly, this Laplace transform does not decay to zero at infinity! That is, since #math.equation(block: false, alt: "x greater than 0")[$x > 0$] in the region of interest, then #math.equation(block: true, alt: "lim sub s → infinity the fraction 1 over s squared plus 1 e to the power s x equals infinity ⧸ equals 0 .")[$lim_(s → ∞) frac(1, s^(2) + 1) e^(s x) = ∞ "⧸" = 0 .$] It almost looks as if we could use the shifting property, but notice that the shift is in the wrong direction. Of course, we need not restrict ourselves to first order equations, although the computations become more involved for higher order equations. #examplebox("Example 3")[][ Let us use Laplace for the following problem: #math.equation(block: true, alt: "y sub t equals y sub x x , 0 less than x less than infinity , t greater than 0 ,; y sub x open parenthesis 0 , t close parenthesis equals f open parenthesis t close parenthesis ,; y open parenthesis x , 0 close parenthesis equals 0 .")[$y_(t) = y_(x x) , #h(2em) 0 < x < ∞ , #h(0.5em) t > 0 , \ y_(x) ( 0 , t ) = f ( t ) , \ y ( x , 0 ) = 0 .$] Really we also impose other conditions on the solution so that for example the Laplace transform exists. For example, we might impose that #math.equation(block: false, alt: "y")[$y$] is bounded for each fixed time #math.equation(block: false, alt: "t")[$t$]. Transform the equation in the #math.equation(block: false, alt: "t")[$t$] variable to find #math.equation(block: true, alt: "s Y open parenthesis x close parenthesis equals Y double prime open parenthesis x close parenthesis .")[$s Y ( x ) = Y^(″) ( x ) .$] The general solution to this ODE is #math.equation(block: true, alt: "Y open parenthesis x close parenthesis equals A e to the power the square root of s x plus B e to the power minus the square root of s x .")[$Y ( x ) = A e^(sqrt(s) x) + B e^(− sqrt(s) x) .$] First #math.equation(block: false, alt: "A equals 0")[$A = 0$], since otherwise #math.equation(block: false, alt: "Y")[$Y$] does not decay to zero as #math.equation(block: false, alt: "s → infinity")[$s → ∞$]. Now consider the boundary condition. Transform #math.equation(block: false, alt: "Y prime open parenthesis 0 close parenthesis equals F open parenthesis s close parenthesis")[$Y^(′) ( 0 ) = F ( s )$] and so #math.equation(block: false, alt: "minus the square root of s B equals F open parenthesis s close parenthesis")[$− sqrt(s) B = F ( s )$]. In other words, #math.equation(block: true, alt: "Y open parenthesis x close parenthesis equals minus F open parenthesis s close parenthesis the fraction 1 over the square root of s e to the power minus the square root of s x .")[$Y ( x ) = − F ( s ) frac(1, sqrt(s)) e^(− sqrt(s) x) .$] If we look up the inverse transform in a table such as the one in Appendix B (or we spend the afternoon doing calculus), we find #math.equation(block: true, alt: "L to the power minus 1 [ e to the power minus the square root of s x ] equals the fraction x over the square root of 4 π t cubed e to the power the fraction minus x squared over 4 t ,")[$L^(− 1) [ e^(− sqrt(s) x) ] = frac(x, sqrt(4 π t^(3))) e^(frac(− x^(2), 4 t)) ,$] or #math.equation(block: true, alt: "L to the power minus 1 [ the fraction 1 over the square root of s e to the power minus the square root of s x ] equals the fraction 1 over the square root of π t e to the power the fraction minus x squared over 4 t .")[$L^(− 1) [ frac(1, sqrt(s)) e^(− sqrt(s) x) ] = frac(1, sqrt(π t)) e^(frac(− x^(2), 4 t)) .$] So #math.equation(block: true, alt: "y open parenthesis x , t close parenthesis equals L to the power minus 1 [ F open parenthesis s close parenthesis e to the power minus the square root of s x ] equals ∫ 0 t f open parenthesis τ close parenthesis the fraction 1 over the square root of π open parenthesis t minus τ close parenthesis e to the power the fraction minus x squared over 4 open parenthesis t minus τ close parenthesis d τ .")[$y ( x , t ) = L^(− 1) [ F ( s ) e^(− sqrt(s) x) ] = ∫_(0)^(t) f ( τ ) frac(1, sqrt(π ( t − τ ))) e^(frac(− x^(2), 4 ( t − τ ))) d τ .$] ] Laplace can solve problems where separation of variables fails. Laplace does not mind nonhomogeneity, but it is essentially only useful for constant coefficient equations. === Footnotes \[1\] There is a corresponding Fourier transform on the real line as well that looks sort of like the Laplace transform. \[2\] It’s a river of goo already, we’re not hurting the environment much more.