Commit afcfe49e by Jigyasa Watwani

control formulation testing

parent f432d03e
This source diff could not be displayed because it is too large. You can view the blob instead.
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 13.1' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 33709, 743]
NotebookOptionsPosition[ 32150, 708]
NotebookOutlinePosition[ 32541, 724]
CellTagsIndexPosition[ 32498, 721]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"Integrate", "[",
RowBox[{
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{
RowBox[{"-", " ",
SuperscriptBox["k", "2"]}], " ", "t"}]], " ",
RowBox[{"Sin", "[",
RowBox[{"k", " ", "l"}], "]"}], " ",
RowBox[{"Sin", "[",
RowBox[{"k", " ", "l"}], "]"}]}], " ", ",", " ",
RowBox[{"{",
RowBox[{"k", ",", " ",
RowBox[{"-", "\[Infinity]"}], ",", " ", "\[Infinity]"}], "}"}], ",",
" ",
RowBox[{"Assumptions", "->",
RowBox[{"{",
RowBox[{
RowBox[{"l", ">", "0"}], ",", " ",
RowBox[{"l", "\[Element]", " ", "Reals"}], ",", " ",
RowBox[{"t", ">", "0"}], ",", " ",
RowBox[{"t", "\[Element]", " ", "Reals"}]}], "}"}]}]}], "]"}], "//",
"FullSimplify"}]], "Input",
CellChangeTimes->{{3.9032574024630003`*^9, 3.903257451558182*^9}, {
3.903257545925427*^9, 3.903257564196509*^9}, {3.903257609371249*^9,
3.9032576480710297`*^9}},
CellLabel->"In[7]:=",ExpressionUUID->"c2f56688-daa6-4d9d-b18c-b5d2ffbd48b2"],
Cell[BoxData[
FractionBox[
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
SuperscriptBox["l", "2"], "t"]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "1"}], "+",
SuperscriptBox["\[ExponentialE]",
FractionBox[
SuperscriptBox["l", "2"], "t"]]}], ")"}], " ",
SqrtBox["\[Pi]"]}],
RowBox[{"2", " ",
SqrtBox["t"]}]]], "Output",
CellChangeTimes->{{3.9032574720844507`*^9, 3.9032574906973867`*^9}, {
3.903257555984042*^9, 3.903257573514387*^9}, {3.903257625825601*^9,
3.903257649594784*^9}},
CellLabel->"Out[7]=",ExpressionUUID->"1204dbc3-8189-4a00-8c67-74e5e3413b7e"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"Integrate", "[",
RowBox[{
FractionBox[
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{
RowBox[{"-",
FractionBox[
SuperscriptBox["l", "2"], "s"]}], "+", " ",
RowBox[{
SuperscriptBox["k",
RowBox[{"2", " "}]], "s"}]}]], "-",
SuperscriptBox["\[ExponentialE]",
RowBox[{
SuperscriptBox["k", "2"], " ", "s"}]]}],
RowBox[{"\[Sqrt]", "s"}]], " ", ",", " ",
RowBox[{"{",
RowBox[{"s", ",", " ", "0", ",", " ", "t"}], "}"}], ",", " ",
RowBox[{"Assumptions", "->",
RowBox[{"{",
RowBox[{
RowBox[{"t", ">", "0"}], ",", " ",
RowBox[{"k", "\[Element]", " ", "Reals"}], ",", " ",
RowBox[{"l", ">", "0"}]}], "}"}]}]}], "]"}], "//",
"FullSimplify"}]], "Input",
CellChangeTimes->{{3.903258089754456*^9, 3.9032581528000793`*^9}, {
3.9032582375269547`*^9, 3.903258251417397*^9}, {3.9032582818253117`*^9,
3.903258288353743*^9}, {3.90331517097647*^9, 3.903315220236714*^9}, {
3.9035902248646917`*^9, 3.903590230078676*^9}},
CellLabel->"In[6]:=",ExpressionUUID->"2c97256a-260a-462d-9d8c-bcdad48cd468"],
Cell[BoxData[
FractionBox[
RowBox[{
SqrtBox["\[Pi]"], " ",
RowBox[{"(",
RowBox[{
RowBox[{"\[ImaginaryI]", " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{
RowBox[{"-", "2"}], " ", "\[ImaginaryI]", " ", "k", " ", "l"}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "1"}], "+",
RowBox[{"Erf", "[",
FractionBox[
RowBox[{"l", "-",
RowBox[{"\[ImaginaryI]", " ", "k", " ", "t"}]}],
SqrtBox["t"]], "]"}], "+",
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"4", " ", "\[ImaginaryI]", " ", "k", " ", "l"}]], " ",
RowBox[{"Erfc", "[",
FractionBox[
RowBox[{"l", "+",
RowBox[{"\[ImaginaryI]", " ", "k", " ", "t"}]}],
SqrtBox["t"]], "]"}]}]}], ")"}]}], "-",
RowBox[{"2", " ",
RowBox[{"Erfi", "[",
RowBox[{"k", " ",
SqrtBox["t"]}], "]"}]}]}], ")"}]}],
RowBox[{"2", " ", "k"}]]], "Output",
CellChangeTimes->{
3.903258153461577*^9, {3.9032582449589643`*^9, 3.903258254863236*^9},
3.903258288915979*^9, 3.903590236958762*^9},
CellLabel->"Out[6]=",ExpressionUUID->"f320d53e-8ddf-4c62-bb11-aeb6f26231da"]
}, Open ]],
Cell[BoxData[
RowBox[{"(*", " ",
RowBox[{"Real", " ", "part", " ", "of", " ",
SubscriptBox["P", "k"]}], " ", "*)"}]], "Input",
CellChangeTimes->{{3.903480060767641*^9,
3.903480069741311*^9}},ExpressionUUID->"4a820829-4323-4131-85ca-\
899740250a52"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Plot", "[",
RowBox[{
RowBox[{
RowBox[{"-", "2"}], " ",
RowBox[{"Sin", "[", "1", "]"}], " ",
RowBox[{"Sin", "[", "1", "]"}],
SuperscriptBox["\[ExponentialE]",
RowBox[{"-", "t"}]]}], ",", " ",
RowBox[{"{",
RowBox[{"t", ",", "0", ",", "\[Infinity]"}], "}"}]}], "]"}]], "Input",
CellChangeTimes->{{3.903480072676083*^9, 3.90348007435848*^9}, {
3.903480105727152*^9, 3.9034801928428926`*^9}},
CellLabel->"In[2]:=",ExpressionUUID->"5b89d68f-80ee-432c-9984-e19fcd7fa65a"],
Cell[BoxData[
GraphicsBox[{{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[
1.], LineBox[CompressedData["
1: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
"]]},
Annotation[#, "Charting`Private`Tag$4380#1"]& ]}, {}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{None, None},
AxesOrigin->{0., 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {
Charting`ScaledTicks["Infinite", {
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}, "Nice",
WorkingPrecision -> MachinePrecision, RotateLabel -> 0],
Charting`ScaledFrameTicks[{
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}]}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
ImagePadding->All,
Method->{
"DefaultBoundaryStyle" -> Automatic,
"DefaultGraphicsInteraction" -> {
"Version" -> 1.2, "TrackMousePosition" -> {True, False},
"Effects" -> {
"Highlight" -> {"ratio" -> 2}, "HighlightPoint" -> {"ratio" -> 2},
"Droplines" -> {
"freeformCursorMode" -> True,
"placement" -> {"x" -> "All", "y" -> "None"}}}}, "DefaultMeshStyle" ->
AbsolutePointSize[6], "ScalingFunctions" -> None,
"CoordinatesToolOptions" -> {"DisplayFunction" -> ({
(Charting`InfiniteScale["Infinite"]["Category"][#]& )[
Part[#, 1]],
(Identity[#]& )[
Part[#, 2]]}& ), "CopiedValueFunction" -> ({
(Charting`InfiniteScale["Infinite"]["Category"][#]& )[
Part[#, 1]],
(Identity[#]& )[
Part[#, 2]]}& )}},
PlotRange->{{0., 1}, {-0.6120395689082897, 0.}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->FrontEndValueCache[{
Charting`ScaledTicks["Infinite", {
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}, "Nice",
WorkingPrecision -> MachinePrecision, RotateLabel -> 0],
Automatic}, {{{0.,
FormBox["0", TraditionalForm], {0.01, 0.}}, {0.1925824035672523,
FormBox["2", TraditionalForm], {0.01, 0.}}, {0.6180339887498949,
FormBox["10", TraditionalForm], {0.01, 0.}}, {0.9049875621120891,
FormBox["50", TraditionalForm], {0.01, 0.}}, {0.2769839649484336,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.35078105935821213`,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.7807764064044151,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.8471270883830364,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.8827822185373186,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {1,
FormBox["\[Infinity]", TraditionalForm], {0.01, 0.}}},
Automatic}]]], "Output",
CellChangeTimes->{{3.903480189851519*^9, 3.903480194507559*^9}},
CellLabel->"Out[2]=",ExpressionUUID->"698bb93c-8a51-45b7-90e9-111805cd5b61"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"(*", " ",
RowBox[{"Imaginary", " ", "part", " ", "of", " ",
SubscriptBox["P", "k"]}], " ", "*)"}], "\[IndentingNewLine]",
RowBox[{"Plot", "[",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"Sin", "[", "2", "]"}],
SuperscriptBox["\[ExponentialE]",
RowBox[{"-", "t"}]]}], "-",
RowBox[{
FractionBox["\[Pi]", "2"], " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-", "t"}]],
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "2"}], " ",
RowBox[{"Sin", "[", "2", "]"}]}], "+",
RowBox[{"\[ImaginaryI]", " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{
RowBox[{"-", "2"}], " ", "\[ImaginaryI]", " "}]],
RowBox[{"Erf", "[",
FractionBox[
RowBox[{"1", "-",
RowBox[{"\[ImaginaryI]", " ", "t"}]}],
RowBox[{"\[Sqrt]", "t"}]], "]"}]}], "-",
RowBox[{"\[ImaginaryI]", " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"2", " ", "\[ImaginaryI]", " "}]],
RowBox[{"Erf", "[",
FractionBox[
RowBox[{"1", "+",
RowBox[{"\[ImaginaryI]", " ", "t"}]}],
RowBox[{"\[Sqrt]", "t"}]], "]"}]}], "+",
RowBox[{"2", "\[ImaginaryI]", " ",
RowBox[{"Erf", "[",
RowBox[{"\[ImaginaryI]", " ",
RowBox[{"\[Sqrt]", "t"}]}], "]"}]}]}], ")"}]}]}], ",", " ",
RowBox[{"{",
RowBox[{"t", ",", " ", "1", ",", " ", "10"}], "}"}]}], "]"}]}]], "Input",\
CellChangeTimes->{{3.903480202319006*^9, 3.9034803565461807`*^9}, {
3.903480395913766*^9, 3.903480631104916*^9}, {3.903480671486363*^9,
3.903480751555588*^9}, 3.9034807825780373`*^9},
CellLabel->"In[17]:=",ExpressionUUID->"b4272938-2598-4bbb-8b68-2cc35f395b1b"],
Cell[BoxData[
GraphicsBox[{{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[
1.], LineBox[CompressedData["
1:eJwVxXk4lAkcAOBJtDTjbELTROProCJXxyR+v1GSrdCiUtNKJRWbDu2zteSW
pXGFlVtUatE3KCrkJleWp9lIRNY2mJpRw4TM7v7xPi/ruN8PXgoUCmXff/7/
tWSfGYUiBqPEh4nFChRsUnvIc6SKwT43aMOpWTmUrtcYy9AWw2nn3nRfiRxi
vbpvs43FkD62Z+zCWzns6D1Av3RYDCbqprUej+RQXOMx/XeZGD4K7r/sOSmH
iLgLVW1nJFCwvCnmUt08mBsnO/zeMwl702gB4qvfgOXpxaeOSEEh5YpSyZMZ
eBanqBVeIwPmVHvjIEcG+aqLLLJiZ8F38M2nzjkpGITH5yXfmocrdq/iHSs+
w90Z/8jdFRScW7Fu1qFNAhEbR4ctbRXQ6vKoVXb3J6DdiNKfbFiI2h16ZkPh
EyD0SjzEN1bCVVckLhH1QtCoPMYeLFuEky+o5zUY/wAvLkVb3UAZI4OrT4hG
RqAk+luPepQKZuaFhr+eGgaWghE7iEbFNfb0A32MIRidepYm/pmG2faMoFnW
IEi9l+R3yVUxfsyYu8G4HwopGbyQEHXs2HZD8jGjF7jUJnaavwZ+b77N1Djw
L4hyzaH8sUUTLU/PXJ8//wo8uMWNlSJNXNAwkqBc3QNHbmcNKJVqYblDoWoR
oxvWB9zzLvdfgt6NdrrMoi64Qx/5eMaIjj4Dfed5sk6wG1dodRHR0WF/+y/i
gnaID3bLs8lfikkdTqYLnrZC8f2aiYSD2jjBpyfuUnwBkxpq0UyGDqo8bLnL
PdQMQ5vjVhe81EGznDybheJGkKZN0n2SdHGLS5nvp9gGeJt4zj/FbRmefj+s
1OFWD34Oet11Kgy8WiFStNhbB2ttyLA1HQzUu7Yhp86uFqIlly1iwpbje85B
odGpGqjZ6upyaDMTfUzax4vZz4FZTW/myphoNsZRjSmoAkJBhX28aAUqT7f2
uTpXglP44HzWBT1sl0p1AmVPYU2jsK7fUB9bRtSv6nc9ga5btOnQfn18/fKM
vXddBTgLooB0Woml9YG5gyXloAZ3QrMfrMRCy4ZN+5ofw0BTid86VRZ+3sn2
Tel9BKmp7UnCn1ioyRII9lAeQYEDhW3UwsK8DCtunm0ZtC5bfV1xnQEe641c
LQopBdsXJ1yPRRiguTXVhNFbAvl1xe7iAQM0XD9kxrQuAd03Y8pMJNAsLcI6
L5MPw924pSWNQJ779gBbTT5kGe7RPppBoFCHYTCkxgf3a25SSSaBfzovPhpM
40OX0dnS5bkErlrpmFDzHR+qg29u9LtHoLk8XWQ/T0K6yeha7TICS6Ve9hfH
SXCNjtE92UEgfXLbUssmEjTeJU/LOgns339RNlJPQtumHAGvi8DfBnefTakl
wXaoLKm8h0CuGfXrTCUJplsHNKh9BOY4+VW1lpJAGzVVKRklMNDR9XF4Lgkt
VlYfdn0g0HGnha9NNglhCXbNb4QEdu5IK5JlkDCz/XCEkojA4HTr7nOpJHy4
GbbA/TOBtZyYTM84EvKFvHeiLwRe8zvyQJ9HggekPg+dIjDAw5QzEE2CYKww
sPArgYJfDWlHI0lIxHIuZ5bA2L5xWBFOgmNKrZVgjsAqzy9zb0NIWDzRxvCZ
J3Dvj1o7soNIaOQIvsrlBCZbaGt5BpLwLwkSSm8=
"]]},
Annotation[#, "Charting`Private`Tag$29950#1"]& ]}, {}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{None, None},
AxesOrigin->{1.0000000000000022`, 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
ImagePadding->All,
Method->{
"DefaultBoundaryStyle" -> Automatic,
"DefaultGraphicsInteraction" -> {
"Version" -> 1.2, "TrackMousePosition" -> {True, False},
"Effects" -> {
"Highlight" -> {"ratio" -> 2}, "HighlightPoint" -> {"ratio" -> 2},
"Droplines" -> {
"freeformCursorMode" -> True,
"placement" -> {"x" -> "All", "y" -> "None"}}}}, "DefaultMeshStyle" ->
AbsolutePointSize[6], "ScalingFunctions" -> None,
"CoordinatesToolOptions" -> {"DisplayFunction" -> ({
(Identity[#]& )[
Part[#, 1]],
(Identity[#]& )[
Part[#, 2]]}& ), "CopiedValueFunction" -> ({
(Identity[#]& )[
Part[#, 1]],
(Identity[#]& )[
Part[#, 2]]}& )}},
PlotRange->{{1, 10}, {0., 2.0013095340566633`}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->{Automatic, Automatic}]], "Output",
CellChangeTimes->{
3.903480357471342*^9, {3.903480405610982*^9, 3.903480437527338*^9}, {
3.903480476376898*^9, 3.903480498464209*^9}, 3.903480544646167*^9, {
3.9034805748933372`*^9, 3.9034806060433807`*^9}, 3.903480783599098*^9},
CellLabel->"Out[17]=",ExpressionUUID->"745c2c07-fb1d-4233-b43a-54d869ffc6b8"]
}, Open ]],
Cell[BoxData[
RowBox[{"(*", " ",
RowBox[{"Hermite", " ", "function", " ", "way"}], " ", "*)"}]], "Input",
CellChangeTimes->{{3.903337244054214*^9,
3.903337252181931*^9}},ExpressionUUID->"06a89a0d-3c7a-49e2-8c38-\
a3232876d5bb"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"Integrate", "[",
RowBox[{
RowBox[{
SuperscriptBox["\[ExponentialE]",
FractionBox[
SuperscriptBox["k", "2"], "2"]], " ",
RowBox[{"D", "[",
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-", " ",
SuperscriptBox["k", "2"]}]], ",", " ",
RowBox[{"{",
RowBox[{"k", ",", "8"}], "}"}]}], "]"}], " ",
RowBox[{"Sin", "[",
RowBox[{"k", " ", "l"}], "]"}], " ",
RowBox[{"Sin", "[",
RowBox[{"k", " ", "l"}], "]"}]}], ",", " ",
RowBox[{"{",
RowBox[{"k", ",", " ",
RowBox[{"-", "\[Infinity]"}], ",", " ", "\[Infinity]"}], "}"}]}], "]"}],
"//", "FullSimplify"}]], "Input",
CellChangeTimes->{{3.903337254225676*^9, 3.903337352727174*^9}, {
3.903337427481456*^9, 3.90333743304329*^9}, {3.9033374801216707`*^9,
3.903337542404915*^9}, {3.9033375819638166`*^9, 3.903337679806876*^9}, {
3.903337839284733*^9, 3.903337849707573*^9}, {3.903337902044365*^9,
3.903337902744823*^9}, {3.903338079496849*^9, 3.9033380798868628`*^9}, {
3.90334121138336*^9, 3.903341211580422*^9}, {3.903341453890373*^9,
3.903341454277856*^9}},
CellLabel->"In[41]:=",ExpressionUUID->"231ff647-fd0e-43bb-ac06-b9e756f2f90f"],
Cell[BoxData[
RowBox[{"8", " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{
RowBox[{"-", "2"}], " ",
SuperscriptBox["l", "2"]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "105"}], "+",
RowBox[{"105", " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"2", " ",
SuperscriptBox["l", "2"]}]]}], "-",
RowBox[{"32", " ",
SuperscriptBox["l", "2"], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "105"}], "+",
RowBox[{"420", " ",
SuperscriptBox["l", "2"]}], "-",
RowBox[{"448", " ",
SuperscriptBox["l", "4"]}], "+",
RowBox[{"128", " ",
SuperscriptBox["l", "6"]}]}], ")"}]}]}], ")"}], " ",
SqrtBox[
RowBox[{"2", " ", "\[Pi]"}]]}]], "Output",
CellChangeTimes->{
3.903337383876786*^9, {3.903337458286207*^9, 3.903337519123309*^9},
3.9033375730064898`*^9, {3.9033376216244173`*^9, 3.9033376841443777`*^9}, {
3.90333784219357*^9, 3.903337855433867*^9}, 3.903337909277473*^9,
3.903338086908078*^9, 3.903341218197476*^9, 3.903341459018365*^9},
CellLabel->"Out[41]=",ExpressionUUID->"67de9ce1-2fda-49f4-b6b1-6955f18f9d40"]
}, Open ]]
},
WindowSize->{1440., 709.5},
WindowMargins->{{0, Automatic}, {52.5, 27.75}},
FrontEndVersion->"13.1 for Linux x86 (64-bit) (June 16, 2022)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"62661255-542c-4291-a852-ea92f3dc1dc3"
]
(* End of Notebook Content *)
(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[580, 22, 1066, 28, 38, "Input",ExpressionUUID->"c2f56688-daa6-4d9d-b18c-b5d2ffbd48b2"],
Cell[1649, 52, 656, 19, 79, "Output",ExpressionUUID->"1204dbc3-8189-4a00-8c67-74e5e3413b7e"]
}, Open ]],
Cell[CellGroupData[{
Cell[2342, 76, 1191, 31, 62, "Input",ExpressionUUID->"2c97256a-260a-462d-9d8c-bcdad48cd468"],
Cell[3536, 109, 1237, 35, 92, "Output",ExpressionUUID->"f320d53e-8ddf-4c62-bb11-aeb6f26231da"]
}, Open ]],
Cell[4788, 147, 260, 6, 32, "Input",ExpressionUUID->"4a820829-4323-4131-85ca-899740250a52"],
Cell[CellGroupData[{
Cell[5073, 157, 532, 13, 33, "Input",ExpressionUUID->"5b89d68f-80ee-432c-9984-e19fcd7fa65a"],
Cell[5608, 172, 18313, 325, 230, "Output",ExpressionUUID->"698bb93c-8a51-45b7-90e9-111805cd5b61"]
}, Open ]],
Cell[CellGroupData[{
Cell[23958, 502, 1839, 48, 80, "Input",ExpressionUUID->"b4272938-2598-4bbb-8b68-2cc35f395b1b"],
Cell[25800, 552, 3645, 78, 238, "Output",ExpressionUUID->"745c2c07-fb1d-4233-b43a-54d869ffc6b8"]
}, Open ]],
Cell[29460, 633, 235, 5, 32, "Input",ExpressionUUID->"06a89a0d-3c7a-49e2-8c38-a3232876d5bb"],
Cell[CellGroupData[{
Cell[29720, 642, 1260, 30, 44, "Input",ExpressionUUID->"231ff647-fd0e-43bb-ac06-b9e756f2f90f"],
Cell[30983, 674, 1151, 31, 42, "Output",ExpressionUUID->"67de9ce1-2fda-49f4-b6b1-6955f18f9d40"]
}, Open ]]
}
]
*)
from numpy import array,isnan,eye, hstack,vstack,shape,zeros,dot
from scipy import linalg
def Newton_Scalar(f,x,fprime,args):
glag = True
count = 1
while glag and (count<100):
xn = x - f(x,*args)/fprime(x,*args) #Newton iterate
if abs(xn-x)<1e-14:
glag = False
else:
x = xn #Next iterate
count = count + 1
#Sanity check for non-convergent cases.
if (count>100) or isnan(x):
print("Not converged")
print("code not generated")
exit()
return x
def RK4(fun,y0,t0,tfinal,dt,args):
y = y0
t = t0
Time = [t0,]
Solution = [y,]
flag = True
while flag==True:
k1 = fun(y,t,*args)
k2 = fun(y+0.5*dt*k1,t+0.5*dt,*args)
k3 = fun(y+0.5*dt*k2,t+0.5*dt,*args)
k4 = fun(y+dt*k3,t+dt,*args)
y = y + (k1 + 2*k2 + 2*k3 + k4)/6.*dt
Solution.append(y)
t = t + dt
Time.append(t)
if abs(t-tfinal)<dt/10:
flag = False
elif any(isnan(y)):
flag = False
Time = array(Time)
Solution = array(Solution)
return Time,Solution
def BDF_N(fun,Previous_States,t0,tfinal,dt,args,Explicit_Time=False):
#This code only works for linear ODEs of the type dy/dt=A(t)y
#The integrator also works for linear PDEs where the fun should return relevant boundary conditions as well
#fun is a python function which evaluates the RHS of the PDE and then spits out this along with the boundary conditions.
#alpha is the operator acting on the unknown function coefficients: eg (-1)**n, (1)**n, etc.
#beta is the value of the boundary operator. So for homogeneous problems, beta = 0.
# alpha acting on y evaluates to beta at each time t.
#The type of the BDF algorithm is implicitly decided by length of the previous states
#All Previous_States should be same length. This decides the size of the matrices in time step
flag = True
N = len(Previous_States[0])
for term in Previous_States[1:]:
if len(term)==N:
flag = True
else:
flag = False
break
if flag == False:
print("Previous States are not all same length. Integrator aborted")
return None
BDF_Type = len(Previous_States)
if BDF_Type == 1:
State_Weights = array([1,dt])
elif BDF_Type == 2:
State_Weights = array([-1./3, 4./3, 2./3*dt])
elif BDF_Type == 3:
State_Weights = array([2./11, -9./11, 18./11, 6./11*dt ])
elif BDF_Type == 4:
State_Weights = array([-3./25, 16./25, -36./25, 48./25, 12./25*dt])
#Function fun(N,t,args) should return the right-hand side matrix A(t), boundary operator alpha(t) and boundary data beta(t)
#Check to see if fun depends explicitly on time. If not, relevant matrices can be precomputed.
if Explicit_Time==False:
A, alpha, beta = fun(N,*args)
I = eye(N)
Number_of_BCs = shape(alpha)[0] #Number of rows of boundary operator
if Number_of_BCs!=len(beta):
print("Number of boundary conditions don't match the shape of the boundary operator. Integrator aborted")
return None
A = A[:-Number_of_BCs,:]
I = I[:-Number_of_BCs,:]
print(shape(A),shape(alpha),shape(beta),shape(I))
A = I - State_Weights[-1]*A
A = vstack((A,alpha))
I = vstack((I,zeros([Number_of_BCs,N])))
beta = hstack([zeros(N-Number_of_BCs),beta])
else:
I = eye(N)
print("Sorry, explicit time dependent rhs not currently implemented. Integrator aborted")
return None
Time = [t0,]
t = t0
Solution = [Previous_States[0],]
for term in Previous_States[1:]:
Solution.append(term)
flag = True
while flag==True:
b = 0
for coeff, term in zip(State_Weights[:-1],Previous_States):
b = coeff*term + b
b = dot(I,b) + beta
New_State = linalg.solve(A,b)
Previous_States = Previous_States[1:]
Previous_States.append(New_State)
Solution.append(New_State)
t = t + dt
Time.append(t)
if abs(t-tfinal)<dt/10:
flag = False
elif any(isnan(New_State)):
flag = False
Time = array(Time)
Solution = array(Solution)
return Time,Solution
This source diff could not be displayed because it is too large. You can view the blob instead.
import numpy as np
import matplotlib.pyplot as plt
import scipy
import math
import sympy
N = 100
sigma0 = -1
l0 = 20
# t array
T = 100
dt = 0.01
times = np.arange(0, T, dt)
def hermite_function(order, arg):
return ((2**order * math.factorial(order) * np.sqrt(np.pi))**(-0.5)
* scipy.special.eval_hermite(order, arg) * np.exp(-arg**2/2)
)
# vector of hermite functions
vector_of_hermite_polynomials = np.zeros(N, dtype = 'complex_')
for r in range(0, N):
vector_of_hermite_polynomials[r] = hermite_function(r, 0) * (-1j)**(r)
# adjacency matrix
a = np.zeros((N, N), dtype='complex_')
for n in range(0, N):
for m in range(0, N):
if m == n:
a[m][n] = (n + 1/2)
elif m == n - 2:
a[m][n] = np.sqrt(n * (n - 1))/2
elif m == n + 2:
a[m][n] = np.sqrt((n + 1) * (n + 2))/2
# a1
a1 = np.zeros((N, N), dtype='complex_')
for nn in range(0, N):
for mm in range(0, N):
if mm == nn-1:
a1[nn][mm] = np.sqrt(nn/2)
if mm == nn + 1:
a1[nn][mm] = np.sqrt((nn + 1)/2)
# q1
def q(length):
q1_array = np.zeros(N, dtype='complex_')
q1_array[0] = np.sqrt(1/2) * (-1j) * (hermite_function(1, 0) + hermite_function(1, -2 * length))
for p1 in range(1, N):
q1_array[p1] = ( np.sqrt(p1/2) * (-1j)**(p1-1) * (hermite_function(p1 - 1, 0) + hermite_function(p1 - 1, -2 * length))
+ np.sqrt((p1 + 1)/2) * (-1j)**(p1+1) * (hermite_function(p1 + 1, 0) + hermite_function(p1 + 1, -2 * length))
)
return q1_array
# b
b = np.zeros((len(times), N), dtype='complex_')
b[0] = 0
length = np.zeros(len(times))
length[0] = l0
def func1(b, length):
return ((1j/np.pi) * np.dot(vector_of_hermite_polynomials, b) * np.dot(a1, b)
- np.dot(a, b) + 1j * q(length) * (sigma0 + ((1-sigma0)/np.pi )* np.dot(vector_of_hermite_polynomials, b))
)
def func2(b):
return (1/np.pi) * np.dot(vector_of_hermite_polynomials, b)
# euler
for l in range(0, len(times)-1):
b[l+1] = b[l] + dt * func1(b[l], length[l])
length[l+1] = length[l] + dt * func2(b[l])
print(length[-1])
plt.plot(times, length)
plt.xlabel('time')
plt.ylabel('length')
plt.title('Boundary growth, N=%i' %N)
plt.show()
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
from numpy import *
from numpy.fft import fft,ifft
def cheb(y):
'''Chebyshev transform. Finds Chebyshev coefficients given y evaluated on
Chebyshev grid'''
N = len(y) - 1
yt = real(fft(r_[y, y[-2:0:-1]]))
yt = yt/(2*N)
yt = r_[yt[0],yt[1:N]+yt[-1:N:-1],yt[N]]
return yt
def icheb(c):
'''Inverse Chebyshev transform. Evaluates Chebyshev series at the Chebyshev
grid points given Chebyshev coefficients.'''
N = len(c) - 1
y = r_[c[0],0.5*c[1:N],c[N],0.5*c[-1:N:-1]]
y = y*2*N
y = real(ifft(r_[y,y[-2:0:-1]]))[:N+1]
return y
def Dcheb(y,interval):
'''Chebyshev derivative of y evaluated on Chebyshev grid in interval [a,b]'''
N = len(y) - 1
a,b = interval
x = 0.5*(b-a)*(cos(r_[0:N+1]*pi/N) + 1) + a
k = r_[0:N]
A = real(fft(r_[y,y[-2:0:-1]]))
yy = real(ifft(1j*r_[k,0,-k[-1:0:-1]]*A))
fact = 2.*(x-a)/(b-a)-1
fact = fact[1:-1]
yprime = -2./(b-a)*yy[1:N]/sqrt(1-fact**2)
A = A/(2*N)
A = r_[A[0],A[1:N]+A[-1:N:-1],A[N]]
k = r_[0:N+1]
yprime1 = sum(k**2*A)*2./(b-a)
yprimeN = sum((-1)**(k+1)*k**2*A)*2./(b-a)
return r_[yprime1,yprime,yprimeN]
def regrid(y,M):
N = len(y) - 1
a = cheb(y)
if M==N:
return y
if M>N:
a = r_[a,zeros(M-N)]
return icheb(a)
if M<N:
a = a[:M+1]
return icheb(a)
def clenshaw(x,c):
'''Clenshaw algorithm to evaluate Chebyshev series at x
assumes x is in [-1,1]'''
N = len(c) - 1
b = zeros(N+2)
b[-1] = 0
b[-2] = c[-1]
for r in r_[N-1:0:-1]:
b[r] = 2*x*b[r+1] - b[r+2] + c[r]
s = x*b[1] - b[2] + c[0]
return s
def clenshaw2(x,c,change_grid = True):
'''Vectorized version of Clenshaw algorithm
Use this for Chebyshev polynomial evaluation'''
if change_grid:
if (min(x)!=-1) or (max(x)!=1):
x = 2*(x-min(x))/(max(x)-min(x)) - 1
N = len(c) - 1
b = zeros([N+2,len(x)])
b[-1,:] = 0
b[-2,:] = c[-1]
for r in r_[N-1:0:-1]:
b[r,:] = 2*x*b[r+1,:] - b[r+2,:] + c[r]
s = x*b[1,:] - b[2,:] + c[0]
return s
def chebD(c,interval):
'''Finds derivative of Chebyshev series in spectral space
i.e. maps c_n--->d_n where c_n,d_n are Chebyshev coefficients
of f(x) and f'(x) in the interval [a,b].'''
N = len(c) - 1
a,b = interval
if (a!=-1.) or (b!=1.):
factor = 2./(b-a)
else:
factor = 1.
b = c*r_[0:N+1]
cp = zeros_like(b)
cp[0] = sum(b[1::2])
evens = b[2::2]
odds = b[1::2]
cp[1:N+1-(N%2):2] = 2*cumsum(evens[-1::-1])[-1::-1]
cp[2:N+1-((N+1)%2):2] = 2*cumsum(odds[-1::-1])[-2::-1]
cp = cp*factor
return cp
def chebD_semiinf(c):
'''Finds the derivative of Chebyshev series in spectral space
i.e. maps c_n --> d_n where c_n, d_n are Chebyshev coefficients
of f(x) and f'(x) in the interval [0,oo)'''
'''To be used only for the positive half-line'''
N = len(c) - 1
b = c*r_[0:N+1]
cp = zeros_like(b)
cp[0] = sum(b[1::2])
evens = b[2::2]
odds = b[1::2]
cp[1:N+1-(N%2):2] = 2*cumsum(evens[-1::-1])[-1::-1]
cp[2:N+1-((N+1)%2):2] = 2*cumsum(odds[-1::-1])[-2::-1]
d0 = 3./4*cp[0] - cp[1]/2. + cp[2]/8.
d1 = -cp[0] + 7./8*cp[1] - cp[2]/2. + cp[3]/8.
d2 = cp[0]/4. - cp[1]/2. + 3./4*cp[2] - cp[3]/2. + cp[4]/8.
d3 = cp[1]/8. - cp[2]/2. + 3./4*cp[3] - cp[4]/2. + cp[5]/8.
dn = [ cp[i-2]/8. - cp[i-1]/2. + 3./4*cp[i] - cp[i+1]/2. + cp[i+2]/8. for i in range(4,N-1)]
dn1 = cp[N-1-2]/8. - cp[N-1-1]/2. + 3./4*cp[N-1] - cp[N-1+1]/2.
dn2 = cp[N-2]/8. - cp[N-1]/2. + 3./4*cp[N]
dn = r_[d0,d1,d2,d3,dn,dn1,dn2]
return dn
def cheb2zD_semiinf(c):
'''Finds the Chebyshev coefficients of the operator 2z df/dz when
f has a series in Chebyshev rational functions Rn(z) = Tn((z-1)/(z+1)). Input
is the coefficients of f.'''
N = len(c) - 1
b = c*r_[0:N+1]
cp = zeros_like(b)
cp[0] = sum(b[1::2])
evens = b[2::2]
odds = b[1::2]
cp[1:N+1-(N%2):2] = 2*cumsum(evens[-1::-1])[-1::-1]
cp[2:N+1-((N+1)%2):2] = 2*cumsum(odds[-1::-1])[-2::-1]
d0 = -cp[2]/4. + cp[0]/2.
d1 = cp[1]/4. - cp[3]/4.
d2 = -cp[0]/2. + cp[2]/2. - cp[4]/4.
dn = [ -cp[n-2]/4. + cp[n]/2. - cp[n+2]/4 for n in range(3,N-1)]
dn1 = -cp[N-3]/4. + cp[N-1]/2
dn2 = -cp[N-2]/4. + cp[N]/2
dn = r_[d0,d1,d2,dn,dn1,dn2]
return dn
def Intcheb(y,interval):
'''Clenshaw-Curtis to find definite integral of function y(x) given at
Chebyshev grid points in some interval [a,b]'''
fact = 0.5*(interval[1]-interval[0])
b = cheb(y)
N = len(y) - 1
if N%2 == 0:
w = array([ 2./(-(2*k)**2+1) for k in r_[0:N/2+1]])
else:
w = array([ 2./(-(2*k)**2+1) for k in r_[0:(N-1)/2+1]])
return dot(b[::2],w)*fact
def chebI(c,interval,x0=None,f0=None):
if x0==None:
x0=interval[0]
N = len(c) - 1
I = diag(1./(2*r_[0.5,r_[2:N+1]]),-1) -diag(1./(2*r_[1,r_[1:N]]),1)
I[0,1] = 0
factor = (interval[1]-interval[0])/2.
ci = dot(I,c)*factor
x = 2*(x0-interval[0])/(interval[1]-interval[0]) - 1
if x==-1 and f0==None:
ci[0] = -sum((-1)**r_[1:N+1]*ci[1:])
else:
ci[0] = f0 - clenshaw(x,ci)
return ci
def cheb_convolve(a,b):
'''Finds the product of two functions whose Chebyshev coefficients are
given by a and b. Output is the coefficiets of the product.'''
M = len(b)
N = len(a)
if N>M:
b = r_[b,zeros(N-M)]
N = N - 1
elif M>N:
a = r_[a,zeros(M-N)]
N = M - 1
else:
N = N - 1
a[0] = a[0]*2.
b[0] = b[0]*2.
c0 = a[0]*b[0] + 2*dot(a[1:],b[1:])
c1 = [ dot(a[0:k+1][::-1],b[0:k+1]) + dot(a[1:N-k+1],b[k+1:N+1]) + dot(a[k+1:N+1],b[1:N-k+1]) for k in range(1,N) ]
c2 = [ dot(a[k-N:N+1][::-1],b[k-N:N+1]) for k in range(N,2*N+1)]
c = r_[c0/2,c1,c2]/2.
return c[:N+1]
def cosT(d,inverse=False):
'''Finds the cosine transform of a given sequence'''
b = []
N = len(d)-1
for n in r_[0:N+1]:
b.append(sum(d*cos(n*r_[0:N+1]*pi/N)))
b = array(b)
if inverse:
return b
else:
b[0] = b[0]/(N)
b[1:] = b[1:]*2/(N)
return b
import numpy as np
import matplotlib.pyplot as plt
import scipy
import math
import sympy
N = 100
sigma0 = -1
l0 = 2
# t array
T = 400
dt = 0.01
times = np.arange(0, T, dt)
def hermite_function(order, arg):
return ((2**order * math.factorial(order) * np.sqrt(np.pi))**(-0.5)
* scipy.special.eval_hermite(order, arg) * np.exp(-arg**2/2)
)
# vector of hermite functions
vector_of_hermite_polynomials = np.zeros(N, dtype = 'complex_')
for q in range(0, N):
vector_of_hermite_polynomials[q] = hermite_function(q, 0) * (-1j)**(q)
# adjacency matrix
a = np.zeros((N, N), dtype='complex_')
for n in range(0, N):
for m in range(0, N):
if m == n:
a[m][n] = (n + 1/2)
elif m == n - 2:
a[m][n] = np.sqrt(n * (n - 1))/2
elif m == n + 2:
a[m][n] = np.sqrt((n + 1) * (n + 2))/2
# a1
a1 = np.zeros((N, N), dtype='complex_')
for nn in range(0, N):
for mm in range(0, N):
if mm == nn-1:
a1[nn][mm] = np.sqrt(nn/2)
if mm == nn + 1:
a1[nn][mm] = np.sqrt((nn + 1)/2)
# q1
def q1(length):
q1_array = np.zeros(N, dtype='complex_')
q1_array[0] = np.sqrt(1/2) * (-1j) * (hermite_function(1, 0) + hermite_function(1, -2 * length))
for p1 in range(1, N):
q1_array[p1] = ( np.sqrt(p1/2) * (-1j)**(p1-1) * (hermite_function(p1 - 1, 0) + hermite_function(p1 - 1, -2 * length))
+ np.sqrt((p1 + 1)/2) * (-1j)**(p1+1) * (hermite_function(p1 + 1, 0) + hermite_function(p1 + 1, -2 * length))
)
return q1_array
# q2
def q2(length):
q2_array = np.zeros(N, dtype='complex_')
for p2 in range(0, 2):
q2_array[p2] = (1/2j) * ( ((2 * p2 + 1)/2) * (-1j)**p2 * (hermite_function(p2, length + l0/2) - hermite_function(p2, length-l0/2))
+ np.sqrt((p2+1)*(p2+2))/2 * (-1j)**(p2+2) * (hermite_function(p2+2, length + l0/2) - hermite_function(p2+2, length - l0/2))
)
for p3 in range(2, N):
q2_array[p3] = (1/2j) * ( ((2 * p3 + 1)/2) * (-1j)**p3 * (hermite_function(p3, length+l0/2) - hermite_function(p3, length-l0/2))
+ np.sqrt((p3+1)*(p3+2))/2 * (-1j)**(p3+2) * (hermite_function(p3+2, length+l0/2) - hermite_function(p3+2, length-l0/2))
+ np.sqrt(p3*(p3-1))/2 * (-1j)**(p3-2) * (hermite_function(p3-2, length+l0/2) - hermite_function(p3-2, length-l0/2))
)
return q2_array
# b
b = np.zeros((len(times), N), dtype='complex_')
b[0] = 0
length = np.zeros(len(times))
length[0] = l0
def func1(b, length):
return ((1/np.pi) * np.dot(vector_of_hermite_polynomials, b) * (1j * q1(length) + np.dot(a1, b))
- np.dot(a, b) - 2j * sigma0 * q2(length)
)
def func2(b):
return (1/np.pi) * np.dot(vector_of_hermite_polynomials, b)
# euler
for l in range(0, len(times)-1):
b[l+1] = b[l] + dt * func1(b[l], length[l])
length[l+1] = length[l] + dt * func2(b[l])
print(length[-1])
plt.plot(times, length)
plt.xlabel('time')
plt.ylabel('length')
plt.title('N=%i' %N)
plt.show()
\ No newline at end of file
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 13.1' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 20319, 629]
NotebookOptionsPosition[ 18800, 601]
NotebookOutlinePosition[ 19192, 617]
CellTagsIndexPosition[ 19149, 614]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"(*", " ",
RowBox[{"1", "-",
RowBox[{
"D", " ", "solution", " ", "when", " ", "gradient", " ", "of", " ",
"active", " ", "stress", " ", "vanishes"}]}], " ", "*)"}],
"\[IndentingNewLine]",
RowBox[{
RowBox[{"Teqn", " ", "=", " ",
RowBox[{
RowBox[{"\[Gamma]", " ",
RowBox[{
RowBox[{"T", "'"}], "[", "t", "]"}]}], " ", "==", " ",
RowBox[{
RowBox[{"-",
SuperscriptBox["c", "2"]}], " ",
RowBox[{"(",
RowBox[{
RowBox[{"k", " ",
RowBox[{"T", "[", "t", "]"}]}], "+",
RowBox[{"\[Eta]", " ",
RowBox[{
RowBox[{"T", "'"}], "[", "t", "]"}]}]}], ")"}]}]}]}],
"\[IndentingNewLine]",
RowBox[{"DSolve", "[",
RowBox[{"Teqn", ",", " ",
RowBox[{"T", "[", "t", "]"}], ",", " ", "t"}], "]"}]}]}]], "Input",
CellChangeTimes->{{3.889839913832303*^9, 3.889840026289044*^9}, {
3.8898400579327374`*^9, 3.889840131193959*^9}, {3.889840294482044*^9,
3.889840314169035*^9}},ExpressionUUID->"89dddaee-a4bf-428e-ba14-\
737519719da2"],
Cell[BoxData[
RowBox[{
RowBox[{"\[Gamma]", " ",
RowBox[{
SuperscriptBox["T", "\[Prime]",
MultilineFunction->None], "[", "t", "]"}]}], "\[Equal]",
RowBox[{
RowBox[{"-",
SuperscriptBox["c", "2"]}], " ",
RowBox[{"(",
RowBox[{
RowBox[{"k", " ",
RowBox[{"T", "[", "t", "]"}]}], "+",
RowBox[{"\[Eta]", " ",
RowBox[{
SuperscriptBox["T", "\[Prime]",
MultilineFunction->None], "[", "t", "]"}]}]}], ")"}]}]}]], "Output",
CellChangeTimes->{{3.8898400870658627`*^9, 3.889840095942389*^9}, {
3.889840135197816*^9, 3.889840136738699*^9}},
CellLabel->"Out[7]=",ExpressionUUID->"40d5e60c-6d78-4109-b723-745b55ed9fc9"],
Cell[BoxData[
RowBox[{"{",
RowBox[{"{",
RowBox[{
RowBox[{"T", "[", "t", "]"}], "\[Rule]",
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
TemplateBox[{"1"},
"C"]}]}], "}"}], "}"}]], "Output",
CellChangeTimes->{{3.8898400870658627`*^9, 3.889840095942389*^9}, {
3.889840135197816*^9, 3.889840136803384*^9}},
CellLabel->"Out[8]=",ExpressionUUID->"373fced1-b084-4b5d-9eb9-d504ba5c2cff"]
}, Open ]],
Cell[BoxData[
RowBox[{"Xeqn", " ", "=", " ",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"X", "''"}], "[", "x", "]"}], "+", " ",
RowBox[{
SuperscriptBox["c",
RowBox[{"2", " "}]], " ",
RowBox[{"X", "[", "x", "]"}]}]}], "==", "0"}]}]], "Input",
CellChangeTimes->{{3.889840141419859*^9, 3.8898401512703543`*^9}, {
3.889840242928516*^9, 3.889840251804098*^9}},
CellLabel->"In[9]:=",ExpressionUUID->"e95b3340-e3c7-490a-a129-e4b3a1201367"],
Cell[BoxData[{
RowBox[{
RowBox[{
RowBox[{
SuperscriptBox["c", "2"], " ",
RowBox[{"X", "[", "x", "]"}]}], "+",
RowBox[{
SuperscriptBox["X", "\[Prime]\[Prime]",
MultilineFunction->None], "[", "x", "]"}]}], "\[Equal]",
"0"}], "\[IndentingNewLine]",
RowBox[{"DSolve", "[",
RowBox[{"Xeqn", ",", " ",
RowBox[{"X", "[", "x", "]"}], ",", "x"}], "]"}]}], "Input",
CellChangeTimes->{{3.889840255688806*^9, 3.88984026442073*^9}},
CellLabel->"In[10]:=",ExpressionUUID->"eada9099-291f-4571-89e3-70fd174f274a"],
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{
SuperscriptBox["c", "2"], " ",
RowBox[{"X", "[", "x", "]"}]}], "+",
RowBox[{
SuperscriptBox["X", "\[Prime]\[Prime]",
MultilineFunction->None], "[", "x", "]"}]}], "\[Equal]", "0"}]], "Output",\
CellChangeTimes->{3.88984026545411*^9},
CellLabel->"Out[10]=",ExpressionUUID->"ff56dd1c-92d2-4d2c-8414-34ab97f2b0d6"],
Cell[BoxData[
RowBox[{"{",
RowBox[{"{",
RowBox[{
RowBox[{"X", "[", "x", "]"}], "\[Rule]",
RowBox[{
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "+",
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}]}], "}"}], "}"}]], "Output",
CellChangeTimes->{3.88984026552654*^9},
CellLabel->"Out[11]=",ExpressionUUID->"e8f17c6d-6c48-461a-b02b-66955fd65643"],
Cell[BoxData[
RowBox[{"sol", " ", "=", " ",
RowBox[{
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "+",
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}], " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " "}]}]], "Input",
CellChangeTimes->{{3.889840319285338*^9,
3.889840368111333*^9}},ExpressionUUID->"f277c70f-94b2-4539-8f98-\
217e976d5756"],
Cell[BoxData[{
RowBox[{
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "+",
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}]}], "\[IndentingNewLine]",
RowBox[{"(*", " ",
RowBox[{"stress", " ", "at", " ", "the", " ", "boundary"}], " ",
"*)"}]}], "\[IndentingNewLine]",
RowBox[{"stress", " ", "=", " ",
RowBox[{
RowBox[{
RowBox[{"k", " ",
RowBox[{"D", "[",
RowBox[{
RowBox[{"sol", "[",
RowBox[{"x", ",", "t"}], "]"}], ",",
RowBox[{"{",
RowBox[{"x", ",", "1"}], "}"}]}], "]"}]}], "+", " ",
RowBox[{"\[Eta]", " ",
RowBox[{"D", "[",
RowBox[{
RowBox[{"sol", "[",
RowBox[{"x", ",", "t"}], "]"}], ",",
RowBox[{"{",
RowBox[{"t", ",", "1"}], "}"}]}], "]"}]}]}], "//", "FullSimplify"}]}]}
], "Input",
CellChangeTimes->{{3.8898403722576923`*^9, 3.889840384936137*^9}, {
3.8898406206840563`*^9, 3.889840703908525*^9}},
CellLabel->"In[15]:=",ExpressionUUID->"7fb3b71c-57b0-44b5-9aea-6e4d8e1dc1d3"],
Cell[BoxData[
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "+",
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}]}]], "Output",
CellChangeTimes->{{3.889840698217024*^9, 3.8898407043109713`*^9}},
CellLabel->"Out[15]=",ExpressionUUID->"ac2d613f-db8f-4092-ba98-0ec9ebb112c7"],
Cell[BoxData[{
RowBox[{
RowBox[{"\[Eta]", " ",
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ", "k", " ",
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "+",
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}]}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}], ")"}], "[",
RowBox[{"x", ",", "t"}], "]"}], "+",
RowBox[{
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "+",
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}]}], ")"}],
TagBox[
RowBox[{"(",
RowBox[{"0", ",", "1"}], ")"}],
Derivative],
MultilineFunction->None], "[",
RowBox[{"x", ",", "t"}], "]"}]}], ")"}]}], "+",
RowBox[{"k", " ",
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{"c", " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "-",
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}]}], ")"}], "[",
RowBox[{"x", ",", "t"}], "]"}], "+",
RowBox[{
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "+",
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}]}], ")"}],
TagBox[
RowBox[{"(",
RowBox[{"1", ",", "0"}], ")"}],
Derivative],
MultilineFunction->None], "[",
RowBox[{"x", ",", "t"}], "]"}]}], ")"}]}]}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"stress", "/.",
RowBox[{"{",
RowBox[{"x", "->", "0"}], "}"}]}], "//", "FullSimplify"}]}], "Input",
CellChangeTimes->{{3.889840710278348*^9, 3.889840726702474*^9}, {
3.889843701026366*^9, 3.889843714029718*^9}},
CellLabel->"In[22]:=",ExpressionUUID->"56f2849f-6be8-4742-8f6d-afdcc89bd32f"],
Cell[BoxData[
RowBox[{
RowBox[{"\[Eta]", " ",
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ", "k", " ",
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "+",
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}]}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}], ")"}], "[",
RowBox[{"x", ",", "t"}], "]"}], "+",
RowBox[{
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "+",
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}]}], ")"}],
TagBox[
RowBox[{"(",
RowBox[{"0", ",", "1"}], ")"}],
Derivative],
MultilineFunction->None], "[",
RowBox[{"x", ",", "t"}], "]"}]}], ")"}]}], "+",
RowBox[{"k", " ",
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{"c", " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "-",
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}]}], ")"}], "[",
RowBox[{"x", ",", "t"}], "]"}], "+",
RowBox[{
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{
TemplateBox[{"1"},
"C"], " ",
RowBox[{"Cos", "[",
RowBox[{"c", " ", "x"}], "]"}]}], "+",
RowBox[{
TemplateBox[{"2"},
"C"], " ",
RowBox[{"Sin", "[",
RowBox[{"c", " ", "x"}], "]"}]}]}], ")"}]}], ")"}],
TagBox[
RowBox[{"(",
RowBox[{"1", ",", "0"}], ")"}],
Derivative],
MultilineFunction->None], "[",
RowBox[{"x", ",", "t"}], "]"}]}], ")"}]}]}]], "Output",
CellChangeTimes->{{3.8898407208366413`*^9, 3.8898407273176317`*^9}, {
3.889843706711701*^9, 3.8898437152143908`*^9}},
CellLabel->"Out[22]=",ExpressionUUID->"a2f9f4be-aef0-40d5-afe3-5c8ded9359bf"],
Cell[BoxData[
RowBox[{
RowBox[{"\[Eta]", " ",
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ", "k", " ",
TemplateBox[{"1"},
"C"]}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}], ")"}], "[",
RowBox[{"0", ",", "t"}], "]"}], "+",
RowBox[{
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
TemplateBox[{"1"},
"C"]}], ")"}],
TagBox[
RowBox[{"(",
RowBox[{"0", ",", "1"}], ")"}],
Derivative],
MultilineFunction->None], "[",
RowBox[{"0", ",", "t"}], "]"}]}], ")"}]}], "+",
RowBox[{"k", " ",
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{"c", " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
TemplateBox[{"2"},
"C"]}], ")"}], "[",
RowBox[{"0", ",", "t"}], "]"}], "+",
RowBox[{
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{
SuperscriptBox["c", "2"], " ", "k", " ", "t"}],
RowBox[{"\[Gamma]", "+",
RowBox[{
SuperscriptBox["c", "2"], " ", "\[Eta]"}]}]]}]], " ",
TemplateBox[{"1"},
"C"]}], ")"}],
TagBox[
RowBox[{"(",
RowBox[{"1", ",", "0"}], ")"}],
Derivative],
MultilineFunction->None], "[",
RowBox[{"0", ",", "t"}], "]"}]}], ")"}]}]}]], "Output",
CellChangeTimes->{{3.8898407208366413`*^9, 3.8898407273176317`*^9}, {
3.889843706711701*^9, 3.889843715356616*^9}},
CellLabel->"Out[23]=",ExpressionUUID->"bc0d0482-f714-4092-b2c5-a767ad7d8887"]
},
WindowSize->{1440., 709.5},
WindowMargins->{{0, Automatic}, {0, Automatic}},
FrontEndVersion->"13.1 for Linux x86 (64-bit) (June 16, 2022)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"100ce633-1ace-427c-935f-799fb044c58c"
]
(* End of Notebook Content *)
(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[580, 22, 1093, 31, 77, "Input",ExpressionUUID->"89dddaee-a4bf-428e-ba14-737519719da2"],
Cell[1676, 55, 681, 19, 37, "Output",ExpressionUUID->"40d5e60c-6d78-4109-b723-745b55ed9fc9"],
Cell[2360, 76, 647, 18, 56, "Output",ExpressionUUID->"373fced1-b084-4b5d-9eb9-d504ba5c2cff"]
}, Open ]],
Cell[3022, 97, 467, 12, 33, "Input",ExpressionUUID->"e95b3340-e3c7-490a-a129-e4b3a1201367"],
Cell[3492, 111, 538, 14, 54, "Input",ExpressionUUID->"eada9099-291f-4571-89e3-70fd174f274a"],
Cell[4033, 127, 382, 11, 36, "Output",ExpressionUUID->"ff56dd1c-92d2-4d2c-8414-34ab97f2b0d6"],
Cell[4418, 140, 522, 17, 37, "Output",ExpressionUUID->"e8f17c6d-6c48-461a-b02b-66955fd65643"],
Cell[4943, 159, 755, 25, 49, "Input",ExpressionUUID->"f277c70f-94b2-4539-8f98-217e976d5756"],
Cell[5701, 186, 1470, 46, 94, "Input",ExpressionUUID->"7fb3b71c-57b0-44b5-9aea-6e4d8e1dc1d3"],
Cell[7174, 234, 716, 23, 53, "Output",ExpressionUUID->"ac2d613f-db8f-4092-ba98-0ec9ebb112c7"],
Cell[7893, 259, 4157, 128, 184, "Input",ExpressionUUID->"56f2849f-6be8-4742-8f6d-afdcc89bd32f"],
Cell[12053, 389, 4021, 124, 162, "Output",ExpressionUUID->"a2f9f4be-aef0-40d5-afe3-5c8ded9359bf"],
Cell[16077, 515, 2719, 84, 91, "Output",ExpressionUUID->"bc0d0482-f714-4092-b2c5-a767ad7d8887"]
}
]
*)
import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy.integrate import quad
from math import exp, sqrt, pi
def k_integral(l, l0, s, t):
return (np.exp((4 * l**2 + l0**2)/(8 * (s - t))) /(np.sqrt(np.pi) * 16 * (t - s)**(5/2)) *
( - ( (l0 - 2*l)**2 + 8 * (s - t)) * np.exp( (l0 + 2 * l)**2/(16 * (t - s)))
+ ( (l0 + 2*l)**2 + 8 * (s - t)) * np.exp( (l0 - 2 * l)**2/(16 * (t - s)))
)
)
def total_function(tt, l0, l):
ss = np.arange(0, tt-h/10, h)
index = np.arange(len(ss))
# print(l[index])
return np.trapz(k_integral(l[index], l0, ss[index], tt), ss[index])
# Explicit Euler Method
h = 0.01
t = np.arange(0, 50, h)
length = np.zeros(len(t))
l0 = 1
length[0] = l0
for i in range(0, len(t)-1):
print(i)
length[i+1] = length[i] + h * (1/np.pi) * total_function(t[i], l0, length)
fig1, ax1 = plt.subplots(1, 1)
ax1.plot(t, length)
ax1.set_ylabel("$L(t)$")
ax1.set_xlabel("$t$")
# # fig2, ax2 = plt.subplots(1, 1)
# #
# ax2.loglog(t, length)
# ax2.set_ylabel("$\log L(t)$")
# ax2.set_xlabel("$\log t$")
# fig3, ax3 = plt.subplots(1, 1)
# ax3.semilogy(t, length)
# ax3.set_ylabel("$\log L(t)$")
# ax3.set_xlabel("$t$")
plt.show()
print(length[-1])
\ No newline at end of file
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 13.1' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 46678, 1056]
NotebookOptionsPosition[ 44177, 1008]
NotebookOutlinePosition[ 44572, 1024]
CellTagsIndexPosition[ 44529, 1021]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[
RowBox[{"(*", " ",
RowBox[{
SubscriptBox["\[Sigma]", "x"], " ", "=", " ",
RowBox[{"\[Delta]",
RowBox[{"(", "x", ")"}]}]}], " ", "*)"}]], "Input",
CellChangeTimes->{{3.90547590069748*^9,
3.90547591579025*^9}},ExpressionUUID->"447026e6-1a9e-4798-ba4a-\
aaaf7da11a50"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Integrate", "[",
RowBox[{
RowBox[{
RowBox[{"Sin", "[",
RowBox[{"k", " ", "l0"}], "]"}], " ",
RowBox[{"Sin", "[",
RowBox[{"k", " ", "l0"}], "]"}], " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{
RowBox[{"-",
SuperscriptBox["k", "2"]}], " ", "t"}]]}], ",",
RowBox[{"{",
RowBox[{"k", ",", " ",
RowBox[{"-", "\[Infinity]"}], ",", " ", "\[Infinity]"}], "}"}], ",", " ",
RowBox[{"Assumptions", "->", " ",
RowBox[{"t", ">", "0"}]}]}], "]"}]], "Input",
CellChangeTimes->{{3.905468846481818*^9, 3.905468938487371*^9}, {
3.905471945298729*^9, 3.905471946644553*^9}},
CellLabel->"In[30]:=",ExpressionUUID->"05d3ffe9-eaf4-437e-b51e-b08632b90a17"],
Cell[BoxData[
FractionBox[
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
SuperscriptBox["l0", "2"], "t"]}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "1"}], "+",
SuperscriptBox["\[ExponentialE]",
FractionBox[
SuperscriptBox["l0", "2"], "t"]]}], ")"}], " ",
SqrtBox["\[Pi]"]}],
RowBox[{"2", " ",
SqrtBox["t"]}]]], "Output",
CellChangeTimes->{3.905468905906863*^9, 3.905468945770846*^9,
3.905471955905629*^9},
CellLabel->"Out[30]=",ExpressionUUID->"4b20eaab-8847-45d2-854e-1e970211e3c6"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Integrate", "[",
RowBox[{
FractionBox[
RowBox[{"(",
RowBox[{"1", "-",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-", " ",
FractionBox[
SuperscriptBox["l0", "2"], "s"]}]]}], ")"}],
RowBox[{"\[Sqrt]", "s"}]], ",",
RowBox[{"{",
RowBox[{"s", ",", " ", "0", ",", " ", "t"}], "}"}], ",", " ",
RowBox[{"Assumptions", "->",
RowBox[{"{",
RowBox[{
RowBox[{"t", ">=", "0"}], ",", " ",
RowBox[{"l0", ">", "0"}], ",", " ",
RowBox[{"l0", "\[Element]", " ", "Reals"}]}], " ", "}"}]}]}],
"]"}]], "Input",
CellChangeTimes->{{3.9054720858665237`*^9, 3.90547218060676*^9}},
CellLabel->"In[31]:=",ExpressionUUID->"0a16cdfd-a3ac-4563-8c84-9b83345a8561"],
Cell[BoxData[
RowBox[{"2", " ",
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"(",
RowBox[{"1", "-",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
SuperscriptBox["l0", "2"], "t"]}]]}], ")"}], " ",
SqrtBox["t"]}], "+",
RowBox[{"l0", " ",
SqrtBox["\[Pi]"], " ",
RowBox[{"Erfc", "[",
FractionBox["l0",
SqrtBox["t"]], "]"}]}]}], ")"}]}]], "Output",
CellChangeTimes->{3.9054721835260773`*^9},
CellLabel->"Out[31]=",ExpressionUUID->"8dcb8dfa-301c-4ed9-bca7-f3a68a087ede"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"Erfc", "[", "x", "]"}], ",",
RowBox[{"{",
RowBox[{"x", ",", " ", "0", ",", " ", "\[Infinity]"}], "}"}]}],
"]"}]], "Input",
CellChangeTimes->{{3.905472281008383*^9, 3.9054723025236473`*^9}},
CellLabel->"In[32]:=",ExpressionUUID->"4f8d3c41-3631-450b-a8e9-c7db463a429d"],
Cell[BoxData[
GraphicsBox[{{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[
1.], LineBox[CompressedData["
1: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
GEk8lmiUjugEiyueTr8bjVAXbhf3RmwnDLWMRrx5chqp8XPIuz3rhNHBgXq3
CAOU+JvZnJTcCcG7VuYMwvWR5YuZp3lZm/mySs1DKbqoyHv0i8C7TlD+iEua
/3wK8Rj0UUMKO4FkPWxXStVBjUv4fTalnVBYzvirelIbaVoVvNnS0QnhU9Pm
1aYaKE02p86T3Ak/uRKh3hTQKmv6KI3RCZFSXmosXAh9LYo5WjjcCf3dUuyh
uepI4OF9E5GJTqBJuWb3PlRDNxyCvO/PbtqStuLmp4rkeD2LL6x1Qq9i9ZWL
7iooatiFXM9Chu5b21aY/JXRWLn9sgI7GWrofvO4KCX0xv0MxsFHhpudR8uE
8ApIpOlozWdpMrzhUDstViqPbmccHN4vRwahlKqP6hzyiBywb3u0AhmMiImn
iOVy6Ik0l/FlRAYT1r7LNHVZNL2xxbNVmwwzHacngrhk0BnyaqyqARmkWVcr
NH8fRtsjxok8lmRg3YuRdBoOIZcLg4u3z5FB8M3i0pt6KVStyBAasifD2E4r
mmPHQRQ80GRX6koGPx7H/baskmhRI2/wahAZREOXotfx4qg083fyrXAyWIeu
ufZLiqNQdlmLiAdkiIoh+JWuiyJu/Luq1/Gb/cjsnjJ7LIKIChP+RYmb8x6R
jt96dS968fyofFUqGbbm2/vzGwsjqYsf0rqzyXBo9bh2sooQGv8xaTXxjgzc
fH/Y9XGCqEjqGNdqIRm0vRLjvp0WQGgy/86eUjKEdU423w7jR2fvFtpY4skQ
zJH9SsB2JxLpm+G5TCLDVXG7du9MXtSvc6LOm0aG+00zJcxjPMiD86NSzCAZ
7FR/7ThjxYUUvebGU0fJ4DCWv+OmKCdaIShkvpskg8xB0bX5OQ4UkfxpV+Mf
MmwL1iQe+MGOjDbmGyhrZEgV7L079Y0N7bqsFDLMQoHyPfxnjUu3obQjn6e2
cFFgfRAveLBnCyr+9qUZ9lMgQTelhPyEGd3e9yfsjBQFpob14/KITEgj5KT6
BRkKcMcY/VQRZULN+t/e3laiQGpBWGfc4zXsybvlSw/UKHDfZME/wGgVs+FV
E0oECiSVvKJFCf7FBsklEcUGFMhN0muSIfzBctX/YtVnKODMU7lY9mMJ83qp
vtBhQYG8kcQfkWWL2KpL6eXpCxSgyWggNsI8xr9YpiHjQwE/joMqej4zGO3c
+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
//x/QUJAog==
"]]},
Annotation[#, "Charting`Private`Tag$221252#1"]& ]}, {}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{None, None},
AxesOrigin->{0., 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {
Charting`ScaledTicks["Infinite", {
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}, "Nice",
WorkingPrecision -> MachinePrecision, RotateLabel -> 0],
Charting`ScaledFrameTicks[{
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}]}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
ImagePadding->All,
Method->{
"DefaultBoundaryStyle" -> Automatic,
"DefaultGraphicsInteraction" -> {
"Version" -> 1.2, "TrackMousePosition" -> {True, False},
"Effects" -> {
"Highlight" -> {"ratio" -> 2}, "HighlightPoint" -> {"ratio" -> 2},
"Droplines" -> {
"freeformCursorMode" -> True,
"placement" -> {"x" -> "All", "y" -> "None"}}}}, "DefaultMeshStyle" ->
AbsolutePointSize[6], "ScalingFunctions" -> None,
"CoordinatesToolOptions" -> {"DisplayFunction" -> ({
(Charting`InfiniteScale["Infinite"]["Category"][#]& )[
Part[#, 1]],
(Identity[#]& )[
Part[#, 2]]}& ), "CopiedValueFunction" -> ({
(Charting`InfiniteScale["Infinite"]["Category"][#]& )[
Part[#, 1]],
(Identity[#]& )[
Part[#, 2]]}& )}},
PlotRange->{{0., 1}, {0., 0.02719749252133514}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->FrontEndValueCache[{
Charting`ScaledTicks["Infinite", {
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}, "Nice",
WorkingPrecision -> MachinePrecision, RotateLabel -> 0],
Automatic}, {{{0.,
FormBox["0", TraditionalForm], {0.01, 0.}}, {0.1925824035672523,
FormBox["2", TraditionalForm], {0.01, 0.}}, {0.6180339887498949,
FormBox["10", TraditionalForm], {0.01, 0.}}, {0.9049875621120891,
FormBox["50", TraditionalForm], {0.01, 0.}}, {0.2769839649484336,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.35078105935821213`,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.7807764064044151,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.8471270883830364,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.8827822185373186,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {1,
FormBox["\[Infinity]", TraditionalForm], {0.01, 0.}}},
Automatic}]]], "Output",
CellChangeTimes->{3.9054723032484007`*^9},
CellLabel->"Out[32]=",ExpressionUUID->"36eb8b44-a91d-4ac5-804b-88f3dba1ce8d"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Plot", "[",
RowBox[{
RowBox[{"1", " ", "-", " ",
RowBox[{"2", " ",
RowBox[{"\[Sqrt]",
FractionBox["t", "\[Pi]"]}], " ",
RowBox[{"(",
RowBox[{"1", "-",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox["1", "t"]}]]}], ")"}]}], " ", "-", " ",
RowBox[{"2", " ",
RowBox[{"Erfc", "[",
FractionBox["1",
RowBox[{"\[Sqrt]", "t"}]], "]"}]}]}], ",",
RowBox[{"{",
RowBox[{"t", ",", " ", "0", ",", " ", "\[Infinity]"}], "}"}]}],
"]"}]], "Input",
CellChangeTimes->{{3.905473262659458*^9, 3.90547338450784*^9}, {
3.9054735281317987`*^9, 3.905473563783399*^9}, {3.9054739935876617`*^9,
3.905473993926076*^9}},
CellLabel->"In[49]:=",ExpressionUUID->"f0d59b31-8f01-44c8-930e-152c795bdf59"],
Cell[BoxData[
TemplateBox[{
"General", "munfl",
"\"\\!\\(\\*RowBox[{\\\"Exp\\\", \\\"[\\\", RowBox[{\\\"-\\\", \
\\\"4895.104893052501`\\\"}], \\\"]\\\"}]\\) is too small to represent as a \
normalized machine number; precision may be lost.\"", 2, 49, 10,
28015721422348168840, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{3.905473994567515*^9},
CellLabel->
"During evaluation of \
In[49]:=",ExpressionUUID->"700b9a7c-9eee-470e-b364-1fbf15f19e22"],
Cell[BoxData[
GraphicsBox[{{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[
1.], LineBox[CompressedData["
1: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
"]]},
Annotation[#, "Charting`Private`Tag$267208#1"]& ]}, {}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{None, None},
AxesOrigin->{0., 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {
Charting`ScaledTicks["Infinite", {
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}, "Nice",
WorkingPrecision -> MachinePrecision, RotateLabel -> 0],
Charting`ScaledFrameTicks[{
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}]}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
ImagePadding->All,
Method->{
"DefaultBoundaryStyle" -> Automatic,
"DefaultGraphicsInteraction" -> {
"Version" -> 1.2, "TrackMousePosition" -> {True, False},
"Effects" -> {
"Highlight" -> {"ratio" -> 2}, "HighlightPoint" -> {"ratio" -> 2},
"Droplines" -> {
"freeformCursorMode" -> True,
"placement" -> {"x" -> "All", "y" -> "None"}}}}, "DefaultMeshStyle" ->
AbsolutePointSize[6], "ScalingFunctions" -> None,
"CoordinatesToolOptions" -> {"DisplayFunction" -> ({
(Charting`InfiniteScale["Infinite"]["Category"][#]& )[
Part[#, 1]],
(Identity[#]& )[
Part[#, 2]]}& ), "CopiedValueFunction" -> ({
(Charting`InfiniteScale["Infinite"]["Category"][#]& )[
Part[#, 1]],
(Identity[#]& )[
Part[#, 2]]}& )}},
PlotRange->{{0., 1}, {-0.999927910499239, 0.4612751151281983}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->FrontEndValueCache[{
Charting`ScaledTicks["Infinite", {
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}, "Nice",
WorkingPrecision -> MachinePrecision, RotateLabel -> 0],
Automatic}, {{{0.,
FormBox["0", TraditionalForm], {0.01, 0.}}, {0.1925824035672523,
FormBox["2", TraditionalForm], {0.01, 0.}}, {0.6180339887498949,
FormBox["10", TraditionalForm], {0.01, 0.}}, {0.9049875621120891,
FormBox["50", TraditionalForm], {0.01, 0.}}, {0.2769839649484336,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.35078105935821213`,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.7807764064044151,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.8471270883830364,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.8827822185373186,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {1,
FormBox["\[Infinity]", TraditionalForm], {0.01, 0.}}},
Automatic}]]], "Output",
CellChangeTimes->{{3.9054733336710997`*^9, 3.905473385304081*^9}, {
3.905473531437893*^9, 3.9054735673903017`*^9}, 3.905473994620056*^9},
CellLabel->"Out[49]=",ExpressionUUID->"c6241cb6-fc46-4888-9e72-26a51e059b1e"]
}, Open ]],
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"1", " ", "-", " ",
RowBox[{"2", " ",
RowBox[{"\[Sqrt]",
FractionBox["t", "\[Pi]"]}], " ",
RowBox[{"(",
RowBox[{"1", "-",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox["1", "t"]}]]}], ")"}]}], " ", "-", " ",
RowBox[{"2", " ",
RowBox[{"Erfc", "[",
FractionBox["1",
RowBox[{"\[Sqrt]", "t"}]], "]"}]}]}], "/.",
RowBox[{"{",
RowBox[{"t", "->", "100"}], "}"}]}], "//", "FullSimplify"}]], "Input",
CellChangeTimes->{{3.9054740462010813`*^9, 3.905474068576462*^9}},
CellLabel->"In[51]:=",ExpressionUUID->"05b95447-ef75-489a-8cbc-63fd9cb8578a"],
Cell[CellGroupData[{
Cell[BoxData[{
RowBox[{"1", "+",
FractionBox[
RowBox[{"20", " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "1"}], "+",
FractionBox["1",
SuperscriptBox["\[ExponentialE]",
RowBox[{"1", "/", "100"}]]]}], ")"}]}],
SqrtBox["\[Pi]"]], "-",
RowBox[{"2", " ",
RowBox[{"Erfc", "[",
FractionBox["1", "10"], "]"}]}]}], "\[IndentingNewLine]",
RowBox[{"Erfc", "[",
FractionBox["1", "10"], "]"}]}], "Input",
CellChangeTimes->{{3.905474089469385*^9, 3.905474095120091*^9}},
CellLabel->"In[52]:=",ExpressionUUID->"21eafd13-e0cc-46e7-a585-d5114fc5e4e4"],
Cell[BoxData[
RowBox[{"1", "+",
FractionBox[
RowBox[{"20", " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "1"}], "+",
FractionBox["1",
SuperscriptBox["\[ExponentialE]",
RowBox[{"1", "/", "100"}]]]}], ")"}]}],
SqrtBox["\[Pi]"]], "-",
RowBox[{"2", " ",
RowBox[{"Erfc", "[",
FractionBox["1", "10"], "]"}]}]}]], "Output",
CellChangeTimes->{3.905474095727084*^9},
CellLabel->"Out[52]=",ExpressionUUID->"c762352d-ba15-4296-b79d-65be154fb259"],
Cell[BoxData[
RowBox[{"Erfc", "[",
FractionBox["1", "10"], "]"}]], "Output",
CellChangeTimes->{3.90547409573203*^9},
CellLabel->"Out[53]=",ExpressionUUID->"1cbcd946-e283-43c4-932d-796dacb9f550"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Plot", "[",
RowBox[{
RowBox[{
FractionBox[
RowBox[{"-", "1"}],
RowBox[{
RowBox[{"\[Sqrt]", "\[Pi]"}], " ", "t"}]], " ",
RowBox[{"(",
RowBox[{"1", "-",
SuperscriptBox["\[ExponentialE]",
RowBox[{
RowBox[{"-", "1"}], "/", "t"}]]}], ")"}]}], ",",
RowBox[{"{",
RowBox[{"t", ",", "0", ",", "\[Infinity]"}], "}"}]}], "]"}]], "Input",
CellChangeTimes->{{3.9054734602757397`*^9, 3.905473497879458*^9}, {
3.905473627376842*^9, 3.905473651918642*^9}},
CellLabel->"In[45]:=",ExpressionUUID->"73c25f2b-e470-4002-adb4-443c4dde6e11"],
Cell[BoxData[
TemplateBox[{
"General", "munfl",
"\"\\!\\(\\*RowBox[{\\\"Exp\\\", \\\"[\\\", RowBox[{\\\"-\\\", \
\\\"4895.104893052501`\\\"}], \\\"]\\\"}]\\) is too small to represent as a \
normalized machine number; precision may be lost.\"", 2, 45, 9,
28015721422348168840, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{3.905473652457313*^9},
CellLabel->
"During evaluation of \
In[45]:=",ExpressionUUID->"ec97b74d-ff9a-4860-9781-04d8195a2d8d"],
Cell[BoxData[
GraphicsBox[{{{}, {},
TagBox[
{RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[
1.], LineBox[CompressedData["
1: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
"]]},
Annotation[#, "Charting`Private`Tag$259099#1"]& ]}, {}},
AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
Axes->{True, True},
AxesLabel->{None, None},
AxesOrigin->{0., 0},
DisplayFunction->Identity,
Frame->{{False, False}, {False, False}},
FrameLabel->{{None, None}, {None, None}},
FrameTicks->{{Automatic, Automatic}, {
Charting`ScaledTicks["Infinite", {
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}, "Nice",
WorkingPrecision -> MachinePrecision, RotateLabel -> 0],
Charting`ScaledFrameTicks[{
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}]}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
ImagePadding->All,
Method->{
"DefaultBoundaryStyle" -> Automatic,
"DefaultGraphicsInteraction" -> {
"Version" -> 1.2, "TrackMousePosition" -> {True, False},
"Effects" -> {
"Highlight" -> {"ratio" -> 2}, "HighlightPoint" -> {"ratio" -> 2},
"Droplines" -> {
"freeformCursorMode" -> True,
"placement" -> {"x" -> "All", "y" -> "None"}}}}, "DefaultMeshStyle" ->
AbsolutePointSize[6], "ScalingFunctions" -> None,
"CoordinatesToolOptions" -> {"DisplayFunction" -> ({
(Charting`InfiniteScale["Infinite"]["Category"][#]& )[
Part[#, 1]],
(Identity[#]& )[
Part[#, 2]]}& ), "CopiedValueFunction" -> ({
(Charting`InfiniteScale["Infinite"]["Category"][#]& )[
Part[#, 1]],
(Identity[#]& )[
Part[#, 2]]}& )}},
PlotRange->{{0., 1}, {-0.33439405612272033`, 0.}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->FrontEndValueCache[{
Charting`ScaledTicks["Infinite", {
Charting`InfiniteScale["Infinite"]["Value"],
Charting`InfiniteScale["Infinite"]["Category"]}, "Nice",
WorkingPrecision -> MachinePrecision, RotateLabel -> 0],
Automatic}, {{{0.,
FormBox["0", TraditionalForm], {0.01, 0.}}, {0.1925824035672523,
FormBox["2", TraditionalForm], {0.01, 0.}}, {0.6180339887498949,
FormBox["10", TraditionalForm], {0.01, 0.}}, {0.9049875621120891,
FormBox["50", TraditionalForm], {0.01, 0.}}, {0.2769839649484336,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.35078105935821213`,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.7807764064044151,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.8471270883830364,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {
0.8827822185373186,
FormBox[
TemplateBox[{0, 0}, "Spacer2"], TraditionalForm], {0.005, 0.}}, {1,
FormBox["\[Infinity]", TraditionalForm], {0.01, 0.}}},
Automatic}]]], "Output",
CellChangeTimes->{
3.905473499426029*^9, {3.905473629045116*^9, 3.905473652534012*^9}},
CellLabel->"Out[45]=",ExpressionUUID->"3445c1ba-37f0-405f-9b0c-01f7459074a9"]
}, Open ]],
Cell[BoxData[
RowBox[{"(*", " ",
RowBox[{
SubscriptBox["\[Sigma]", "x"], " ", "=", " ",
RowBox[{"\[Delta]",
RowBox[{"(",
RowBox[{"x", " ", "-", " ", "l0"}], ")"}]}]}], "*)"}]], "Input",
CellChangeTimes->{{3.905475926383116*^9,
3.905475943887726*^9}},ExpressionUUID->"16f4c743-1ebd-4545-9f42-\
7b9eb3f5f5fc"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"eqn", " ", "=", " ",
RowBox[{
RowBox[{
RowBox[{"l", "'"}], "[", "t", "]"}], " ", "=", " ",
RowBox[{
RowBox[{
RowBox[{"-",
RowBox[{"\[Sqrt]",
FractionBox["\[Pi]", "t"]}]}], " ",
RowBox[{"(",
RowBox[{"1", "-", " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
RowBox[{" ",
SuperscriptBox["l0", "2"]}], "t"]}]]}], ")"}]}], " ", "+", " ",
RowBox[{"Integrate", "[",
RowBox[{
RowBox[{
SuperscriptBox["k", "2"], " ",
RowBox[{"Sin", "[",
RowBox[{"k", " ", "l0"}], "]"}], " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{
RowBox[{"-",
SuperscriptBox["k", "2"]}], " ", "t"}]], " ",
RowBox[{"Integrate", "[",
RowBox[{
RowBox[{
RowBox[{"Sin", "[",
RowBox[{"k", " ",
RowBox[{"l", "[", "s", "]"}]}], "]"}], " ",
SuperscriptBox["\[ExponentialE]",
RowBox[{
SuperscriptBox["k", "2"], " ", "s"}]]}], ",",
RowBox[{"{",
RowBox[{"s", ",", "0", ",", "t"}], "}"}]}], "]"}]}], " ", ",",
RowBox[{"{",
RowBox[{"k", ",", " ",
RowBox[{"-", "\[Infinity]"}], ",", " ", "\[Infinity]"}], "}"}]}],
"]"}]}]}]}]], "Input",
CellChangeTimes->{{3.905476062939026*^9, 3.905476146608774*^9}, {
3.905476183574822*^9, 3.905476286194268*^9}, {3.905476329876202*^9,
3.905476425144045*^9}, {3.905476483493414*^9, 3.905476507658125*^9}},
CellLabel->"In[59]:=",ExpressionUUID->"3a41af26-865a-4ffc-b30d-ad6f97f570bb"],
Cell[BoxData[
RowBox[{
RowBox[{"-",
RowBox[{"(",
RowBox[{
RowBox[{"(",
RowBox[{"1", "-",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
SuperscriptBox["l0", "2"], "t"]}]]}], ")"}], " ",
SqrtBox["\[Pi]"], " ",
SqrtBox[
FractionBox["1", "t"]]}], ")"}]}], "+",
RowBox[{
SubsuperscriptBox["\[Integral]",
RowBox[{"-", "\[Infinity]"}], "\[Infinity]"],
RowBox[{
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{
RowBox[{"-",
SuperscriptBox["k", "2"]}], " ", "t"}]], " ",
SuperscriptBox["k", "2"], " ",
RowBox[{"(",
RowBox[{
SubsuperscriptBox["\[Integral]", "0", "t"],
RowBox[{
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{
SuperscriptBox["k", "2"], " ", "s"}]], " ",
RowBox[{"Sin", "[",
RowBox[{"k", " ",
RowBox[{"l", "[", "s", "]"}]}], "]"}]}],
RowBox[{"\[DifferentialD]", "s"}]}]}], ")"}], " ",
RowBox[{"Sin", "[",
RowBox[{"k", " ", "l0"}], "]"}]}],
RowBox[{"\[DifferentialD]", "k"}]}]}]}]], "Output",
CellChangeTimes->{
3.9054762928100653`*^9, {3.905476343847403*^9, 3.905476352751582*^9}, {
3.905476461174962*^9, 3.9054764875678*^9}, 3.9054765222334843`*^9},
CellLabel->"Out[59]=",ExpressionUUID->"5a1d3969-74fb-4fac-b48d-30f454850bca"]
}, Open ]],
Cell[BoxData[
RowBox[{"NDSolve", "[",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"l", "'"}], "[", "t", "]"}], "==",
RowBox[{
RowBox[{"-",
RowBox[{"(",
RowBox[{
RowBox[{"(",
RowBox[{"1", "-",
SuperscriptBox["\[ExponentialE]",
RowBox[{"-",
FractionBox[
SuperscriptBox["l0", "2"], "t"]}]]}], ")"}], " ",
SqrtBox["\[Pi]"], " ",
SqrtBox[
FractionBox["1", "t"]]}], ")"}]}], "+",
RowBox[{
SubsuperscriptBox["\[Integral]",
RowBox[{"-", "\[Infinity]"}], "\[Infinity]"],
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{
RowBox[{"-",
SuperscriptBox["k", "2"]}], " ", "t"}]], " ",
SuperscriptBox["k", "2"], " ",
RowBox[{"(",
RowBox[{
SubsuperscriptBox["\[Integral]", "0", "t"],
RowBox[{
SuperscriptBox["\[ExponentialE]",
RowBox[{
SuperscriptBox["k", "2"], " ", "s"}]], " ",
RowBox[{"Sin", "[",
RowBox[{"k", " ",
RowBox[{"l", "[", "s", "]"}]}], "]"}],
RowBox[{"\[DifferentialD]", "s"}]}]}], ")"}], " ",
RowBox[{"Sin", "[",
RowBox[{"k", " ", "l0"}], "]"}],
RowBox[{"\[DifferentialD]", "k"}]}]}]}]}], ",", " ",
RowBox[{"l", "[", "t", "]"}], ",",
RowBox[{"{",
RowBox[{"t", ",", "0", ",", "\[Infinity]"}], "}"}]}], "]"}]], "Input",
CellChangeTimes->{{3.905476538078281*^9, 3.905476547865837*^9}, {
3.9054765815051126`*^9, 3.9054766161318607`*^9}},
CellLabel->"In[60]:=",ExpressionUUID->"2f762b8e-0bc0-4e64-8177-24978cc7a95b"]
},
WindowSize->{595.5, 659.25},
WindowMargins->{{Automatic, 87}, {33, Automatic}},
FrontEndVersion->"13.1 for Linux x86 (64-bit) (June 16, 2022)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"e85c96b1-6cbc-4450-9d14-29b38f97b51a"
]
(* End of Notebook Content *)
(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[558, 20, 299, 8, 32, "Input",ExpressionUUID->"447026e6-1a9e-4798-ba4a-aaaf7da11a50"],
Cell[CellGroupData[{
Cell[882, 32, 738, 19, 65, "Input",ExpressionUUID->"05d3ffe9-eaf4-437e-b51e-b08632b90a17"],
Cell[1623, 53, 580, 18, 79, "Output",ExpressionUUID->"4b20eaab-8847-45d2-854e-1e970211e3c6"]
}, Open ]],
Cell[CellGroupData[{
Cell[2240, 76, 759, 21, 105, "Input",ExpressionUUID->"0a16cdfd-a3ac-4563-8c84-9b83345a8561"],
Cell[3002, 99, 573, 18, 55, "Output",ExpressionUUID->"8dcb8dfa-301c-4ed9-bca7-f3a68a087ede"]
}, Open ]],
Cell[CellGroupData[{
Cell[3612, 122, 341, 8, 33, "Input",ExpressionUUID->"4f8d3c41-3631-450b-a8e9-c7db463a429d"],
Cell[3956, 132, 15256, 275, 232, "Output",ExpressionUUID->"36eb8b44-a91d-4ac5-804b-88f3dba1ce8d"]
}, Open ]],
Cell[CellGroupData[{
Cell[19249, 412, 814, 22, 51, "Input",ExpressionUUID->"f0d59b31-8f01-44c8-930e-152c795bdf59"],
Cell[20066, 436, 486, 11, 44, "Message",ExpressionUUID->"700b9a7c-9eee-470e-b364-1fbf15f19e22"],
Cell[20555, 449, 6625, 132, 231, "Output",ExpressionUUID->"c6241cb6-fc46-4888-9e72-26a51e059b1e"]
}, Open ]],
Cell[27195, 584, 690, 19, 51, "Input",ExpressionUUID->"05b95447-ef75-489a-8cbc-63fd9cb8578a"],
Cell[CellGroupData[{
Cell[27910, 607, 600, 17, 100, InheritFromParent,ExpressionUUID->"21eafd13-e0cc-46e7-a585-d5114fc5e4e4"],
Cell[28513, 626, 495, 15, 61, "Output",ExpressionUUID->"c762352d-ba15-4296-b79d-65be154fb259"],
Cell[29011, 643, 200, 4, 48, "Output",ExpressionUUID->"1cbcd946-e283-43c4-932d-796dacb9f550"]
}, Open ]],
Cell[CellGroupData[{
Cell[29248, 652, 616, 17, 51, "Input",ExpressionUUID->"73c25f2b-e470-4002-adb4-443c4dde6e11"],
Cell[29867, 671, 485, 11, 44, "Message",ExpressionUUID->"ec97b74d-ff9a-4860-9781-04d8195a2d8d"],
Cell[30355, 684, 8700, 167, 231, "Output",ExpressionUUID->"3445c1ba-37f0-405f-9b0c-01f7459074a9"]
}, Open ]],
Cell[39070, 854, 333, 9, 33, "Input",ExpressionUUID->"16f4c743-1ebd-4545-9f42-7b9eb3f5f5fc"],
Cell[CellGroupData[{
Cell[39428, 867, 1639, 45, 138, "Input",ExpressionUUID->"3a41af26-865a-4ffc-b30d-ad6f97f570bb"],
Cell[41070, 914, 1420, 42, 95, "Output",ExpressionUUID->"5a1d3969-74fb-4fac-b48d-30f454850bca"]
}, Open ]],
Cell[42505, 959, 1668, 47, 153, "Input",ExpressionUUID->"2f762b8e-0bc0-4e64-8177-24978cc7a95b"]
}
]
*)
import numpy as np
import matplotlib.pyplot as plt
import scipy
import math
import sympy
N = 40
l0 = 1
sigma0 = -1
def hermite_function(order, arg):
return ((2**order * math.factorial(order) * np.sqrt(np.pi))**(-0.5)
* scipy.special.eval_hermite(order, arg) * np.exp(-arg**2/2)
)
# times
T = 100
dt = 0.01
times = np.arange(0, T, dt)
# b
b = np.zeros((len(times), N), dtype='complex_')
b[0] = 0
# l
length = np.zeros(len(times))
length[0] = 1
# q1
q1_array = np.zeros(N, dtype='complex_')
q1_array[0] = ((1/2j) * ( (-1j) * np.sqrt(1/2) * (hermite_function(1, -2*l0) - hermite_function(1, 2*l0))
)
- l0 * ( (1/2) * (hermite_function(0, -2*l0) + hermite_function(0, 2*l0))
+ (-1j)**2 * np.sqrt(2)/2 * (hermite_function(2, -2*l0) + hermite_function(2, 2*l0))
)
)
q1_array[1] = ((1/2j) * ( np.sqrt(1/2) * (hermite_function(0, -2*l0) - hermite_function(0, 2*l0))
+ (-1j)**(2) * np.sqrt(2/2) * (hermite_function(2, -2*l0) - hermite_function(2, 2*l0))
)
- l0 * ( + (-1j) * (3/2) * (hermite_function(1, -2*l0) + hermite_function(1, 2*l0))
+ (-1j)**3 * np.sqrt(6)/2 * (hermite_function(3, -2*l0) + hermite_function(3, 2*l0))
)
)
for z in range(2, N):
q1_array[z] = ((1/2j) * ( (-1j)**(z-1) * np.sqrt(z/2) * (hermite_function(z-1, -2*l0) - hermite_function(z-1, 2*l0))
+ (-1j)**(z+1) * np.sqrt((z+1)/2) * (hermite_function(z+1, -2*l0) - hermite_function(z+1, 2*l0))
)
- l0 * ( (-1j)**(z-2) * np.sqrt((z-1)*z)/2 * (hermite_function(z-2, -2*l0) + hermite_function(z-2, 2*l0))
+ (-1j)**z * (2*z+1)/2 * (hermite_function(z, -2*l0) + hermite_function(z, 2*l0))
+ (-1j)**(z+2) * np.sqrt((z+1)*(z+2))/2 * (hermite_function(z+2, -2*l0) + hermite_function(z+2, 2*l0))
)
)
# q2
q2_array = np.zeros(N, dtype='complex_')
q2_array[0] =( (-1/4) * ((1/2) * (hermite_function(0, -3*l0/2) - hermite_function(0, -l0/2) - hermite_function(0, l0/2) + hermite_function(0, 3*l0/2))
+ (1/2) * np.sqrt(2) * (-1j)**(2) * (hermite_function(2, -3*l0/2) - hermite_function(2, -l0/2) - hermite_function(2, l0/2) + hermite_function(2, 3*l0/2))
)
- (l0/4j) * ((3/2) * np.sqrt(1/2) * (-1j) * (hermite_function(1, -3*l0/2) - hermite_function(1, -l0/2) - hermite_function(1, l0/2) + hermite_function(1, 3*l0/2))
+ (1/2) * np.sqrt(6) * (-1j)**3 * (hermite_function(3, -3*l0/2) - hermite_function(3, -l0/2) - hermite_function(3, l0/2) + hermite_function(3, 3*l0/2))
)
)
q2_array[1] = ( (-1/4) * ((3/2) * (-1j) * (hermite_function(1, -3*l0/2) - hermite_function(1, -l0/2) - hermite_function(1, l0/2) + hermite_function(1, 3*l0/2))
+ (1/2) * np.sqrt(6) * (-1j)**(3) * (hermite_function(3, -3*l0/2) - hermite_function(3, -l0/2) - hermite_function(3, l0/2) + hermite_function(3, 3*l0/2))
)
- (l0/4j) * ((3/2) * np.sqrt(1/2) * (hermite_function(0, -3*l0/2) - hermite_function(0, -l0/2) - hermite_function(0, l0/2) + hermite_function(0, 3*l0/2))
+ 3 * (-1j)**2 * (hermite_function(2, -3*l0/2) - hermite_function(2, -l0/2) - hermite_function(2, l0/2) + hermite_function(2, 3*l0/2))
+ (1/2) * np.sqrt(24) * (-1j)**4 * (hermite_function(4, -3*l0/2) - hermite_function(4, -l0/2) - hermite_function(4, l0/2) + hermite_function(4, 3*l0/2))
)
)
q2_array[2] = ( (-1/4) * ( (1/2) * np.sqrt(2) * (hermite_function(0, -3*l0/2) - hermite_function(0, -l0/2) - hermite_function(0, l0/2) + hermite_function(0, 3*l0/2))
+ (5/2) * (-1j)**2 * (hermite_function(2, -3*l0/2) - hermite_function(2, -l0/2) - hermite_function(2, l0/2) + hermite_function(2, 3*l0/2))
+ (1/2) * np.sqrt(12) * (-1j)**4 * (hermite_function(4, -3*l0/2) - hermite_function(4, -l0/2) - hermite_function(4, l0/2) + hermite_function(4, 3*l0/2))
)
- (l0/4j) * (3 * (-1j) * (hermite_function(1, -3*l0/2) - hermite_function(1, -l0/2) - hermite_function(1, l0/2) + hermite_function(1, 3*l0/2))
+ (9/2) * np.sqrt(3/2) * (-1j)**3 * (hermite_function(3, -3*l0/2) - hermite_function(3, -l0/2) - hermite_function(3, l0/2) + hermite_function(3, 3*l0/2))
+ (1/2) * np.sqrt(60) * (-1j)**5 * (hermite_function(5, -3*l0/2) - hermite_function(5, -l0/2) - hermite_function(5, l0/2) + hermite_function(5, 3*l0/2))
)
)
for zz in range(3, N):
q2_array[zz] = ((-1/4) * ((1/2) * np.sqrt(zz * (zz - 1)) * (-1j)**(zz - 2) * (hermite_function(zz-2, -3*l0/2) - hermite_function(zz-2, -l0/2) - hermite_function(zz-2, l0/2) + hermite_function(zz-2, 3*l0/2))
+ (2*zz + 1)/2 * (-1j)**zz * (hermite_function(zz, -3*l0/2) - hermite_function(zz, -l0/2) - hermite_function(zz, l0/2) + hermite_function(zz, 3*l0/2))
+ (1/2) * np.sqrt((zz + 1) * (zz + 2)) * (-1j)**(zz + 2) * (hermite_function(zz + 2, -3*l0/2) - hermite_function(zz + 2, -l0/2) - hermite_function(zz + 2, l0/2) + hermite_function(zz + 2, 3*l0/2))
)
- (l0 /4j) * ( (1/2) * np.sqrt(zz * (zz - 1) * (zz - 2)) * (-1j)**(zz - 3) * (hermite_function(zz - 3, -3*l0/2) - hermite_function(zz - 3, l0/2) - hermite_function(zz - 3, -l0/2) + hermite_function(zz - 3, 3*l0/2))
+ (3*zz / 2) * np.sqrt(zz/2) * (-1j)**(zz - 1) * (hermite_function(zz - 1, -3*l0/2) - hermite_function(zz - 1, l0/2) - hermite_function(zz - 1, -l0/2) + hermite_function(zz - 1, 3*l0/2))
+ (3*(zz + 1)/2) * np.sqrt((zz + 1) / 2) * (-1j)**(zz + 1) * (hermite_function(zz + 1, -3*l0/2) - hermite_function(zz + 1, l0/2) - hermite_function(zz + 1, -l0/2) + hermite_function(zz + 1, 3*l0/2))
+ (1/2) * np.sqrt((zz + 1) * (zz + 2) * (zz + 3)) * (-1j)**(zz + 3) * (hermite_function(zz + 3, -3*l0/2) - hermite_function(zz + 3, l0/2) - hermite_function(zz + 3, -l0/2) + hermite_function(zz + 3, 3*l0/2))
)
)
# q3
q3_array = np.zeros(N, dtype='complex_')
q3_array[0] = (1/4j) * (3*(1/2) * np.sqrt(1/2) * (-1j) * (hermite_function(1, 3*l0/2)
- hermite_function(1, l0/2)
+ hermite_function(1, -l0/2)
- hermite_function(1, -3*l0/2)
)
+ (1/2) * np.sqrt(3/2) * (-1j)**(3) * (hermite_function(3, 3*l0/2)
- hermite_function(3, l0/2)
+ hermite_function(3, -l0/2)
- hermite_function(3, -3*l0/2)
)
)
for yy in range(1, 3):
q3_array[yy] = (1/4j) * ( (3*yy/2) * np.sqrt(yy/2) * (-1j)**(yy-1) * (hermite_function(yy-1, 3*l0/2)
- hermite_function(yy-1, l0/2)
+ hermite_function(yy-1, -l0/2)
- hermite_function(yy-1, -3*l0/2)
)
+ (3*(yy+1)/2) * np.sqrt((yy+1)/2) * (-1j)**(yy+1) * (hermite_function(yy+1, 3*l0/2)
- hermite_function(yy+1, l0/2)
+ hermite_function(yy+1, -l0/2)
- hermite_function(yy+1, -3*l0/2)
)
+ (1/2) * np.sqrt((yy+1)*(yy+2)*(yy+3)/2) * (-1j)**(yy+3) * (hermite_function(yy+3, 3*l0/2)
- hermite_function(yy+3, l0/2)
+ hermite_function(yy+3, -l0/2)
- hermite_function(yy+3, -3*l0/2)
)
)
for y in range(3, N):
q3_array[y] = (1/4j) * ( (1/2) * np.sqrt((y*(y-1)*(y-2))/2) * (-1j)**(y-3) * (hermite_function(y-3, 3*l0/2)
- hermite_function(y-3, l0/2)
+ hermite_function(y-3, -l0/2)
- hermite_function(y-3, -3*l0/2)
)
+ (3*y/2) * np.sqrt(y/2) * (-1j)**(y-1) * (hermite_function(y-1, 3*l0/2)
- hermite_function(y-1, l0/2)
+ hermite_function(y-1, -l0/2)
- hermite_function(y-1, -3*l0/2)
)
+ (3*(y+1)/2) * np.sqrt((y+1)/2) * (-1j)**(y+1) * (hermite_function(y-1, 3*l0/2)
- hermite_function(y-1, l0/2)
+ hermite_function(y-1, -l0/2)
- hermite_function(y-1, -3*l0/2)
)
+ (1/2) * np.sqrt((y+1)*(y+2)*(y+3)/2) * (-1j)**(y+3) * (hermite_function(y+3, 3*l0/2)
- hermite_function(y+3, l0/2)
+ hermite_function(y+3, -l0/2)
- hermite_function(y+3, -3*l0/2)
)
)
# vector of hermite functions
vector_of_hermite_functions = np.zeros(N, dtype = 'complex_')
for j in range(0, N):
vector_of_hermite_functions[j] = hermite_function(j, 0) * (-1j)**(j)
# adjacency matrix
a = np.zeros((N, N), dtype='complex_')
for n in range(0, N):
for m in range(0, N):
if m == n:
a[m][n] = (n + 1/2)
elif m == n - 2:
a[m][n] = np.sqrt(n * (n - 1))/2
elif m == n + 2:
a[m][n] = np.sqrt((n + 1) * (n + 2))/2
# matrix
matrix = a + (1/np.pi) * np.dot(q1_array, vector_of_hermite_functions)
# T matrix
t = np.zeros((N+1, N+1), dtype='complex_')
for t1 in range(0, N):
t[N][t1] = (1/np.pi) * vector_of_hermite_functions[t1]
for t2 in range(0, N):
for t3 in range(0, N):
t[t2][t3] = matrix[t2][t3]
for t4 in range(0, N-1):
t[t4][N] = q3_array[t4]
# diagonalisation of t, p matrix
evals_t, evecs_t = np.linalg.eig(t)
diag_t = np.diag(evals_t)
d_inv = np.linalg.inv(diag_t)
p_inv = np.linalg.inv(evecs_t)
# exp of diag matrix
exp_diag_t = np.zeros((len(times), N+1, N+1), dtype='complex_')
for d1 in range(0, len(times)):
for nn in range(0, N):
exp_diag_t[d1][nn][nn] = np.exp(- times[d1] * evals_t[nn])
# q and q hat
q_array = np.append(q2_array, 1)
qhat = np.dot(p_inv, q_array)
# x
x = np.zeros((len(times), N+1) , dtype='complex_')
x[0] = np.append(b[0], length[0])
for tt in range(1, len(times)):
x[tt] = (np.linalg.multi_dot([evecs_t, exp_diag_t[tt], p_inv, x[0]])
+ 2 * sigma0 * (np.linalg.multi_dot([evecs_t, exp_diag_t[tt], d_inv, qhat])
- np.linalg.multi_dot([evecs_t, d_inv, qhat])
)
)
length[tt] = np.dot(np.append(np.zeros(N), 1), x[tt])
plt.plot(times, length)
plt.show()
\ No newline at end of file
import numpy as np
import matplotlib.pyplot as plt
import scipy
import math
import sympy
N = 100
sigma0 = -1
l0 = 1
# t array
T = 100
dt = 0.01
times = np.arange(0, T, dt)
def hermite_function(order, arg):
return ((2**order * math.factorial(order) * np.sqrt(np.pi))**(-0.5)
* scipy.special.eval_hermite(order, arg) * np.exp(-arg**2/2)
)
# vector of hermite functions
vector_of_hermite_functions = np.zeros(N, dtype = 'complex_')
for q in range(0, N):
vector_of_hermite_functions[q] = hermite_function(q, 0) * (-1j)**(q)
# print(vector_of_hermite_functions)
# adjacency matrix
a = np.zeros((N, N), dtype='complex_')
for n in range(0, N):
for m in range(0, N):
if m == n:
a[m][n] = (n + 1/2)
elif m == n - 2:
a[m][n] = np.sqrt(n * (n - 1))/2
elif m == n + 2:
a[m][n] = np.sqrt((n + 1) * (n + 2))/2
# q1
q1_array = np.zeros(N, dtype='complex_')
q1_array[0] = (1/2j) * np.sqrt(1/2) * (-1j) * (hermite_function(1, -2 * l0) - hermite_function(1, 2 * l0))
for p1 in range(1, N):
q1_array[p1] = (1/2j) * ( np.sqrt(p1/2) * (-1j)**(p1-1) * (hermite_function(p1 - 1, -2 * l0) - hermite_function(p1 - 1, 2 * l0))
+ np.sqrt((p1 + 1)/2) * (-1j)**(p1+1) * (hermite_function(p1 + 1, -2 * l0) - hermite_function(p1 + 1, 2 * l0))
)
# q2
q2_array = np.zeros(N, dtype='complex_')
for p2 in range(0, 2):
q2_array[p2] = (-1/4) * ( ((2 * p2 + 1)/2) * (-1j)**p2 * (hermite_function(p2, -3*l0/2) - hermite_function(p2, -l0/2) - hermite_function(p2, l0/2) + hermite_function(p2, 3*l0/2))
+ np.sqrt((p2+1)*(p2+2))/2 * (-1j)**(p2+2) * (hermite_function(p2+2, -3*l0/2) - hermite_function(p2+2, -l0/2) - hermite_function(p2+2, l0/2) + hermite_function(p2+2, 3*l0/2))
)
for p3 in range(2, N):
q2_array[p3] = (-1/4) * ( ((2 * p3 + 1)/2) * (-1j)**p3 * (hermite_function(p3, -3*l0/2) - hermite_function(p3, -l0/2) - hermite_function(p3, l0/2) + hermite_function(p3, 3*l0/2))
+ np.sqrt((p3+1)*(p3+2))/2 * (-1j)**(p3+2) * (hermite_function(p3+2, -3*l0/2) - hermite_function(p3+2, -l0/2) - hermite_function(p3+2, l0/2) + hermite_function(p3+2, 3*l0/2))
+ np.sqrt(p3*(p3-1))/2 * (-1j)**(p3-2) * (hermite_function(p3-2, -3*l0/2) - hermite_function(p3-2, -l0/2) - hermite_function(p3-2, l0/2) + hermite_function(p3-2, 3*l0/2))
)
# matrix
matrix = a + (1/np.pi) * np.dot(q1_array, vector_of_hermite_functions)
# discard imaginary parts of matrix if they are < machine precision
index = np.where(np.imag(matrix) < 1e-10)
matrix[index] = np.real(matrix[index])
# print('M=', matrix)
# diagonal matrix
evalues_m, evectors_m = np.linalg.eig(matrix)
print(np.max(evalues_m), np.min(evalues_m))
diagonal_matrix = np.diag(evalues_m)
# print('D=', diagonal_matrix)
d_inv = np.linalg.inv(diagonal_matrix)
# print('$D^{-1}=$', d_inv)
q2_hat_array = np.dot(np.linalg.inv(evectors_m), q2_array)
# exp of diag matrix
exp_diag_matrix = np.zeros((len(times), N, N))
for tt in range(0, len(times)):
for nn in range(0, N):
# if (-times[tt] * evalues_m[nn]) < 2e01:
exp_diag_matrix[tt][nn][nn] = np.exp(- times[tt] * evalues_m[nn])
print(np.max(exp_diag_matrix), np.min(exp_diag_matrix))
# length
length = np.zeros(len(times))
for l in range(0, len(times)):
length[l] = l0 + (2 * sigma0/np.pi) * (np.linalg.multi_dot([vector_of_hermite_functions, evectors_m,
np.identity(N)*times[l], d_inv, q2_hat_array])
+ np.linalg.multi_dot([vector_of_hermite_functions, evectors_m, exp_diag_matrix[l],
d_inv, d_inv, q2_hat_array])
- np.linalg.multi_dot([vector_of_hermite_functions, evectors_m,
d_inv, d_inv, q2_hat_array])
)
plt.plot(times, length)
plt.title('Zeroth order control problem')
plt.show()
# print(length[-1])
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment