## `detools::pdesolve` -- solver for partial differential equations

#### Introduction

`detools::pdesolve` solves partial differential equations.

#### Call(s)

`detools::pdesolve(pde, indl, depl)`
`detools::pdesolve(df, DV)`

#### Parameters

`pde` | - | 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`.

#### Returns

a 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 Functions

`detools::charSolve`, `detools::detSys`, `solve`

#### Details

- Solving partial differential equations is a very difficult task and one should not expect miracles from `detools::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 1

The 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.

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000