detools::pdesolve -- solver for
partial differential equations
Introductiondetools::pdesolve solves partial differential
equations.
Call(s)detools::pdesolve(pde, indl, depl)
detools::pdesolve(df, DV)
Parameterspde |
- | the differential equation(s): either a single expression or a list of expressions. |
indl |
- | the independent variables: a list of (indexed) identifiers. |
depl |
- | the dependent variables: a list of (indexed) identifiers. |
df |
- | the differential equation(s): either a single element
of a domain in Cat::DifferentialFunction(DV) or a list of
such elements. |
DV |
- | the differential variables: a domain in
Cat::DifferentialVariable. |
Returnsa single expression or a list of expressions; each entry represents
a component of the solution. If detools::pdesolve is not
able to solve the equation, it is returned unchanged.
Related
Functionsdetools::charSolve, detools::detSys, solve
Detailsdetools::pdesolve.
Currently, the main technique used is the method of characteristics.
Thus detools::pdesolve can basically only solve some
quasi-linear first order equations. Further solution techniques will be
added in the future.
Example
1The following call solves the quasi-linear equation
diff(u,t)-u*(diff(u,x)+diff(u,y))=0 with the initial
condition u(t=0)=x+y. For the input of the differential
equation a condensed notation is used (u([t]) instead of
diff(u(x,y,t),t) etc.); the initial condition is given in
parametrized form.
>> detools::pdesolve(u([t]) - u*(u([x]) + u([y])), [t, x, y], [u],
{t = 0, x = sigma, y = tau, u = sigma + tau},
{sigma, tau})
2 (t x - x - t y)
u = y - x + -----------------
2 t - 1
One can easily check by entering this expression into
the differential equations that it is indeed a solution (don't forget
to use normal!) and
that for t=0 we have u=x+y as required by the
initial condition.