# Any Mathematica whizzes?

1. Aug 13, 2008

### Anthony

Hi all,

I'm currently trying to implement some code to compute the Frechet derivative of a system of PDEs, and the associated formal adjoint. The code I'm using to compute derivative is:

Code (Text):
FrechetD[support_List, dependVar_List,
independVar_List, testfunction_List] :=
Block[{indep, frechet, deriv, \[Epsilon], r0, x1, x2},
r0 = Function[indep, x1 + \[Epsilon] x2];
frechet = {}; Do[deriv = {};
Do[AppendTo[deriv, \!$$\*SubscriptBox[\(\[PartialD]$$, $$\[Epsilon]$$]\ $$(support[[ j]] /. \[IndentingNewLine]dependVar[[ i]] -> \((r0 /. \[IndentingNewLine]{indep -> independVar, \[IndentingNewLine]x1 -> dependVar[[i]] @@ independVar, \[IndentingNewLine]x2 -> testfunction[[i]] @@ independVar})$$)\)\) /. \[Epsilon] -> 0],
{i, 1, Length[support]}];
AppendTo[frechet, deriv],
{j, 1, Length[support]}];
frechet]
This works an absolute charm. Then to compute the associated adjoint, I use:

Code (Text):
independVar_List, testfunction_List] :=
Block[{subrule, $testf, frechet, n, b}, subrule = b_. ($testf^(n__)) @@ independVar :>
(-1)^Plus @@ {n} \!$$\*SubscriptBox[\(\[PartialD]$$, $$Delete[Thread[{independVar, {n}}], 0]$$]$$(b\ testf @@ independVar)$$\);
frechet = FrechetD[support, dependVar,
independVar , testfunction];
Do[frechet =
frechet /.
(subrule /. \$testf -> testfunction[[i]]),
{i, 1, Length[testfunction]}];
frechet = Transpose[frechet]]
This doesn't work, sadly. All it seems to do is give me the transpose of the original Frechet derivative matrix. The code originally came from a book I've looked at, so it can't be too far wrong. Sadly, my mathematica skills are pretty much non-existent, so I haven't a clue what the problem is! If anyone could give me some pointers it would be much appreciated!

Many thanks,
Ant

2. Aug 13, 2008

### JeffNYC

Ant, I wish I could help you but I'm a novice myself. While I look forward to a response to this, if anyone would advise me on the best book to purchase to learn Mathematica 6, any opinions would be appreciated.

Jeff