kill(all)$

solve pde (part 1), use laplace transform. 'version 1.0'
peter.vlasschaert@gmail.com,11/12/2018

load(orthopoly)$

Solving PDE  (use Laplace Transform)
----------------------------------------------------------

rem : http:// maxima.sourceforge.net/

simple example :  'Maxima' command  laplace
-------------------------

q:laplace(sin(t), t, s);

find :  w=w(x,y) from PDE

PDE : solve :eq
==========

p1:'diff(w(x,y),x) = 2*'diff(w(x,y),y)+w(x,y);

p1a: part(lhs(p1),1);

Initial : condition: ic
===============

p2: w(x,0) = 6*%e^(-3*x);

Solve :
======

first      : Laplace Transformation , y  =  t
-------------------------------------------------------

p3:laplace(p1,y,s);

second : transform ODE2
---------------------------------------

p4:part(lhs(p3),0);

p4a:part(lhs(p3),1) = v;

p4b:subst([p2,p4a],p3);

thrid : use ode2 , v=v(x), use %c = 0
------------------------------------------------------

p5:ode2(%,v,x);

p5a:expand(p5);

p5b:subst([%c=0],p5a);

fourth : inverse laplace transformation
----------------------------------------------------------

simple example : 'Maxima' command  ilt

q1:ilt(q,s,t);

rem t =y, see 'above'

p6:ilt(p5b,s,y);

p6a:p1a =rhs(p6);

check : solution 'p6a'  ? solution of  'p1'
==================================

p7:subst([p6a],p1);

p7a:ev(p7,nouns);

p7b:is(p7a);

w(x,y)  => w(x,t)

given  :  pde, ic 
=============

eq : 'diff(w,x,2)+2*'diff(w,x,1,t,1)+'diff(w,t,2) = 0;
ic   : [w(x,0) = 0,at(diff(w(x,t),t),t=0) =3*x];

use : at   'command ' for intial conditions
--------------------------------------------------------------
syntax : at( g(x,t) , t = value) = f(x)

from 'p3' above  w => w(x,t)

eq1:subst([w=w(x,t)],eq);

eqh: part(lhs(eq1),1,1);

We can try to solve :eq1,ic
======================

assume(s>0);

1e)  laplace transform. (eq1)
========================

p8:laplace(eq1,t,s);

2e) subst ic 
==========

p8a:subst(ic,p8);

3e) transform ode : seconder order ODE 'p8a' , two constant.
===============

p8b:part(lhs(p8),1,1)=v;

p8c:subst([p8b],p8a);

4e)  solve with ode2 : v = v(x)
=================

p8d:ode2(p8c,v,x);

%k1,%k2 = 0 , we will check this  ?

p8e:[%k1=0,%k2=0];

p8f:subst(p8e,p8d);

5e)  inverselaplace transform : 'see above: simple example'
=========================
rem :eqh  'see above'

p8g:ilt(p8f,s,t);

p8h:eqh =rhs(p8g);

6e) check : solution 'p8h' in 'eq1'
=================

p8i:subst([p8h],eq1);

p8j:ev(p8i,nouns);

p8k:is(p8j);

solve : load(odes), solving ode's
----------------------------------------------------------------------------------------------
https://wolfgang.dautermann.at/maxima/nightlybuild/
rem :https://themaximalist.org/category/differential-equations/
-----------------------------------------------------------------------------------------------
improved : maxima function for inverse laplacetransform.
file :laplaceInv.zip
-----------------------------------------------------------------------------------------------