(***********************************************************************
Mathematica-Compatible Notebook
This notebook can be used on any computer system with Mathematica 3.0,
MathReader 3.0, or any compatible application. The data for the notebook
starts with the line of stars above.
To get the notebook into a Mathematica-compatible application, do one of
the following:
* Save the data starting with the line of stars above into a file
with a name ending in .nb, then open the file inside the application;
* Copy the data starting with the line of stars above to the
clipboard, then use the Paste menu command inside the application.
Data for notebooks contains only printable 7-bit ASCII and can be
sent directly in email or through ftp in text mode. Newlines can be
CR, LF or CRLF (Unix, Macintosh or MS-DOS style).
NOTE: If you modify the data for this notebook not in a Mathematica-
compatible application, you must delete the line below containing the
word CacheID, otherwise Mathematica-compatible applications may try to
use invalid cache data.
For more information on notebooks and Mathematica-compatible
applications, contact Wolfram Research:
web: http://www.wolfram.com
email: info@wolfram.com
phone: +1-217-398-0700 (U.S.)
Notebook reader applications are available free of charge from
Wolfram Research.
***********************************************************************)
(*CacheID: 232*)
(*NotebookFileLineBreakTest
NotebookFileLineBreakTest*)
(*NotebookOptionsPosition[ 52963, 1769]*)
(*NotebookOutlinePosition[ 54017, 1803]*)
(* CellTagsIndexPosition[ 53973, 1799]*)
(*WindowFrame->Normal*)
Notebook[{
Cell[CellGroupData[{
Cell[TextData[{
StyleBox["Linear Methods of Applied Mathematics\n",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->23],
StyleBox["\n",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->11],
StyleBox["Classification of PDEs",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->23]
}], "Title",
Evaluatable->False,
TextAlignment->Center,
AspectRatioFixed->True],
Cell[TextData[StyleBox[
"(c) Copyright 2000 by Evans M. Harrell II and James V. Herod. \n All \
rights reserved.",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->12,
FontWeight->"Bold",
FontSlant->"Plain",
FontTracking->"Plain",
FontVariations->{"Underline"->False,
"Outline"->False,
"Shadow"->False}]], "Text",
Evaluatable->False,
AspectRatioFixed->True,
FontWeight->"Bold",
FontSlant->"Plain",
FontTracking->"Plain",
FontVariations->{"Underline"->False,
"Outline"->False,
"Shadow"->False}],
Cell[CellGroupData[{
Cell[TextData[{
StyleBox["Notes for the instructor.",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->9,
FontWeight->"Bold",
FontSlant->"Plain",
FontTracking->"Plain",
FontVariations->{"Underline"->False,
"Outline"->False,
"Shadow"->False}],
StyleBox["",
Evaluatable->False,
AspectRatioFixed->True,
FontWeight->"Bold",
FontSlant->"Plain",
FontTracking->"Plain",
FontVariations->{"Underline"->False,
"Outline"->False,
"Shadow"->False}]
}], "Text",
Evaluatable->False,
AspectRatioFixed->True,
FontWeight->"Bold",
FontSlant->"Plain",
FontTracking->"Plain",
FontVariations->{"Underline"->False,
"Outline"->False,
"Shadow"->False}],
Cell["\<\
This contains calculations and examples which correlate with \
chapter XVIII of the WWW text by Harrell and Herod.
Students can be encouraged to cut and paste from this notebook to do \
homework.\
\>", "Text",
Evaluatable->False,
AspectRatioFixed->True]
}, Closed]],
Cell[CellGroupData[{
Cell[TextData["Instructions"], "Subsubsection",
Evaluatable->False,
AspectRatioFixed->True],
Cell[TextData[{
StyleBox["This notebook uses ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["Mathematica",
Evaluatable->False,
AspectRatioFixed->True,
FontSlant->"Italic"],
StyleBox[
" to perform calculations for Harrell and Herod's hypertext book, ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["Linear Methods of Applied Mathematics",
Evaluatable->False,
AspectRatioFixed->True,
FontSlant->"Italic"],
StyleBox[". The student needs only a basic knowledge of ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["Mathematica",
Evaluatable->False,
AspectRatioFixed->True,
FontSlant->"Italic"],
StyleBox[
" to use the notebook, which is designed both to show how to work problems \
in the text and to provide a template for using ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["Mathematica",
Evaluatable->False,
AspectRatioFixed->True,
FontSlant->"Italic"],
StyleBox[
" to work other problems of the student's own design. \n\nCalculations \
will be performed when the reader presses enter in a given calculation cell \
(bold print). It is best to activate the cells in order, so that ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["Mathematica",
Evaluatable->False,
AspectRatioFixed->True,
FontSlant->"Italic"],
StyleBox[
" will be able to call on operators and functions defined in earlier \
cells. Red color coding is used to warn the reader when a given calculation \
relies on an earlier one.",
Evaluatable->False,
AspectRatioFixed->True]
}], "Text",
Evaluatable->False,
AspectRatioFixed->True]
}, Closed]],
Cell[CellGroupData[{
Cell[TextData["Introduction. "], "Section",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell[TextData[{
StyleBox["Second-order partial differential equations of the form\n\n",
Evaluatable->False,
AspectRatioFixed->True],
Cell[GraphicsData["PICT", "\<\
3]@000000201TA41X@1T00jgN71b00003@0000`00:41lP0HCEA8E@0=0000000P
0I57LXU`J:mRJP00X02<0@0:0000000P0I4700000280806A002P0;jQ0<003F=e
LW9UKWA`KfU^M0fP0;lR00000000X02n;00801@5E6U]IG<301@40Pd032h01?l0
0@0[0A<1HBT;0GP402T60B`40RT50GT/00T05`ICNFeRKf`301L401003`0100`0
0BP04`070BPY5@4Y400100400@01:00;0281]P<050d01bP01@0Y0C840Pd032/3
1P5e:@/1N0@0:@H1;0@2:@@1N@<05`@0400?00403001:00;0381:2TE0BT@0040
0@01004X01`0;P6f0`0D3@07:00F03@1
0B/301@40RT90F8Y2`5h100Y1P4/108Y1@5i0`0G100@00l00@0<
004X01<0G@4X:AD1:A000@0100400BP02`1h0KH301@=00LX00D0O`4b108=00`[
0`H1MBT;0GP402T60B`40RT50GT301L401003`0100`00BP02`280BPY5@4Y4001
00400@01:00L0841]P<050@2:@H1N0<05`@0:@H1]P<050@2:@D1NB803`1h:003
01L402P04`2T0B/301@40RT90F0KH301@=00LX00D0e04b108=00`[
10H1MBT;0GP402T50B`40RT50GT301L401003`0100`00BP02`3N0BPY5@4Y4001
00400@01:00L0=X1]P<050d01bP05P3P0C840Pd032/51P5i8P0?03Hg87=X3BQR:B0b=cD`83Dg=21cJ0dXN2TP20e=c@PLfP=:7TY8338i83Dg=21cJ0dXNBTP=S4e
>20e=c@PLfP=:7DY83Hh=CHP3Hg87=X3BQ/KgMULRTP>38c<20e=c@PLfP=:6mb
I6Eb:B0i3@P;eAY
KFEc;E9_KF5^86Ha3BP/:B0e3Te83C3@PC3@P;e=iKF9_K21V<@dXG38f=RTP34P20h
=SLPLfP=:2/Y83Db20e>C3Hg87=X3BP[:B0g>C@c83Dg=21cJ0dX?BTP3Ld83DiCDPLfP=:38Y83@`<3CDPLfP=IFiT84eDLf5fIB1bIG=dKg9U3J00_j40I063CD5D
B0010GM;>P@000<62P4BPf430@000A:3N0:2;1:3N@02URP2URT00`h00042Q[H3
3`002a410XPb000:4X=e0`40004BPgP2PR`BPgT00YHX0YHY00010XJf0`l000/A
0@:800010XJf
0`l000/A0@:800010XJf0`l000/A
0@:8"], "Graphics",
ImageSize->{401, 32},
ImageMargins->{{0, 0}, {0, 0}},
ImageRegion->{{0, 1}, {0, 1}}],
StyleBox["\n(in ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["Mathematica",
Evaluatable->False,
AspectRatioFixed->True,
FontSlant->"Italic"],
StyleBox[
" notation: \n\ta[x,y] D[u[x,y] , {x,2}] + b[x,y] D[u[x,y] , x,y] + \
c[x,y] D[u[x,y] , {x,2}] \n\t\t+ lower order terms == f[x,y] \
)\n\nmay seem to allow for tremendous variety, but in fact, putting aside \
\"degenerate cases,\" there are only three kinds of equations of this type, \
and they behave qualitatively like the Poisson (potential) equation, the heat \
equation, or the wave equation. In this notebook we discuss the \
classification of the different types of equations of second order and how to \
put them into standard \"canonical\" forms.\n\nWe shall only look at linear \
equations, and assume that the coefficients a, b, and c are all finite, \
continuous functions and that at any (x,y) at least one of them is nonzero. \
(Otherwise we can't consistently speak of the order of the equation as 2.)",
Evaluatable->False,
AspectRatioFixed->True]
}], "Text",
Evaluatable->False,
AspectRatioFixed->True]
}, Closed]],
Cell["\<\
In this notebook we specify a partial differential equation by \
listing six coefficients:\
\>", "Text"],
Cell[BoxData[
\({a, b, c, d, e, f, g}\)], "Input"],
Cell[BoxData[
RowBox[{\(PDE[Coeffs_, x_, y_]\), " ", ":=", " ", "\n", "\t ",
RowBox[{
RowBox[{
StyleBox[\(Coeffs[\([1]\)]\ \ D[u[x, y]\ , \ x, x]\),
Evaluatable->False,
AspectRatioFixed->True],
StyleBox[" ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["+",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox[" ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox[\(Coeffs[\([2]\)]\ \ D[u[x, y]\ , \ x, y]\),
Evaluatable->False,
AspectRatioFixed->True],
StyleBox[" ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["+",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox[" ",
Evaluatable->False,
AspectRatioFixed->True], "\n", "\t\t",
StyleBox[\(Coeffs[\([3]\)]\ \ D[u[x, y]\ , y, y]\),
Evaluatable->False,
AspectRatioFixed->True],
StyleBox[" ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["+",
Evaluatable->False,
AspectRatioFixed->True],
RowBox[{
StyleBox[\(Coeffs[\([4]\)]\),
Evaluatable->False,
AspectRatioFixed->True],
StyleBox[" ",
Evaluatable->False,
AspectRatioFixed->True],
RowBox[{
StyleBox["D",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["[",
Evaluatable->False,
AspectRatioFixed->True], \(u[x, y]\ , \ x\), "]"}]}], " ",
"+", " ", "\n", "\t\t",
RowBox[{\(Coeffs[\([5]\)]\), " ",
RowBox[{
StyleBox["D",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["[",
Evaluatable->False,
AspectRatioFixed->True], \(u[x, y]\ , \ y\), "]"}]}], " ",
"+", \(Coeffs[\([6]\)]\ u\)}], " ", "==", \(Coeffs[\([7]\)]\)}]}]],
"Input"],
Cell[TextData[{
"The coefficients, which need to be read in, may be constants:\n",
Cell[BoxData[
\(a\ = \ 1; \ b = 7; \ c = 3; \ d = 4; \ e = 5; \ f = \(6\ \ . \)\)],
"Input"],
"\nor functions of (x,y) such as:\n",
Cell[BoxData[
\(a\ = \ x; \ b = x\ y; \ c = 3; \ d = 4; \ e = 5; \
f = \(6\ . \)\)], "Input"]
}], "Text"],
Cell[CellGroupData[{
Cell["The Type of the Equation", "Section",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell[TextData[StyleBox[
"As explained in Chapter XIX, the type of the equation depends on a simple \
calculation of the discriminant of the coefficients - the same discriminant \
as for a quadratic equation written in the usual way. ",
Evaluatable->False,
AspectRatioFixed->True]], "Text",
Evaluatable->False,
AspectRatioFixed->True],
Cell[CellGroupData[{
Cell[BoxData[
\(Disc[PDECs_]\ = \
b^2\ - \ 4\ a\ c\ \ \ /. \ \n
\t\t{a\ -> \ PDECs[\([1]\)], \ b\ -> \ PDECs[\([2]\)], \
c\ -> \ PDECs[\([3]\)]}\)], "Input"],
Cell[BoxData[
\(General::"spell1" \( : \ \)
"Possible spelling error: new symbol name \"\!\(Disc\)\" is similar to \
existing symbol \"\!\(Disk\)\"."\)], "Message"],
Cell[BoxData[
\(Part::"partd" \( : \ \)
"Part specification \!\(PDECs \\[LeftDoubleBracket] 1 \
\\[RightDoubleBracket]\) is longer than depth of object."\)], "Message"],
Cell[BoxData[
\(Part::"partd" \( : \ \)
"Part specification \!\(PDECs \\[LeftDoubleBracket] 1 \
\\[RightDoubleBracket]\) is longer than depth of object."\)], "Message"],
Cell[BoxData[
\(Part::"partd" \( : \ \)
"Part specification \!\(PDECs \\[LeftDoubleBracket] 2 \
\\[RightDoubleBracket]\) is longer than depth of object."\)], "Message"],
Cell[BoxData[
\(General::"stop" \( : \ \)
"Further output of \!\(Part :: \"partd\"\) will be suppressed during \
this calculation."\)], "Message"],
Cell[BoxData[
\(PDECs\[LeftDoubleBracket]2\[RightDoubleBracket]\^2 -
4\ PDECs\[LeftDoubleBracket]1\[RightDoubleBracket]\
PDECs\[LeftDoubleBracket]3\[RightDoubleBracket]\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{\(Type[PDECs_]\), " ", ":=", " ",
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{
StyleBox["Disc",
FontColor->RGBColor[1, 0, 0]], "[", "PDECs", "]"}], "<",
"0"}], ",", "Elliptic", ",",
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{
StyleBox["Disc",
FontColor->RGBColor[1, 0, 0]], "[", "PDECs", "]"}], ">",
"0"}], ",", "Hyperbolic", ",", "Parabolic"}], "]"}]}],
"]"}]}]], "Input"],
Cell[BoxData[
\(General::"spell" \( : \ \)
"Possible spelling error: new symbol name \"\!\(Elliptic\)\" is similar \
to existing symbols \!\({EllipticE, EllipticF, EllipticK}\)."\)], "Message"]
}, Closed]],
Cell[CellGroupData[{
Cell[TextData[StyleBox["Examples",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18]], "Subsection",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell[CellGroupData[{
Cell[BoxData[
\(\(Coeffs1\ = \ {1, 2, 3, 4, 5, 6, 7}; \)\)], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Disc", "[",
StyleBox["%",
FontColor->RGBColor[1, 0, 0]], "]"}]], "Input"],
Cell[BoxData[
\(\(-8\)\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Type", "[",
StyleBox["Coeffs1",
FontColor->RGBColor[1, 0, 0]], "]"}]], "Input"],
Cell[BoxData[
\(Elliptic\)], "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[TextData[{
"What if the coefficients are not constant, as for\n\t",
StyleBox["a=x; b=x y;c=3;d=4;e=5;f=6; g=7 ",
FontWeight->"Bold"],
"?"
}], "Text"],
Cell[BoxData[
\(\(Coeffs2\ = \ {x, x\ y, 3, 4, 5, 6, 7}; \)\)], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
StyleBox["Disc",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs2",
FontColor->RGBColor[1, 0, 0]], "]"}]], "Input"],
Cell[BoxData[
\(\(-12\)\ x + x\^2\ y\^2\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
StyleBox["Type",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs2",
FontColor->RGBColor[1, 0, 0]], "]"}]], "Input"],
Cell[BoxData[
\(If[\(-12\)\ x + x\^2\ y\^2 < 0, Elliptic,
If[Disc[{x, x\ y, 3, 4, 5, 6}] > 0, Hyperbolic, Parabolic]]\)], "Output"]
}, Closed]],
Cell["\<\
The problem is that the type depends on the values of x,y. The \
study of partial differential equations which change type is beyond the scope \
of this text, but we can still identify regions where the equation is of a \
given type:\
\>", "Text"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
StyleBox["Type",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["Coeffs2",
FontColor->RGBColor[1, 0, 0]],
StyleBox[" ",
FontColor->RGBColor[1, 0, 0]],
StyleBox["/.",
FontColor->GrayLevel[0]],
StyleBox[" ",
FontColor->GrayLevel[0]],
StyleBox[\({x\ -> \ 2, \ y\ -> 7}\),
FontColor->GrayLevel[0]]}], "]"}]], "Input"],
Cell[BoxData[
\(Hyperbolic\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
StyleBox["Type",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["Coeffs2",
FontColor->RGBColor[1, 0, 0]],
StyleBox[" ",
FontColor->RGBColor[1, 0, 0]],
StyleBox["/.",
FontColor->GrayLevel[0]],
StyleBox[" ",
FontColor->GrayLevel[0]],
StyleBox[\({x\ -> \ 0, \ y\ -> \ 2}\),
FontColor->GrayLevel[0]]}], "]"}]], "Input"],
Cell[BoxData[
\(Parabolic\)], "Output"]
}, Closed]],
Cell["\<\
Thus at x=0, y = 2, the equation is parabolic. This is not very \
helpful, because the equation is parabolic only for x=0 and on the curve x \
y^2 == 12. However, for the region x>0, xy^2 > 12, for example, it is \
hyperbolic, and this would be helpful as long as (x,y) is confined in this \
region\
\>", "Text"]
}, Closed]]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell["Canonical forms", "Section",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell[TextData[{
StyleBox[
"In this section we assume that the coefficients in the leading part of the \
partial differential equation are constant. By \"leading part\" we mean a,b, \
and c, the coefficients of the second derivatives. We will find a \
transformaiton of variables which converts the equation into the canonical \
form appropriate for the type of the equation.\n\nNothing prevents us from \
fixing the values of x and y and doing the same transformations. There will \
be some additional complications when we substitute because of the product \
rule, and it will in general not be easy to find the complicated relationship \
between the old variables and the new ones. A study of the ",
Evaluatable->False,
AspectRatioFixed->True],
StyleBox["method of characteristics",
Evaluatable->False,
AspectRatioFixed->True,
FontSlant->"Italic"],
StyleBox[
" will go into these matters in more depth.\n\nThe problem of putting a \
partial differential equation into canonical form is the same as \
diagonalizing the principal matrix AMat, where we write the PDE as \n \
Transpose[grad] AMat grad + BVec . grad u + e u == f, \nwhere grad denotes \
the gradient operator expressed as a column vector. Thus: ",
Evaluatable->False,
AspectRatioFixed->True]
}], "Text",
Evaluatable->False,
AspectRatioFixed->True],
Cell[BoxData[
\(AMat[PDECoeffs_]\ := {{a, b/2}, {b/2, c}}\ \ \ /. \n
\t\ \ \ \ {a\ -> \ \ PDECoeffs[\([1]\)],
b\ -> \ \ PDECoeffs[\([2]\)], c\ -> \ \ PDECoeffs[\([3]\)]}; \n
BVec[PDECoeffs_]\ \ :=
\ {d, e}\ \ /.
\n{d\ -> \ \ PDECoeffs[\([4]\)], \ e\ -> \ \ PDECoeffs[\([5]\)]}
\)], "Input"],
Cell[CellGroupData[{
Cell["Explanation of syntax", "Subsubsection"],
Cell[TextData[{
StyleBox["Mathematica",
FontSlant->"Italic"],
" expresses a matrix as a list of row vectors, which are themselves lists. \
Any list is given in braces: {this, that, the other}. If you want to see \
the matris in usual notation, use the command ",
StyleBox["MatrixForm",
FontFamily->"Courier"],
": "
}], "Text"],
Cell[CellGroupData[{
Cell[BoxData[
\(MatrixForm[{{a, b}, {c, d}}]\)], "Input"],
Cell[BoxData[
TagBox[
RowBox[{"(", GridBox[{
{"a", "b"},
{"c", "d"}
}], ")"}],
(MatrixForm[ #]&)]], "Output"]
}, Closed]]
}, Closed]],
Cell[TextData[{
"Our goal is to diagonalize the matrix ",
StyleBox["AMat ",
FontFamily->"Courier"],
"by a change of variables. If the coefficients are constant, the change of \
variables will be linear, by a matrix TMat:"
}], "Text"],
Cell[BoxData[
\(NewVars[TransMat_, OldVars_]\ := TransMat\ . \ OldVars\)], "Input"],
Cell[CellGroupData[{
Cell[TextData[StyleBox["Example",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18]], "Subsection",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell["\<\
Suppose xnew= -x + y, ynew=x + y. The transformation matrix \
is:\
\>", "Text"],
Cell[CellGroupData[{
Cell[BoxData[
\(TMat\ = \ {{\(-1\), 1}, {1, 1}}\)], "Input"],
Cell[BoxData[
\(General::"spell1" \( : \ \)
"Possible spelling error: new symbol name \"\!\(TMat\)\" is similar to \
existing symbol \"\!\(AMat\)\"."\)], "Message"],
Cell[BoxData[
\({{\(-1\), 1}, {1, 1}}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
StyleBox["NewVars",
FontColor->RGBColor[1, 0, 0]], "[", \(TMat, {x, y}\), "]"}]], "Input"],
Cell[BoxData[
\({\(-x\) + y, x + y}\)], "Output"]
}, Closed]],
Cell[BoxData[
\(Clear[TMat]\)], "Input"]
}, Closed]],
Cell["\<\
Because of the chain rule, AMat and BVec are transformed as \
follows:\
\>", "Text"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
StyleBox[
\(NewAMat[TransMat_, OldA_]\ := \
TransMat . OldA . Transpose[TransMat]\),
"Text"],
StyleBox[";",
"Text"], "\n",
\(NewBVec[TransMat_, OldB_]\ := \ OldB\ . \ Transpose[TransMat]\)}]],
"Input"],
Cell[BoxData[
\(General::"spell1" \( : \ \)
"Possible spelling error: new symbol name \"\!\(OldB\)\" is similar to \
existing symbol \"\!\(OldA\)\"."\)], "Message"]
}, Closed]],
Cell[CellGroupData[{
Cell[TextData[StyleBox["Examples",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18]], "Subsection",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell["\<\
As in the previous example, we suppose xnew= -x + y, ynew=x + y. \
\
\>", "Text"],
Cell[CellGroupData[{
Cell[BoxData[
\(TMat\ = \ {{\(-1\), 1}, {1, 1}}; \ OldA\ = \ {{1, 2}, {2, 1}}; \)],
"Input"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
StyleBox["NewAMat",
FontColor->RGBColor[1, 0, 0]], "[", \(TMat, OldA\), "]"}]], "Input"],
Cell[BoxData[
\({{\(-2\), 0}, {0, 6}}\)], "Output"]
}, Closed]],
Cell["Notice this is a diagonal matrix:", "Text"],
Cell[CellGroupData[{
Cell[BoxData[
\(MatrixForm[%]\)], "Input"],
Cell[BoxData[
TagBox[
RowBox[{"(", GridBox[{
{\(-2\), "0"},
{"0", "6"}
}], ")"}],
(MatrixForm[ #]&)]], "Output"]
}, Closed]],
Cell[BoxData[
\(Clear[TMat, OldA]\)], "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell["\<\
Actually, any matrix of the form {{this, that},{that,this}} is \
diagonalized by the same TMat:\
\>", "Text"],
Cell[BoxData[
\(\(TMat\ = \ {{\(-1\), 1}, {1, 1}}; \)\)], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"MatrixForm", "[",
RowBox[{
StyleBox["NewAMat",
FontColor->RGBColor[1, 0, 0]], "[",
\(TMat, {{this, that}, {that, this}}\), "]"}], "]"}]], "Input"],
Cell[BoxData[
TagBox[
RowBox[{"(", GridBox[{
{\(\(-2\)\ that + 2\ this\), "0"},
{"0", \(2\ that + 2\ this\)}
}], ")"}],
(MatrixForm[ #]&)]], "Output"]
}, Closed]],
Cell[BoxData[
\(Clear[TMat]\)], "Input"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[TextData[StyleBox["Transforming PDEs",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18]], "Subsection",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell["\<\
Suppose now that we have a partial differential equation with \
coefficients {a,b,c,d,e,f}, and we make a linear change of variables with \
some matrix. Then the new coefficients are as follows:
\
\>", "Text"],
Cell[BoxData[
\(NewCoeffs[TransMat_, OldA_, OldB_]\ := \
\(({\(NewAMat[TransMat, OldA]\)[\([1, 1]\)],
\(NewAMat[TransMat, OldA]\)[\([1, 2]\)],
\(NewAMat[TransMat, OldA]\)[\([2, 2]\)],
\(NewBVec[TransMat, OldB]\)[\([1]\)],
\(NewBVec[TransMat, OldB]\)[\([2]\)], Coeffs[\([6]\)],
Coeffs[\([7]\)]}\ /. \ \n
\t\t\ \ \ \ \ {x\ -> \((Inverse[TransMat] . {xi, eta})\)[\([1]\)],
\n\t\t\t\ \ \ \ \
y\ -> \((Inverse[TransMat] . {xi, eta})\)[\([1]\)]})\)\)],
"Input"],
Cell[CellGroupData[{
Cell[TextData[StyleBox["Example",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18]], "Subsection",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell[BoxData[
\(\(Coeffs\ = \ {1, \(-1\), 1, 2, \(-4\), x, y}; \)\)], "Input"],
Cell[BoxData[
RowBox[{
RowBox[{"A", " ", "=", " ",
RowBox[{"AMat", "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], ";", " ",
RowBox[{"B", " ", "=", " ",
RowBox[{"BVec", "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], ";"}]], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
\(TMat\ = \ {{\(-1\), 1}, {1, 1}}\)], "Input"],
Cell[BoxData[
\({{\(-1\), 1}, {1, 1}}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"NewCoeffs", "[",
RowBox[{
StyleBox["TMat",
FontColor->RGBColor[1, 0, 0]], ",",
StyleBox["A",
FontColor->RGBColor[1, 0, 0]], ",",
StyleBox["B",
FontColor->RGBColor[1, 0, 0]]}], "]"}]], "Input"],
Cell[BoxData[
\({3, 0, 1, \(-6\), \(-2\), eta\/2 - xi\/2, eta\/2 - xi\/2}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
StyleBox["PDE",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["%",
FontColor->RGBColor[1, 0, 0]], ",", "xi", ",", "eta"}], "]"}]],
"Input"],
Cell[BoxData[
RowBox[{
RowBox[{\(u\ \((eta\/2 - xi\/2)\)\), "-",
RowBox[{"2", " ",
RowBox[{
SuperscriptBox["u",
TagBox[\((0, 1)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}], "+",
RowBox[{
SuperscriptBox["u",
TagBox[\((0, 2)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}], "-",
RowBox[{"6", " ",
RowBox[{
SuperscriptBox["u",
TagBox[\((1, 0)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}], "+",
RowBox[{"3", " ",
RowBox[{
SuperscriptBox["u",
TagBox[\((2, 0)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}]}], "==",
\(eta\/2 - xi\/2\)}]], "Output"]
}, Closed]],
Cell[BoxData[
\(Clear[Coeffs, A, B, TMat]\)], "Input"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[TextData[StyleBox["Finding the Transformation",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18]], "Subsection",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell[TextData[{
"It remains to find the correct transformation to put a differential \
equation into canonical form. This is the same as finding a transformation \
matrix so that the new ",
StyleBox["AMat",
FontFamily->"Courier"],
" of coefficients is diagonal with only 0,+1,or -1 on the diagonal. The \
following example gives the pattern for various such problems:"
}], "Text"],
Cell[CellGroupData[{
Cell[TextData[StyleBox["Example 1",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18]], "Subsection",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell[CellGroupData[{
Cell[BoxData[
\(Clear[TMat, TMat1, FirstStep, Scales, Coeffs]\)], "Input"],
Cell[BoxData[
\(General::"spell1" \( : \ \)
"Possible spelling error: new symbol name \"\!\(Scales\)\" is similar \
to existing symbol \"\!\(Scaled\)\"."\)], "Message"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
\(Coeffs\ = \ {1, \(-4\), 1, 1, 0, x, x\ u^2}\)], "Input"],
Cell[BoxData[
\({1, \(-4\), 1, 1, 0, x, u\^2\ x}\)], "Output"]
}, Closed]],
Cell[BoxData[
RowBox[{"TMat1", " ", ":=", " ",
RowBox[{"Eigenvectors", "[",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}], "]"}]}]], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"FirstStep", " ", "=", " ",
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewAMat",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat1",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]}]],
"Input"],
Cell[BoxData[
\({{\(-2\), 0}, {0, 6}}\)], "Output"]
}, Closed]],
Cell[TextData[{
"We need to scale the diagonal entries to 0,+1, or -1, so we multiply ",
StyleBox["TMat1",
FontFamily->"Courier"],
" by a matrix which does this:"
}], "Text"],
Cell[CellGroupData[{
Cell[BoxData[
\(Scales = {If[FirstStep[\([1, 1]\)] == 0, 1, FirstStep[\([1, 1]\)]^2],
If[FirstStep[\([2, 2]\)] == 0, 1, FirstStep[\([2, 2]\)]^2]}^
\((\(-1\)/4)\)\)], "Input"],
Cell[BoxData[
\({1\/\@2, 1\/\@6}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell["Explanation of the syntax", "Subsubsection"],
Cell[TextData[{
"We need to multiply the previous matrix ",
StyleBox["NewAMat[TMat1,AMat[Coeffs]] ",
FontFamily->"Courier"],
"by a matrix which divides the things on the diagonal by their magnitudes, \
and this step calculates the scaling factors. Since we multiply both on the \
right and on the left, each scaling matrix must divide by the square root of \
the magnitude. We short cut to this by writing the square-root of an \
absolute value as the fourth root of the square. \n\nThe ",
StyleBox["If",
FontFamily->"Courier"],
" steps take care of the parabolic case, when one of the diagonals is 0. \
In that case we leave it alone by dividing by 1 rather than trying to divide \
by 0."
}], "Text"]
}, Closed]],
Cell[TextData[{
"We now fill this out to a 2 by 2 matrix and multiply it by ",
StyleBox["TMat1",
FontFamily->"Courier"],
" :"
}], "Text"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"TMat", " ", "=", " ",
RowBox[{\({{Scales[\([1]\)], 0}, {0, Scales[\([2]\)]}}\), ".",
StyleBox["TMat1",
FontColor->RGBColor[1, 0, 0]]}]}]], "Input"],
Cell[BoxData[
\({{1\/\@2, 1\/\@2}, {\(-\(1\/\@6\)\), 1\/\@6}}\)], "Output"]
}, Closed]],
Cell["Let's test it out:", "Text"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewAMat",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]], "Input"],
Cell[BoxData[
\({{\(-1\), 0}, {0, 1}}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewCoeffs",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}], ",",
RowBox[{
StyleBox["BVec",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]], "Input"],
Cell[BoxData[
\({\(-1\), 0, 1, 1\/\@2, \(-\(1\/\@6\)\), \(\(-\@3\)\ eta + xi\)\/\@2,
\(u\^2\ \((\(-\@3\)\ eta + xi)\)\)\/\@2}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{
StyleBox["PDE",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["%",
FontColor->RGBColor[1, 0, 0]], ",", "xi", ",", "eta"}], "]"}],
",", " ",
RowBox[{
StyleBox["Type",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["%",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "}"}]], "Input"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{\(\(u\ \((\(-\@3\)\ eta + xi)\)\)\/\@2\), "-",
FractionBox[
RowBox[{
SuperscriptBox["u",
TagBox[\((0, 1)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}],
\(\@6\)], "+",
RowBox[{
SuperscriptBox["u",
TagBox[\((0, 2)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}], "+",
FractionBox[
RowBox[{
SuperscriptBox["u",
TagBox[\((1, 0)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}],
\(\@2\)], "-",
RowBox[{
SuperscriptBox["u",
TagBox[\((2, 0)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}], "==",
\(\(u\^2\ \((\(-\@3\)\ eta + xi)\)\)\/\@2\)}], ",", "Hyperbolic"}],
"}"}]], "Output"]
}, Closed]],
Cell[BoxData[
\(Clear[TMat, TMat1]\)], "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[TextData[StyleBox["Example 2",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18]], "Subsection",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell[BoxData[
\(Clear[TMat, TMat1, FirstStep, Scales, Coeffs]\)], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
\(Coeffs\ = \ {1, 4, 4, \(-1\), 0, x, x}\)], "Input"],
Cell[BoxData[
\({1, 4, 4, \(-1\), 0, x, x}\)], "Output"]
}, Closed]],
Cell[BoxData[
RowBox[{"TMat1", " ", ":=", " ",
RowBox[{"Eigenvectors", "[",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}], "]"}]}]], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"FirstStep", " ", "=", " ",
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewAMat",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat1",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]}]],
"Input"],
Cell[BoxData[
\({{0, 0}, {0, 25}}\)], "Output"]
}, Closed]],
Cell[TextData[{
"We need to scale the diagonal entries to 0,+1, or -1, so we multiply ",
StyleBox["TMat1",
FontFamily->"Courier"],
" by a matrix which does this:"
}], "Text"],
Cell[CellGroupData[{
Cell[BoxData[
\(Scales = {If[FirstStep[\([1, 1]\)] == 0, 1, FirstStep[\([1, 1]\)]^2],
If[FirstStep[\([2, 2]\)] == 0, 1, FirstStep[\([2, 2]\)]^2]}^
\((\(-1\)/4)\)\)], "Input"],
Cell[BoxData[
\({1, 1\/5}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"TMat", " ", "=", " ",
RowBox[{\({{Scales[\([1]\)], 0}, {0, Scales[\([2]\)]}}\), ".",
StyleBox["TMat1",
FontColor->RGBColor[1, 0, 0]]}]}]], "Input"],
Cell[BoxData[
\({{\(-2\), 1}, {1\/5, 2\/5}}\)], "Output"]
}, Closed]],
Cell["Let's test it out:", "Text"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewAMat",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]], "Input"],
Cell[BoxData[
\({{0, 0}, {0, 1}}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewCoeffs",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}], ",",
RowBox[{
StyleBox["BVec",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]], "Input"],
Cell[BoxData[
\({0, 0, 1, 2, \(-\(1\/5\)\), eta - \(2\ xi\)\/5, eta - \(2\ xi\)\/5}\)],
"Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{
StyleBox["PDE",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["%",
FontColor->RGBColor[1, 0, 0]], ",", "xi", ",", "eta"}], "]"}],
",", " ",
RowBox[{
StyleBox["Type",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["%",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "}"}]], "Input"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{\(u\ \((eta - \(2\ xi\)\/5)\)\), "-",
RowBox[{\(1\/5\), " ",
RowBox[{
SuperscriptBox["u",
TagBox[\((0, 1)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}], "+",
RowBox[{
SuperscriptBox["u",
TagBox[\((0, 2)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}], "+",
RowBox[{"2", " ",
RowBox[{
SuperscriptBox["u",
TagBox[\((1, 0)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}]}],
"==", \(eta - \(2\ xi\)\/5\)}], ",", "Parabolic"}], "}"}]], "Output"]
}, Closed]],
Cell[BoxData[
\(Clear[TMat, TMat1, FirstStep, Scales, Coeffs]\)], "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[TextData[StyleBox["Example 3",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18]], "Subsection",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell[BoxData[
\(Clear[TMat, TMat1, FirstStep, Scales, Coeffs]\)], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
\(Coeffs\ = \ {0, 4, 0, 1, \(-4\), x, 0}\)], "Input"],
Cell[BoxData[
\({0, 4, 0, 1, \(-4\), x, 0}\)], "Output"]
}, Closed]],
Cell[BoxData[
RowBox[{"TMat1", " ", ":=", " ",
RowBox[{"Eigenvectors", "[",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}], "]"}]}]], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"FirstStep", " ", "=", " ",
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewAMat",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat1",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]}]],
"Input"],
Cell[BoxData[
\({{\(-4\), 0}, {0, 4}}\)], "Output"]
}, Closed]],
Cell[TextData[{
"We need to scale the diagonal entries to 0,+1, or -1, so we multiply ",
StyleBox["TMat1",
FontFamily->"Courier"],
" by a matrix which does this:"
}], "Text"],
Cell[CellGroupData[{
Cell[BoxData[
\(Scales = {If[FirstStep[\([1, 1]\)] == 0, 1, FirstStep[\([1, 1]\)]^2],
If[FirstStep[\([2, 2]\)] == 0, 1, FirstStep[\([2, 2]\)]^2]}^
\((\(-1\)/4)\)\)], "Input"],
Cell[BoxData[
\({1\/2, 1\/2}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"TMat", " ", "=", " ",
RowBox[{\({{Scales[\([1]\)], 0}, {0, Scales[\([2]\)]}}\), ".",
StyleBox["TMat1",
FontColor->RGBColor[1, 0, 0]]}]}]], "Input"],
Cell[BoxData[
\({{\(-\(1\/2\)\), 1\/2}, {1\/2, 1\/2}}\)], "Output"]
}, Closed]],
Cell["Let's test it out:", "Text"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewAMat",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]], "Input"],
Cell[BoxData[
\({{\(-1\), 0}, {0, 1}}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewCoeffs",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}], ",",
RowBox[{
StyleBox["BVec",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]], "Input"],
Cell[BoxData[
\({\(-1\), 0, 1, \(-\(5\/2\)\), \(-\(3\/2\)\), eta - xi, 0}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{
StyleBox["PDE",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["%",
FontColor->RGBColor[1, 0, 0]], ",", "xi", ",", "eta"}], "]"}],
",", " ",
RowBox[{
StyleBox["Type",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["%",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "}"}]], "Input"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{\(u\ \((eta - xi)\)\), "-",
RowBox[{\(3\/2\), " ",
RowBox[{
SuperscriptBox["u",
TagBox[\((0, 1)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}], "+",
RowBox[{
SuperscriptBox["u",
TagBox[\((0, 2)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}], "-",
RowBox[{\(5\/2\), " ",
RowBox[{
SuperscriptBox["u",
TagBox[\((1, 0)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}], "-",
RowBox[{
SuperscriptBox["u",
TagBox[\((2, 0)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}], "==",
"0"}], ",", "Hyperbolic"}], "}"}]], "Output"]
}, Closed]],
Cell[BoxData[
\(Clear[TMat, TMat1, FirstStep, Scales, Coeffs]\)], "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[TextData[StyleBox["Example 4",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18]], "Subsection",
Evaluatable->False,
AspectRatioFixed->True,
FontSize->18],
Cell[BoxData[
\(Clear[TMat, TMat1, FirstStep, Scales, Coeffs]\)], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
\(Coeffs\ = \ {1, \(-1\), 1, 1, \(-4\), x, x^2}\)], "Input"],
Cell[BoxData[
\({1, \(-1\), 1, 1, \(-4\), x, x\^2}\)], "Output"]
}, Closed]],
Cell[BoxData[
RowBox[{"TMat1", " ", ":=", " ",
RowBox[{"Eigenvectors", "[",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}], "]"}]}]], "Input"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"FirstStep", " ", "=", " ",
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewAMat",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat1",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]}]],
"Input"],
Cell[BoxData[
\({{1, 0}, {0, 3}}\)], "Output"]
}, Closed]],
Cell[TextData[{
"We need to scale the diagonal entries to 0,+1, or -1, so we multiply ",
StyleBox["TMat1",
FontFamily->"Courier"],
" by a matrix which does this:"
}], "Text"],
Cell[CellGroupData[{
Cell[BoxData[
\(Scales = {If[FirstStep[\([1, 1]\)] == 0, 1, FirstStep[\([1, 1]\)]^2],
If[FirstStep[\([2, 2]\)] == 0, 1, FirstStep[\([2, 2]\)]^2]}^
\((\(-1\)/4)\)\)], "Input"],
Cell[BoxData[
\({1, 1\/\@3}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"TMat", " ", "=", " ",
RowBox[{\({{Scales[\([1]\)], 0}, {0, Scales[\([2]\)]}}\), ".",
StyleBox["TMat1",
FontColor->RGBColor[1, 0, 0]]}]}]], "Input"],
Cell[BoxData[
\({{1, 1}, {\(-\(1\/\@3\)\), 1\/\@3}}\)], "Output"]
}, Closed]],
Cell["Let's test it out:", "Text"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewAMat",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]], "Input"],
Cell[BoxData[
\({{1, 0}, {0, 1}}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Simplify", "[",
RowBox[{
StyleBox["NewCoeffs",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["TMat",
FontColor->RGBColor[1, 0, 0]], ",",
RowBox[{
StyleBox["AMat",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}], ",",
RowBox[{
StyleBox["BVec",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["Coeffs",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "]"}], "]"}]], "Input"],
Cell[BoxData[
\({1, 0, 1, \(-3\), \(-\(5\/\@3\)\), 1\/2\ \((\(-\@3\)\ eta + xi)\),
1\/4\ \((\(-\@3\)\ eta + xi)\)\^2}\)], "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{
StyleBox["PDE",
FontColor->RGBColor[1, 0, 0]], "[",
RowBox[{
StyleBox["%",
FontColor->RGBColor[1, 0, 0]], ",", "xi", ",", "eta"}], "]"}],
",", " ",
RowBox[{
StyleBox["Type",
FontColor->RGBColor[1, 0, 0]], "[",
StyleBox["%",
FontColor->RGBColor[1, 0, 0]], "]"}]}], "}"}]], "Input"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{\(1\/2\ u\ \((\(-\@3\)\ eta + xi)\)\), "-",
FractionBox[
RowBox[{"5", " ",
RowBox[{
SuperscriptBox["u",
TagBox[\((0, 1)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}],
\(\@3\)], "+",
RowBox[{
SuperscriptBox["u",
TagBox[\((0, 2)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}], "-",
RowBox[{"3", " ",
RowBox[{
SuperscriptBox["u",
TagBox[\((1, 0)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}], "+",
RowBox[{
SuperscriptBox["u",
TagBox[\((2, 0)\),
Derivative],
MultilineFunction->None], "[", \(xi, eta\), "]"}]}], "==",
\(1\/4\ \((\(-\@3\)\ eta + xi)\)\^2\)}], ",", "Elliptic"}], "}"}]],
"Output"]
}, Closed]],
Cell[BoxData[
\(Clear[TMat, TMat1, FirstStep, Scales, Coeffs]\)], "Input"]
}, Closed]]
}, Closed]]
}, Closed]]
}, Open ]]
},
FrontEndVersion->"Macintosh 3.0",
ScreenRectangle->{{0, 800}, {0, 580}},
WindowToolbars->{},
CellGrouping->Manual,
WindowSize->{520, 485},
WindowMargins->{{107, Automatic}, {21, Automatic}},
PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}},
ShowCellLabel->True,
ShowCellTags->False,
RenderingOptions->{"ObjectDithering"->True,
"RasterDithering"->False},
MacintoshSystemPageSetup->"\<\
00<0001804P000000]P2:?oQon82n@960dL5:0?l0080001804P000000]P2:001
0000I00000400`<300000BL?00400@0000000000000006P801T1T00000000000
00000000000000000000000000000000\>"
]
(***********************************************************************
Cached data follows. If you edit this Notebook file directly, not using
Mathematica, you must remove the line containing CacheID at the top of
the file. The cache data will then be recreated when you save this file
from within Mathematica.
***********************************************************************)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[1731, 51, 421, 16, 123, "Title",
Evaluatable->False],
Cell[2155, 69, 536, 19, 50, "Text",
Evaluatable->False],
Cell[CellGroupData[{
Cell[2716, 92, 720, 28, 28, "Text",
Evaluatable->False],
Cell[3439, 122, 268, 8, 78, "Text",
Evaluatable->False]
}, Closed]],
Cell[CellGroupData[{
Cell[3744, 135, 95, 2, 28, "Subsubsection",
Evaluatable->False],
Cell[3842, 139, 1691, 50, 184, "Text",
Evaluatable->False]
}, Closed]],
Cell[CellGroupData[{
Cell[5570, 194, 107, 3, 35, "Section",
Evaluatable->False],
Cell[5680, 199, 6579, 111, 304, "Text",
Evaluatable->False]
}, Closed]],
Cell[12274, 313, 114, 3, 27, "Text"],
Cell[12391, 318, 54, 1, 27, "Input"],
Cell[12448, 321, 2223, 61, 107, "Input"],
Cell[14674, 384, 357, 9, 88, "Text"],
Cell[CellGroupData[{
Cell[15056, 397, 107, 3, 55, "Section",
Evaluatable->False],
Cell[15166, 402, 342, 7, 62, "Text",
Evaluatable->False],
Cell[CellGroupData[{
Cell[15533, 413, 193, 4, 43, "Input"],
Cell[15729, 419, 175, 3, 37, "Message"],
Cell[15907, 424, 179, 3, 37, "Message"],
Cell[16089, 429, 179, 3, 37, "Message"],
Cell[16271, 434, 179, 3, 37, "Message"],
Cell[16453, 439, 157, 3, 37, "Message"],
Cell[16613, 444, 202, 3, 28, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[16852, 452, 601, 16, 40, "Input"],
Cell[17456, 470, 204, 3, 52, "Message"]
}, Closed]],
Cell[CellGroupData[{
Cell[17697, 478, 178, 6, 51, "Subsection",
Evaluatable->False],
Cell[CellGroupData[{
Cell[17900, 488, 74, 1, 27, "Input"],
Cell[CellGroupData[{
Cell[17999, 493, 115, 3, 27, "Input"],
Cell[18117, 498, 40, 1, 26, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[18194, 504, 121, 3, 24, "Input"],
Cell[18318, 509, 42, 1, 26, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[18409, 516, 165, 5, 45, "Text"],
Cell[18577, 523, 77, 1, 27, "Input"],
Cell[CellGroupData[{
Cell[18679, 528, 176, 5, 27, "Input"],
Cell[18858, 535, 57, 1, 28, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[18952, 541, 176, 5, 24, "Input"],
Cell[19131, 548, 142, 2, 43, "Output"]
}, Closed]],
Cell[19288, 553, 258, 5, 59, "Text"],
Cell[CellGroupData[{
Cell[19571, 562, 465, 14, 27, "Input"],
Cell[20039, 578, 44, 1, 26, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[20120, 584, 467, 14, 24, "Input"],
Cell[20590, 600, 43, 1, 26, "Output"]
}, Closed]],
Cell[20648, 604, 324, 6, 75, "Text"]
}, Closed]]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[21033, 617, 98, 3, 35, "Section",
Evaluatable->False],
Cell[21134, 622, 1367, 27, 240, "Text",
Evaluatable->False],
Cell[22504, 651, 352, 7, 91, "Input"],
Cell[CellGroupData[{
Cell[22881, 662, 46, 0, 42, "Subsubsection"],
Cell[22930, 664, 346, 9, 65, "Text"],
Cell[CellGroupData[{
Cell[23301, 677, 61, 1, 27, "Input"],
Cell[23365, 680, 161, 6, 52, "Output"]
}, Closed]]
}, Closed]],
Cell[23553, 690, 244, 6, 44, "Text"],
Cell[23800, 698, 89, 1, 27, "Input"],
Cell[CellGroupData[{
Cell[23914, 703, 177, 6, 51, "Subsection",
Evaluatable->False],
Cell[24094, 711, 90, 3, 30, "Text"],
Cell[CellGroupData[{
Cell[24209, 718, 65, 1, 27, "Input"],
Cell[24277, 721, 175, 3, 37, "Message"],
Cell[24455, 726, 55, 1, 26, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[24547, 732, 131, 3, 24, "Input"],
Cell[24681, 737, 53, 1, 26, "Output"]
}, Closed]],
Cell[24749, 741, 44, 1, 24, "Input"]
}, Closed]],
Cell[24808, 745, 94, 3, 27, "Text"],
Cell[CellGroupData[{
Cell[24927, 752, 289, 9, 75, "Input"],
Cell[25219, 763, 175, 3, 37, "Message"]
}, Closed]],
Cell[CellGroupData[{
Cell[25431, 771, 178, 6, 35, "Subsection",
Evaluatable->False],
Cell[25612, 779, 91, 3, 30, "Text"],
Cell[CellGroupData[{
Cell[25728, 786, 101, 2, 27, "Input"],
Cell[CellGroupData[{
Cell[25854, 792, 129, 3, 27, "Input"],
Cell[25986, 797, 55, 1, 26, "Output"]
}, Closed]],
Cell[26056, 801, 49, 0, 30, "Text"],
Cell[CellGroupData[{
Cell[26130, 805, 46, 1, 27, "Input"],
Cell[26179, 808, 164, 6, 40, "Output"]
}, Closed]],
Cell[26358, 817, 50, 1, 27, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[26445, 823, 119, 3, 27, "Text"],
Cell[26567, 828, 71, 1, 27, "Input"],
Cell[CellGroupData[{
Cell[26663, 833, 207, 5, 43, "Input"],
Cell[26873, 840, 202, 6, 40, "Output"]
}, Closed]],
Cell[27090, 849, 44, 1, 27, "Input"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[27183, 856, 187, 6, 35, "Subsection",
Evaluatable->False],
Cell[27373, 864, 220, 5, 78, "Text"],
Cell[27596, 871, 574, 11, 155, "Input"],
Cell[CellGroupData[{
Cell[28195, 886, 177, 6, 51, "Subsection",
Evaluatable->False],
Cell[28375, 894, 83, 1, 27, "Input"],
Cell[28461, 897, 347, 9, 27, "Input"],
Cell[CellGroupData[{
Cell[28833, 910, 65, 1, 27, "Input"],
Cell[28901, 913, 55, 1, 26, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[28993, 919, 282, 8, 24, "Input"],
Cell[29278, 929, 91, 1, 42, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[29406, 935, 216, 7, 24, "Input"],
Cell[29625, 944, 934, 26, 93, "Output"]
}, Closed]],
Cell[30574, 973, 58, 1, 24, "Input"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[30681, 980, 196, 6, 35, "Subsection",
Evaluatable->False],
Cell[30880, 988, 392, 8, 79, "Text"],
Cell[CellGroupData[{
Cell[31297, 1000, 179, 6, 51, "Subsection",
Evaluatable->False],
Cell[CellGroupData[{
Cell[31501, 1010, 78, 1, 27, "Input"],
Cell[31582, 1013, 179, 3, 37, "Message"]
}, Closed]],
Cell[CellGroupData[{
Cell[31798, 1021, 77, 1, 24, "Input"],
Cell[31878, 1024, 66, 1, 28, "Output"]
}, Closed]],
Cell[31959, 1028, 278, 7, 24, "Input"],
Cell[CellGroupData[{
Cell[32262, 1039, 506, 14, 27, "Input"],
Cell[32771, 1055, 55, 1, 26, "Output"]
}, Closed]],
Cell[32841, 1059, 186, 5, 44, "Text"],
Cell[CellGroupData[{
Cell[33052, 1068, 197, 3, 75, "Input"],
Cell[33252, 1073, 50, 1, 46, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[33339, 1079, 50, 0, 28, "Subsubsection"],
Cell[33392, 1081, 723, 14, 144, "Text"]
}, Closed]],
Cell[34130, 1098, 147, 5, 28, "Text"],
Cell[CellGroupData[{
Cell[34302, 1107, 200, 4, 27, "Input"],
Cell[34505, 1113, 79, 1, 46, "Output"]
}, Closed]],
Cell[34599, 1117, 34, 0, 27, "Text"],
Cell[CellGroupData[{
Cell[34658, 1121, 434, 12, 27, "Input"],
Cell[35095, 1135, 55, 1, 26, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[35187, 1141, 624, 17, 40, "Input"],
Cell[35814, 1160, 150, 2, 53, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[36001, 1167, 467, 14, 24, "Input"],
Cell[36471, 1183, 1135, 30, 128, "Output"]
}, Closed]],
Cell[37621, 1216, 51, 1, 24, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[37709, 1222, 179, 6, 35, "Subsection",
Evaluatable->False],
Cell[37891, 1230, 78, 1, 27, "Input"],
Cell[CellGroupData[{
Cell[37994, 1235, 72, 1, 27, "Input"],
Cell[38069, 1238, 60, 1, 26, "Output"]
}, Closed]],
Cell[38144, 1242, 278, 7, 24, "Input"],
Cell[CellGroupData[{
Cell[38447, 1253, 506, 14, 27, "Input"],
Cell[38956, 1269, 51, 1, 26, "Output"]
}, Closed]],
Cell[39022, 1273, 186, 5, 44, "Text"],
Cell[CellGroupData[{
Cell[39233, 1282, 197, 3, 75, "Input"],
Cell[39433, 1287, 43, 1, 42, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[39513, 1293, 200, 4, 24, "Input"],
Cell[39716, 1299, 61, 1, 42, "Output"]
}, Closed]],
Cell[39792, 1303, 34, 0, 27, "Text"],
Cell[CellGroupData[{
Cell[39851, 1307, 434, 12, 27, "Input"],
Cell[40288, 1321, 50, 1, 26, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[40375, 1327, 624, 17, 40, "Input"],
Cell[41002, 1346, 104, 2, 42, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[41143, 1353, 467, 14, 24, "Input"],
Cell[41613, 1369, 873, 22, 101, "Output"]
}, Closed]],
Cell[42501, 1394, 78, 1, 24, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[42616, 1400, 179, 6, 35, "Subsection",
Evaluatable->False],
Cell[42798, 1408, 78, 1, 27, "Input"],
Cell[CellGroupData[{
Cell[42901, 1413, 72, 1, 27, "Input"],
Cell[42976, 1416, 60, 1, 26, "Output"]
}, Closed]],
Cell[43051, 1420, 278, 7, 24, "Input"],
Cell[CellGroupData[{
Cell[43354, 1431, 506, 14, 27, "Input"],
Cell[43863, 1447, 55, 1, 26, "Output"]
}, Closed]],
Cell[43933, 1451, 186, 5, 44, "Text"],
Cell[CellGroupData[{
Cell[44144, 1460, 197, 3, 75, "Input"],
Cell[44344, 1465, 46, 1, 42, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[44427, 1471, 200, 4, 24, "Input"],
Cell[44630, 1477, 71, 1, 42, "Output"]
}, Closed]],
Cell[44716, 1481, 34, 0, 27, "Text"],
Cell[CellGroupData[{
Cell[44775, 1485, 434, 12, 27, "Input"],
Cell[45212, 1499, 55, 1, 26, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[45304, 1505, 624, 17, 40, "Input"],
Cell[45931, 1524, 91, 1, 42, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[46059, 1530, 467, 14, 24, "Input"],
Cell[46529, 1546, 1045, 27, 101, "Output"]
}, Closed]],
Cell[47589, 1576, 78, 1, 24, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[47704, 1582, 179, 6, 35, "Subsection",
Evaluatable->False],
Cell[47886, 1590, 78, 1, 27, "Input"],
Cell[CellGroupData[{
Cell[47989, 1595, 79, 1, 27, "Input"],
Cell[48071, 1598, 68, 1, 28, "Output"]
}, Closed]],
Cell[48154, 1602, 278, 7, 24, "Input"],
Cell[CellGroupData[{
Cell[48457, 1613, 506, 14, 27, "Input"],
Cell[48966, 1629, 50, 1, 26, "Output"]
}, Closed]],
Cell[49031, 1633, 186, 5, 44, "Text"],
Cell[CellGroupData[{
Cell[49242, 1642, 197, 3, 75, "Input"],
Cell[49442, 1647, 45, 1, 46, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[49524, 1653, 200, 4, 24, "Input"],
Cell[49727, 1659, 69, 1, 46, "Output"]
}, Closed]],
Cell[49811, 1663, 34, 0, 27, "Text"],
Cell[CellGroupData[{
Cell[49870, 1667, 434, 12, 27, "Input"],
Cell[50307, 1681, 50, 1, 26, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[50394, 1687, 624, 17, 40, "Input"],
Cell[51021, 1706, 142, 2, 46, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[51200, 1713, 467, 14, 24, "Input"],
Cell[51670, 1729, 1148, 30, 109, "Output"]
}, Closed]],
Cell[52833, 1762, 78, 1, 24, "Input"]
}, Closed]]
}, Closed]]
}, Closed]]
}, Open ]]
}
]
*)
(***********************************************************************
End of Mathematica Notebook file.
***********************************************************************)