Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Any Mathematica whizzes?

  1. Aug 13, 2008 #1
    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]}];
    This works an absolute charm. Then to compute the associated adjoint, I use:

    Code (Text):
    AdjointFrechetD[support_List, dependVar_List,
    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,
  2. jcsd
  3. Aug 13, 2008 #2
    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.

Share this great discussion with others via Reddit, Google+, Twitter, or Facebook