$SPAD/src/input heat.input

Timothy Daly December 3, 2016

Abstract

Contents

2

1 License

— license —

--Copyright The Numerical Algorithms Group Limited 1991.

———-

— * —

)set break resume
)spool heat.output
)set message test on
)set message auto off
)clear all

———-

This is the heat equation — * —

--S 1 of 11
u:= operator('u);
--R
--R
--R                                                          Type: BasicOperator
--E 1
--S 2 of 11
heat:= D(u(x, t), t) - D(u(x, t), x, 2) = 0
--R
--R
--R   (2)  - u    (x,t) + u  (x,t)= 0
--R           ,1,1         ,2
--R                                          Type: Equation(Expression(Integer))
--E 2

———-

This is the similarity form of the proposed solution — * —

--S 3 of 11
f:= operator('f);
--R
--R
--R                                                          Type: BasicOperator
--E 3
--S 4 of 11

s:= rule(u(x, t) == f(x/sqrt(t))/sqrt(t))
--R
--R
--R                       x
--R                  'f(----)
--R                      +-+
--R                     \|t
--R   (4)  u(x,t) == --------
--R                     +-+
--R                    \|t
--R                       Type: RewriteRule(Integer,Integer,Expression(Integer))
--E 4

———-

Apply s to the heat equation — * —

--S 5 of 11
s(lhs(heat)) = 0
--R
--R
--R             ,,   x       +-+ ,   x           x
--R        - 2tf  (----) - x\|t f (----) - t f(----)
--R                 +-+             +-+         +-+
--R                \|t             \|t         \|t
--R   (5)  -----------------------------------------= 0
--R                           2 +-+
--R                         2t \|t
--R                                          Type: Equation(Expression(Integer))
--E 5

———-

Change to the similarity variable z = x/sqrt(t)

— * —

--S 6 of 11
subst(lhs(%), x = z*sqrt(t)) = 0
--R
--R
--R            ,,        ,
--R        - 2f  (z) - zf (z) - f(z)
--R
--R   (6)  -------------------------= 0
--R                     +-+
--R                  2t\|t
--R                                          Type: Equation(Expression(Integer))
--E 6

———-

Eliminate the denominator — * —

--S 7 of 11
% * denom(lhs(%))
--R
--R
--R            ,,        ,
--R   (7)  - 2f  (z) - zf (z) - f(z)= 0
--R
--R                                          Type: Equation(Expression(Integer))
--E 7

———-

Now, solve the ordinary differential equation — * —

--S 8 of 11
eq:=%
--R
--R
--R            ,,        ,
--R   (8)  - 2f  (z) - zf (z) - f(z)= 0
--R
--R                                          Type: Equation(Expression(Integer))
--E 8
--S 9 of 11
solve(%, f, z=0,[k1,k2])
--R
--R
--R                2         2               2         2               2
--R               z        %P               z        %P               z
--R             - --   z   ---            - --   0   ---            - --
--R                4 ++     4                4 ++     4                4
--R   (9)  k2 %e     |   %e   d%P  - k2 %e     |   %e   d%P  + k1 %e
--R                 ++                        ++
--R                                         Type: Union(Expression(Integer),...)
--E 9

———-

Finally, transform back to the original variables — * —

--S 10 of 11
subst(%, z = x/sqrt(t))/sqrt(t)
--R
--R

--R                       x
--R                 2   ----     2               2         2               2
--R                x     +-+   %P               x        %P               x
--R              - --   \|t    ---            - --   0   ---            - --
--R                4t ++        4               4t ++     4               4t
--R         k2 %e     |      %e   d%P  - k2 %e     |   %e   d%P  + k1 %e
--R                  ++                           ++
--R   (10)  ----------------------------------------------------------------
--R                                        +-+
--R                                       \|t
--R                                                    Type: Expression(Integer)
--E 10

———-

If we set k2 = 0 and k1 = 1/(2*sqrt(we will obtain the usual fundamental solution of the heat equation

— * —

--S 11 of 11
subst(%, [k2 = 0, k1 = 1/(2*sqrt(%pi))])
--R
--R
--R                 2
--R                x
--R              - --
--R                4t
--R            %e
--R   (11)  -----------
--R           +---+ +-+
--R         2\|%pi \|t
--R                                                    Type: Expression(Integer)
--E 11
)spool
)lisp (bye)

———-

References^{[1] nothing}

7