Commit c7c14fdd by Uddeepta Deka

corrected lens equation

parent 859f04d7
(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 13.0' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 158, 7]
NotebookDataLength[ 68422, 1947]
NotebookOptionsPosition[ 60851, 1809]
NotebookOutlinePosition[ 61291, 1826]
CellTagsIndexPosition[ 61248, 1823]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell["Coordinates", "Subtitle",
CellChangeTimes->{{3.936005183237689*^9,
3.9360051843186197`*^9}},ExpressionUUID->"e841c311-b777-401e-9436-\
efa64ce0ba8e"],
Cell[BoxData[{
RowBox[{
RowBox[{"x", " ", "=", " ",
RowBox[{"{",
RowBox[{"x1", ",", " ", "x2"}], "}"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"y", " ", "=", " ",
RowBox[{"{",
RowBox[{"y1", ",", " ", "y2"}], "}"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"nx", " ", "=", " ",
RowBox[{
RowBox[{"Norm", "[", "x", "]"}], "//", "ComplexExpand"}]}],
";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"ny", " ", "=", " ",
RowBox[{
RowBox[{"Norm", "[", "y", "]"}], " ", "//", " ", "ComplexExpand"}]}],
";"}]}], "Input",
CellChangeTimes->{{3.9173343646752872`*^9, 3.917334376668798*^9}, {
3.917392384864052*^9, 3.917392403644582*^9}},
CellLabel->"In[1]:=",ExpressionUUID->"e0a6936e-ac93-44e9-810e-7da536d28c41"]
}, Open ]],
Cell[CellGroupData[{
Cell["Potentials", "Subtitle",
CellChangeTimes->{{3.935128212689413*^9,
3.935128216424032*^9}},ExpressionUUID->"163ef38f-df27-4ccd-82bb-\
7711c3c42b4e"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"\[Psi]", " ", "=", " ",
RowBox[{
RowBox[{"Log", "[", "nx", "]"}], " ", "+", " ",
FractionBox["Q", "nx"]}]}]], "Input",
CellChangeTimes->{{3.917392406274445*^9, 3.917392438433634*^9}, {
3.93512481446865*^9, 3.935124835953992*^9}, {3.936005191679777*^9,
3.936005192014596*^9}},
CellLabel->"In[5]:=",ExpressionUUID->"7087287e-e244-4298-ba6f-1df828fe081a"],
Cell[BoxData[
RowBox[{
FractionBox["Q",
SqrtBox[
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}]]], "+",
RowBox[{"Log", "[",
SqrtBox[
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}]], "]"}]}]], "Output",
CellChangeTimes->{3.917392439860273*^9, 3.935124839302247*^9,
3.935128217856711*^9, 3.9356253922436533`*^9, 3.936005193993572*^9,
3.9360056191063547`*^9},
CellLabel->"Out[5]=",ExpressionUUID->"0c9c339f-4296-4c56-accd-21826fb462d1"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"nynx", " ", "=", " ",
RowBox[{
RowBox[{"Norm", "[",
RowBox[{"x", "-", "y"}], "]"}], "//", "ComplexExpand"}]}]], "Input",
CellChangeTimes->{{3.917392454651164*^9, 3.917392466755289*^9}},
CellLabel->"In[6]:=",ExpressionUUID->"1e28eb77-5dfa-4440-9864-23b24a7dd4bd"],
Cell[BoxData[
SqrtBox[
RowBox[{
SuperscriptBox[
RowBox[{"(",
RowBox[{"x1", "-", "y1"}], ")"}], "2"], "+",
SuperscriptBox[
RowBox[{"(",
RowBox[{"x2", "-", "y2"}], ")"}], "2"]}]]], "Output",
CellChangeTimes->{3.917392467145376*^9, 3.9351248449754887`*^9,
3.9351282190137444`*^9, 3.935625395197433*^9, 3.9360052070486593`*^9,
3.936005619873917*^9},
CellLabel->"Out[6]=",ExpressionUUID->"a3c0546b-df1c-4a17-a938-f63c5a0968ce"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"\[CapitalPhi]", " ", "=", " ",
RowBox[{
RowBox[{
RowBox[{
RowBox[{
RowBox[{
FractionBox["1", "2"],
SuperscriptBox[
RowBox[{"Norm", "[",
RowBox[{"x", "-", "y"}], "]"}], "2"]}], "-", " ", "\[Psi]"}], "//",
"ComplexExpand"}], "//", "PowerExpand"}], "//",
"FullSimplify"}]}]], "Input",
CellChangeTimes->{{3.9173924726996317`*^9, 3.917392495578621*^9}, {
3.917392792104949*^9, 3.9173928303696012`*^9}},
CellLabel->"In[7]:=",ExpressionUUID->"b06d12cf-81a0-4d65-bbc0-505a888f6cbe"],
Cell[BoxData[
RowBox[{
FractionBox["1", "2"], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-",
FractionBox[
RowBox[{"2", " ", "Q"}],
SqrtBox[
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}]]]}], "+",
SuperscriptBox[
RowBox[{"(",
RowBox[{"x1", "-", "y1"}], ")"}], "2"], "+",
SuperscriptBox[
RowBox[{"(",
RowBox[{"x2", "-", "y2"}], ")"}], "2"], "-",
RowBox[{"Log", "[",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], "]"}]}], ")"}]}]], "Output",
CellChangeTimes->{3.917392495907609*^9, 3.917392795160762*^9,
3.917392831134479*^9, 3.935124850536818*^9, 3.935128220509836*^9,
3.9356253977848597`*^9, 3.936005209901157*^9, 3.93600562135041*^9},
CellLabel->"Out[7]=",ExpressionUUID->"188c8d0d-a8dc-4c8b-aeb5-a58d3abd3fb5"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"deflectionAngle", " ", "=", " ",
RowBox[{
RowBox[{"Grad", "[",
RowBox[{"\[Psi]", ",", " ",
RowBox[{"{",
RowBox[{"x1", ",", " ", "x2"}], "}"}]}], "]"}], "//",
"FullSimplify"}]}]], "Input",
CellChangeTimes->{{3.917392762865593*^9, 3.917392775565441*^9}, {
3.935124861730744*^9, 3.935124870592677*^9}, {3.936005216279991*^9,
3.936005216877371*^9}},
CellLabel->"In[8]:=",ExpressionUUID->"b4b2f1e5-296a-4cb0-92a6-26605073ed48"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{"x1", " ",
RowBox[{"(",
RowBox[{
RowBox[{"-",
FractionBox["Q",
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"3", "/", "2"}]]]}], "+",
FractionBox["1",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}]]}], ")"}]}], ",",
RowBox[{"x2", " ",
RowBox[{"(",
RowBox[{
RowBox[{"-",
FractionBox["Q",
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"3", "/", "2"}]]]}], "+",
FractionBox["1",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}]]}], ")"}]}]}], "}"}]], "Output",
CellChangeTimes->{3.917392776068138*^9, 3.935124875443367*^9,
3.9351282276656237`*^9, 3.935625401260919*^9, 3.936005218796187*^9,
3.936005622173416*^9},
CellLabel->"Out[8]=",ExpressionUUID->"eea9aff6-4c37-4f16-9435-c550a6ba406e"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"deflectionAngle1d", " ", "=", " ",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"Norm", "[", "deflectionAngle", "]"}], "/.",
RowBox[{"{",
RowBox[{
RowBox[{"x2", "\[Rule]", "0"}], ",", " ",
RowBox[{"x1", "\[Rule]", "\[Xi]"}]}], "}"}]}], "//", "ComplexExpand"}],
"//", "FullSimplify"}]}]], "Input",
CellChangeTimes->{{3.935124913504781*^9, 3.9351249250496264`*^9}, {
3.9360052234557943`*^9, 3.936005264505499*^9}},
CellLabel->"In[9]:=",ExpressionUUID->"8635c4d5-0f2e-42e0-b577-2b36a23c85ee"],
Cell[BoxData[
RowBox[{
SqrtBox[
SuperscriptBox["\[Xi]", "2"]], " ",
SqrtBox[
FractionBox[
SuperscriptBox[
RowBox[{"(",
RowBox[{"Q", "-",
SqrtBox[
SuperscriptBox["\[Xi]", "2"]]}], ")"}], "2"],
SuperscriptBox["\[Xi]", "6"]]]}]], "Output",
CellChangeTimes->{
3.935124925353528*^9, 3.935128229137864*^9, 3.935625402096175*^9, {
3.9360052456185617`*^9, 3.936005264986199*^9}, 3.9360056229919024`*^9},
CellLabel->"Out[9]=",ExpressionUUID->"64afe599-aa11-4c4a-883a-f4ffdb8a4724"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Magnification", "Subtitle",
CellChangeTimes->{{3.9351282370391912`*^9,
3.935128238622281*^9}},ExpressionUUID->"61de006f-108a-4566-92f6-\
5cb276a3638c"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"lenseq", " ", "=", " ",
RowBox[{
RowBox[{"Grad", "[",
RowBox[{"\[CapitalPhi]", ",", " ",
RowBox[{"{",
RowBox[{"x1", ",", " ", "x2"}], "}"}]}], "]"}], "//",
"FullSimplify"}]}]], "Input",
CellChangeTimes->{{3.9173928544741697`*^9, 3.9173928698207912`*^9}},
CellLabel->"In[10]:=",ExpressionUUID->"1aba5a92-d26d-4f16-929c-c94d2c63768a"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{"x1", "+",
FractionBox[
RowBox[{"Q", " ", "x1"}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"3", "/", "2"}]]], "-",
FractionBox["x1",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}]], "-", "y1"}], ",",
RowBox[{"x2", "+",
FractionBox[
RowBox[{"Q", " ", "x2"}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"3", "/", "2"}]]], "-",
FractionBox["x2",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}]], "-", "y2"}]}], "}"}]], "Output",
CellChangeTimes->{3.9173928708117647`*^9, 3.935127171481162*^9,
3.935128242903398*^9, 3.935626037679212*^9, 3.9360052830731487`*^9,
3.9360056249981737`*^9},
CellLabel->"Out[10]=",ExpressionUUID->"e069c2f9-3b97-4489-a05a-f6c04a9661b1"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"HessianA", " ", "=", " ",
RowBox[{
RowBox[{
RowBox[{"Table", "[",
RowBox[{
RowBox[{"D", "[",
RowBox[{
RowBox[{"D", "[",
RowBox[{"\[CapitalPhi]", ",",
RowBox[{"x", "[",
RowBox[{"[", "i", "]"}], "]"}]}], "]"}], ",",
RowBox[{"x", "[",
RowBox[{"[", "j", "]"}], "]"}]}], "]"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "1", ",", "2"}], "}"}], ",",
RowBox[{"{",
RowBox[{"j", ",", "1", ",", "2"}], "}"}]}], "]"}], "//",
"PowerExpand"}], "//", "FullSimplify"}]}]], "Input",
CellChangeTimes->{{3.9173929075904217`*^9, 3.917392917744225*^9}, {
3.936005297105304*^9, 3.936005299191868*^9}},
CellLabel->"In[11]:=",ExpressionUUID->"6d902a26-2288-4a03-b133-ee98c0d3841b"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"1", "+",
FractionBox[
RowBox[{"Q", " ",
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "2"}], " ",
SuperscriptBox["x1", "2"]}], "+",
SuperscriptBox["x2", "2"]}], ")"}]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"5", "/", "2"}]]], "+",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"x1", "-", "x2"}], ")"}], " ",
RowBox[{"(",
RowBox[{"x1", "+", "x2"}], ")"}]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}], ",",
RowBox[{"x1", " ", "x2", " ",
RowBox[{"(",
RowBox[{
RowBox[{"-",
FractionBox[
RowBox[{"3", " ", "Q"}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"5", "/", "2"}]]]}], "+",
FractionBox["2",
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}], ")"}]}]}], "}"}],
",",
RowBox[{"{",
RowBox[{
RowBox[{"x1", " ", "x2", " ",
RowBox[{"(",
RowBox[{
RowBox[{"-",
FractionBox[
RowBox[{"3", " ", "Q"}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"5", "/", "2"}]]]}], "+",
FractionBox["2",
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}], ")"}]}], ",",
RowBox[{"1", "+",
FractionBox[
RowBox[{"Q", " ",
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "-",
RowBox[{"2", " ",
SuperscriptBox["x2", "2"]}]}], ")"}]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"5", "/", "2"}]]], "+",
FractionBox[
RowBox[{
RowBox[{"-",
SuperscriptBox["x1", "2"]}], "+",
SuperscriptBox["x2", "2"]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}]}], "}"}]}],
"}"}]], "Output",
CellChangeTimes->{3.917392919783887*^9, 3.935127534119041*^9,
3.935128247529482*^9, 3.935626046126471*^9, 3.93600530340518*^9,
3.9360056264987593`*^9},
CellLabel->"Out[11]=",ExpressionUUID->"20a88818-266c-4774-83ba-aa1f3a680eac"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"HessianA", "//", "MatrixForm"}]], "Input",
CellChangeTimes->{{3.917392922595519*^9, 3.9173929253646297`*^9}, {
3.936005307607081*^9, 3.936005309666376*^9}},
CellLabel->"In[12]:=",ExpressionUUID->"3d545c3c-94c1-4a26-b750-d01b77a4191c"],
Cell[BoxData[
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{
RowBox[{"1", "+",
FractionBox[
RowBox[{"Q", " ",
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "2"}], " ",
SuperscriptBox["x1", "2"]}], "+",
SuperscriptBox["x2", "2"]}], ")"}]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"5", "/", "2"}]]], "+",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"x1", "-", "x2"}], ")"}], " ",
RowBox[{"(",
RowBox[{"x1", "+", "x2"}], ")"}]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}],
RowBox[{"x1", " ", "x2", " ",
RowBox[{"(",
RowBox[{
RowBox[{"-",
FractionBox[
RowBox[{"3", " ", "Q"}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"5", "/", "2"}]]]}], "+",
FractionBox["2",
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}], ")"}]}]},
{
RowBox[{"x1", " ", "x2", " ",
RowBox[{"(",
RowBox[{
RowBox[{"-",
FractionBox[
RowBox[{"3", " ", "Q"}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"5", "/", "2"}]]]}], "+",
FractionBox["2",
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}], ")"}]}],
RowBox[{"1", "+",
FractionBox[
RowBox[{"Q", " ",
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "-",
RowBox[{"2", " ",
SuperscriptBox["x2", "2"]}]}], ")"}]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"5", "/", "2"}]]], "+",
FractionBox[
RowBox[{
RowBox[{"-",
SuperscriptBox["x1", "2"]}], "+",
SuperscriptBox["x2", "2"]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}]}
},
GridBoxAlignment->{"Columns" -> {{Center}}, "Rows" -> {{Baseline}}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]], "Output",
CellChangeTimes->{3.917392925835513*^9, 3.935127540821751*^9,
3.9351282497450457`*^9, 3.935626048713666*^9, 3.936005310309627*^9,
3.936005627850896*^9},
CellLabel->
"Out[12]//MatrixForm=",ExpressionUUID->"5cf520d3-1bc0-46df-847e-\
970a5127202c"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"HessianA", "/.",
RowBox[{"{",
RowBox[{"Q", "\[Rule]", "0"}], "}"}]}], "//", "Simplify"}], "//",
"MatrixForm"}]], "Input",
CellChangeTimes->{{3.9173929395943108`*^9, 3.917392958249593*^9}, {
3.935127574601118*^9, 3.935127576311431*^9}, {3.936005312533966*^9,
3.936005317839081*^9}},
CellLabel->"In[13]:=",ExpressionUUID->"a6167bb3-285e-4497-9cc4-849013248bcb"],
Cell[BoxData[
TagBox[
RowBox[{"(", "\[NoBreak]", GridBox[{
{
RowBox[{"1", "+",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"x1", "-", "x2"}], ")"}], " ",
RowBox[{"(",
RowBox[{"x1", "+", "x2"}], ")"}]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}],
FractionBox[
RowBox[{"2", " ", "x1", " ", "x2"}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]},
{
FractionBox[
RowBox[{"2", " ", "x1", " ", "x2"}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]],
RowBox[{"1", "+",
FractionBox[
RowBox[{
RowBox[{"-",
SuperscriptBox["x1", "2"]}], "+",
SuperscriptBox["x2", "2"]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}]}
},
GridBoxAlignment->{"Columns" -> {{Center}}, "Rows" -> {{Baseline}}},
GridBoxSpacings->{"Columns" -> {
Offset[0.27999999999999997`], {
Offset[0.7]},
Offset[0.27999999999999997`]}, "Rows" -> {
Offset[0.2], {
Offset[0.4]},
Offset[0.2]}}], "\[NoBreak]", ")"}],
Function[BoxForm`e$,
MatrixForm[BoxForm`e$]]]], "Output",
CellChangeTimes->{3.917392958809451*^9, 3.935127578317227*^9,
3.936005318835601*^9, 3.936005628709375*^9},
CellLabel->
"Out[13]//MatrixForm=",ExpressionUUID->"7831aa19-a199-4938-87e3-\
01fae36d938e"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"traceA", " ", "=", " ",
RowBox[{
RowBox[{"Tr", "[", "HessianA", "]"}], "//", "FullSimplify"}]}]], "Input",
CellChangeTimes->{{3.917392997474169*^9, 3.9173930043663063`*^9}, {
3.936005325803913*^9, 3.936005327345693*^9}},
CellLabel->"In[14]:=",ExpressionUUID->"01500e89-2742-4339-9cbb-61fa8be8bcf6"],
Cell[BoxData[
RowBox[{"2", "-",
FractionBox["Q",
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"3", "/", "2"}]]]}]], "Output",
CellChangeTimes->{3.917393005177546*^9, 3.935127609684861*^9,
3.935128258303871*^9, 3.935627096206478*^9, 3.936005327723834*^9,
3.936005629344287*^9},
CellLabel->"Out[14]=",ExpressionUUID->"c303075b-c308-42d9-b733-037982ef0aa3"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"detA", " ", "=", " ",
RowBox[{
RowBox[{"Det", "[", "HessianA", "]"}], "//", "FullSimplify"}]}]], "Input",
CellChangeTimes->{{3.917393467321971*^9, 3.917393477345676*^9}, {
3.9360053321591263`*^9, 3.9360053337066317`*^9}},
CellLabel->"In[15]:=",ExpressionUUID->"99d0e1bb-18ec-4aaa-888f-328dc7300222"],
Cell[BoxData[
RowBox[{"1", "-",
FractionBox[
RowBox[{"2", " ",
SuperscriptBox["Q", "2"]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "3"]], "-",
FractionBox[
RowBox[{"Q", " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "3"}], "+",
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}]}],
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}],
RowBox[{"5", "/", "2"}]]], "-",
FractionBox["1",
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}]], "Output",
CellChangeTimes->{3.917393478023057*^9, 3.93512761789237*^9,
3.935128260075694*^9, 3.935626866528389*^9, 3.936005334433168*^9,
3.936005630176572*^9},
CellLabel->"Out[15]=",ExpressionUUID->"63610526-2abe-45bd-9244-68882540515f"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"detA", "/.",
RowBox[{"{",
RowBox[{"Q", "\[Rule]", "0"}], "}"}]}]], "Input",
CellChangeTimes->{{3.917393483887458*^9, 3.917393490811861*^9}, {
3.93512762639288*^9, 3.935127635439138*^9}, {3.9360053396852207`*^9,
3.9360053399408283`*^9}},
CellLabel->"In[16]:=",ExpressionUUID->"51e55387-4abb-4544-abb1-bec83a590bd5"],
Cell[BoxData[
RowBox[{"1", "-",
FractionBox["1",
SuperscriptBox[
RowBox[{"(",
RowBox[{
SuperscriptBox["x1", "2"], "+",
SuperscriptBox["x2", "2"]}], ")"}], "2"]]}]], "Output",
CellChangeTimes->{3.9173934917784767`*^9, 3.935127636097958*^9,
3.936005340257414*^9, 3.936005630939456*^9},
CellLabel->"Out[16]=",ExpressionUUID->"72efac2d-380b-4bfb-9588-fbfc99962cf5"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Critical curve and caustic", "Subtitle",
CellChangeTimes->{{3.936005348447171*^9,
3.9360053572124863`*^9}},ExpressionUUID->"54d40b2a-f1d8-42d2-90a5-\
44b6e28e4426"],
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"radCrit", "[",
RowBox[{"\[Xi]_", ",", "Q_"}], "]"}], ":=",
RowBox[{"1", "+",
FractionBox["1",
RowBox[{" ",
SuperscriptBox["\[Xi]", "2"]}]], "-",
FractionBox[
RowBox[{"2", " ", "Q"}],
SuperscriptBox["\[Xi]", "3"]]}]}], " ", ";"}]], "Input",
CellChangeTimes->{
3.9360054039655523`*^9, {3.9360054721748123`*^9, 3.9360054882041073`*^9}, {
3.936005586301384*^9, 3.936005587188792*^9}, 3.93600582443934*^9},
CellLabel->"In[32]:=",ExpressionUUID->"47069633-68a7-444e-a442-abfa6bd72a58"],
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"critPoints", "[", "Q_", "]"}], ":=",
RowBox[{"NSolve", "[",
RowBox[{
RowBox[{
RowBox[{"radCrit", "[",
RowBox[{"\[Xi]", ",", "Q"}], "]"}], "==", "0"}], ",", "\[Xi]", ",",
" ", "Reals"}], "]"}]}], ";"}]], "Input",
CellChangeTimes->{{3.936005433541185*^9, 3.9360054385643797`*^9}, {
3.936005498630933*^9, 3.936005502324197*^9}, {3.9360056413588*^9,
3.93600564618864*^9}},
CellLabel->"In[33]:=",ExpressionUUID->"a4271410-3651-46a3-92fb-5df7367c0c81"],
Cell[BoxData[
RowBox[{
RowBox[{"qValues", "=",
RowBox[{"Range", "[",
RowBox[{
RowBox[{"-", "1"}], ",", "1", ",", "0.05"}], "]"}]}], ";"}]], "Input",
CellChangeTimes->{{3.936005729512191*^9, 3.93600574255763*^9}},
CellLabel->"In[34]:=",ExpressionUUID->"0ad694de-6403-49e8-a7c4-3c40612d0123"],
Cell[BoxData[
RowBox[{
RowBox[{"critPointsList", "=",
RowBox[{"Flatten", "[",
RowBox[{
RowBox[{"Table", "[",
RowBox[{
RowBox[{
RowBox[{"{",
RowBox[{"Q", ",", "\[Xi]"}], "}"}], "/.", " ",
RowBox[{"critPoints", "[", "Q", "]"}]}], ",",
RowBox[{"{",
RowBox[{"Q", ",", "qValues"}], "}"}]}], "]"}], ",", "1"}], "]"}]}],
";"}]], "Input",
CellChangeTimes->{{3.936005510149357*^9, 3.936005511084091*^9}, {
3.936005683177409*^9, 3.93600569879523*^9}},
CellLabel->"In[35]:=",ExpressionUUID->"28ad5128-7c27-4779-8bc4-1158e9689db9"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"ListPlot", "[", "critPointsList", "]"}]], "Input",
CellChangeTimes->{{3.936005714605788*^9, 3.9360057238281507`*^9}},
CellLabel->"In[36]:=",ExpressionUUID->"19818fc8-5cfb-4c13-81ff-e085e35449b7"],
Cell[BoxData[
GraphicsBox[{{},
{RGBColor[0.368417, 0.506779, 0.709798], PointSize[0.012833333333333334`],
AbsoluteThickness[1.6], PointBox[CompressedData["
1:eJw9kk0ow3EYxxcXOTjMW9SMg1o5eE1c9pw47fSn1RyFlteMclBuUkssIcOB
lKKYchqHp+zAarQlW0I2e7HZi4WVksX+vy9P/Xp6+j2/z/M83+dX0zsm9ecp
FArN78l5YWn+8wOypbiuQzWjrX/lS1fOEtxZ+tZVok9xs2xxzu70FR5MJHnd
mrMY97hVC8q5BDhRnlU++GoX4+BF2FnZPr9ifmEZ5wqxzrYR9UzFwAuy/stW
/t0dBS/AhsnMiVf9DJ6frZ9S1fZNGO/vuSLfp82aQrwm59+yRqcOn70/oZ6X
B5ONZpYC3CTzr1mXGV0qKH4Ez83LFsk2VH2H9042jhRZhk+93CDnO/i81XFk
9Xhwb+f96dXj3cMLtsjxHpepxk0fBjtviZgQk4jthHxqEzwCD/dOQj1CP4R+
qEX0S+iXjGIewjy0KeYlzEtuoQdBD/D8BL0IehL0BD9I0JuuxD4I+0C9CGFf
4EUJ+wQvRtg3eHHCfwAvQfgv4KUI/wm89L//ARVGPdw=
"]]}, {{}, {}}},
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}, {Automatic, Automatic}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
Method->{
"OptimizePlotMarkers" -> True, "OptimizePlotMarkers" -> True,
"CoordinatesToolOptions" -> {"DisplayFunction" -> ({
Identity[
Part[#, 1]],
Identity[
Part[#, 2]]}& ), "CopiedValueFunction" -> ({
Identity[
Part[#, 1]],
Identity[
Part[#, 2]]}& )}},
PlotRange->{{-1., 1.}, {-1., 1.}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->{Automatic, Automatic}]], "Output",
CellChangeTimes->{{3.936005724403824*^9, 3.93600574579753*^9},
3.936005828076502*^9},
CellLabel->"Out[36]=",ExpressionUUID->"9a547814-a6b2-4033-af66-d6e0a1cca1f3"]
}, Open ]],
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"caustic", "[",
RowBox[{"\[Xi]_", ",", " ", "Q_"}], "]"}], ":=", " ",
RowBox[{
SqrtBox[
RowBox[{"(",
SuperscriptBox["\[Xi]", "2"], ")"}]], " ", "-", " ",
FractionBox["1",
SqrtBox[
SuperscriptBox["\[Xi]", "2"]]], "+", " ",
FractionBox["Q",
SuperscriptBox["\[Xi]", "2"]]}]}], ";"}]], "Input",
CellChangeTimes->{{3.9360057865849857`*^9, 3.9360058196512833`*^9}},
CellLabel->"In[37]:=",ExpressionUUID->"1fddb82f-f774-4d4a-8379-e3309ca17ddf"],
Cell[BoxData[
RowBox[{
RowBox[{"causticAtCritPoints", "[", "Q_", "]"}], ":=",
RowBox[{"caustic", "[",
RowBox[{
RowBox[{"\[Xi]", "/.",
RowBox[{"critPoints", "[", "Q", "]"}]}], ",", "Q"}], "]"}]}]], "Input",
CellChangeTimes->{{3.9360058325184917`*^9, 3.936005878530991*^9}},
CellLabel->"In[38]:=",ExpressionUUID->"cf68ba90-c544-4a8e-96d8-3b8098b294f5"],
Cell[BoxData[
RowBox[{
RowBox[{"causticAtRoots", " ", "=", " ",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"Abs", "[",
RowBox[{"causticAtCritPoints", "[", "Q", "]"}], "]"}], ",", "Q"}],
"}"}], ",",
RowBox[{"{",
RowBox[{"Q", ",", " ", "qValues"}], "}"}]}], "]"}]}], ";"}]], "Input",
CellChangeTimes->{{3.9360059048356752`*^9, 3.93600594848584*^9}},
CellLabel->"In[40]:=",ExpressionUUID->"cb3e0b1b-1d7d-4595-9c06-a4f08eba1b0c"],
Cell[BoxData[
RowBox[{
RowBox[{"flattenedData", " ", "=", " ",
RowBox[{
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"#", "[",
RowBox[{"[",
RowBox[{"1", ",", "1"}], "]"}], "]"}], ",",
RowBox[{"#", "[",
RowBox[{"[", "2", "]"}], "]"}]}], "}"}], "&"}], "/@",
"causticAtRoots"}]}], ";"}]], "Input",
CellChangeTimes->{{3.9360059514246902`*^9, 3.936005968980564*^9}},
CellLabel->"In[41]:=",ExpressionUUID->"080b9ac8-e7e1-4bb6-8bf9-7b2a6874f816"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"ListPlot", "[", "flattenedData", "]"}]], "Input",
CellChangeTimes->{{3.936005971084025*^9, 3.93600597575665*^9}},
CellLabel->"In[42]:=",ExpressionUUID->"8575bf0e-edbf-4ad8-b9c7-7366968a7c00"],
Cell[BoxData[
GraphicsBox[{{},
{RGBColor[0.368417, 0.506779, 0.709798], PointSize[0.012833333333333334`],
AbsoluteThickness[1.6], PointBox[CompressedData["
1:eJxTTMoPSmViYGDQAGIQDQEf7KH0fg+X2Jk3r3ywTwODd/sfBZ2fU7D7o/3Z
MyDwZn9Av6rc8m2f7I3B4PX+Gwqm14RPfbafNRMEXu6Pco9bavfrC9S8F/vZ
dJ+Wfff5BjXv2f5Yt61c105+twcbd+bJ/rizC4V/V/2Emvd4/5Gn4p62eb+h
5j3c/0Y24DP/9r9Q8x7sTwv3rLltweAA0X9nv5H6jIuVTxgdZoDV39yfseTc
rQgGFgeIfdf2x+izhlw5yuZgBDb/8v7tyzUbDs7lcoCYd2H/9muMdTP0BKD6
T+53eb1lZ+g/EQcDsPrD+6sK3Z5d2yUHld+536da4co3Qz2HCWD+yv2vvsUq
SM0SdlgA4dsz5DyKZ8xjgvJ32u+tYRWy5/1mbwExz95tXoCr3//X9hD5k/Yv
NFc/SEl/CPXfBXsb8/MyDd6X7U0g7rV/ML+djW/iHvsMiH/sH4g4e+fMXmY/
B+Jf+xy7ebwp3cfsL0DCw36bpOz2t7MuwcLL/hnzEWsH8Zuw8LRP6fmrEvLy
HtT8x/ZaAmtuGks+sj8HiQ/7+A0cB8tbn0Dte2Zfamcbs/nQM1h82tuEsrRw
33gBi297mepDPxVPv4Ka99pe7invpqoFb6DmvbFPvvnC8VD0O6h572DpDE4D
AJUwKMU=
"]]}, {{}, {}}},
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}, {Automatic, Automatic}},
GridLines->{None, None},
GridLinesStyle->Directive[
GrayLevel[0.5, 0.4]],
Method->{
"OptimizePlotMarkers" -> True, "OptimizePlotMarkers" -> True,
"CoordinatesToolOptions" -> {"DisplayFunction" -> ({
Identity[
Part[#, 1]],
Identity[
Part[#, 2]]}& ), "CopiedValueFunction" -> ({
Identity[
Part[#, 1]],
Identity[
Part[#, 2]]}& )}},
PlotRange->{{0, 5.525936812775478}, {-1., 1.}},
PlotRangeClipping->True,
PlotRangePadding->{{
Scaled[0.02],
Scaled[0.02]}, {
Scaled[0.05],
Scaled[0.05]}},
Ticks->{Automatic, Automatic}]], "Output",
CellChangeTimes->{3.936005977236723*^9},
CellLabel->"Out[42]=",ExpressionUUID->"df02b8a3-157d-47ee-8e02-f6a3b6e0f80c"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Lens equation", "Subtitle",
CellChangeTimes->{{3.93600604485778*^9,
3.936006049658519*^9}},ExpressionUUID->"f0c34558-aeed-4dd0-965e-\
8182af8050bd"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Manipulate", "[",
RowBox[{
RowBox[{"Plot", "[",
RowBox[{
RowBox[{
RowBox[{"x", "-",
RowBox[{"(",
RowBox[{"1", "/", "x"}], ")"}], "+",
RowBox[{"(",
RowBox[{"q", "*",
RowBox[{"x", "/",
RowBox[{
RowBox[{"(",
RowBox[{"x", "^", "2"}], ")"}], "^", "1.5"}]}]}], ")"}]}], "==",
"y"}], ",",
RowBox[{"{",
RowBox[{"x", ",",
RowBox[{"-", "3"}], ",", "4"}], "}"}], ",",
RowBox[{"PlotRange", "->",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"-", "3"}], ",", "4"}], "}"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"-", "5"}], ",", "5"}], "}"}]}], "}"}]}], ",",
RowBox[{"AxesLabel", "->",
RowBox[{"{",
RowBox[{"\"\<x\>\"", ",", "\"\<Lens eq\>\""}], "}"}]}], ",",
RowBox[{"PlotLabel", "->",
RowBox[{"Row", "[",
RowBox[{"{",
RowBox[{
"\"\<Plot of \>\"", ",",
"\"\<x - (1/x) + (q * x/(x^2)^1.5) - y=0\>\""}], "}"}], "]"}]}], ",",
RowBox[{"Epilog", "->",
RowBox[{"{",
RowBox[{"Red", ",",
RowBox[{"PointSize", "[", "Large", "]"}], ",",
RowBox[{"Point", "[",
RowBox[{"{",
RowBox[{
RowBox[{"x", "/.", " ",
RowBox[{"FindRoot", "[",
RowBox[{
RowBox[{
RowBox[{"x", "-",
RowBox[{"(",
RowBox[{"1", "/", "x"}], ")"}], "+",
RowBox[{"(",
RowBox[{"q", "*",
RowBox[{"x", "/",
RowBox[{
RowBox[{"(",
RowBox[{"x", "^", "2"}], ")"}], "^", "1.5"}]}]}], ")"}]}],
"==", "y"}], ",",
RowBox[{"{",
RowBox[{"x", ",", "1"}], "}"}]}], "]"}]}], ",", "y"}], "}"}],
"]"}], ",",
RowBox[{"Text", "[",
RowBox[{
RowBox[{"Style", "[",
RowBox[{
RowBox[{"\"\<y = \>\"", "<>",
RowBox[{"ToString", "[", "y", "]"}]}], ",", "Medium", ",",
"Bold"}], "]"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"-", "2.5"}], ",", "4"}], "}"}]}], "]"}], ",",
RowBox[{"Text", "[",
RowBox[{
RowBox[{"Style", "[",
RowBox[{
RowBox[{"\"\<q = \>\"", "<>",
RowBox[{"ToString", "[", "q", "]"}]}], ",", "Medium", ",",
"Bold"}], "]"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"-", "2.5"}], ",", "3.5"}], "}"}]}], "]"}]}], "}"}]}],
",",
RowBox[{"AspectRatio", "->", "1"}]}], "]"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"y", ",", "0"}], "}"}], ",", "0", ",", "3", ",",
RowBox[{"Appearance", "->", "\"\<Labeled\>\""}]}], "}"}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"q", ",", "0"}], "}"}], ",",
RowBox[{"-", "1"}], ",", "1", ",",
RowBox[{"Appearance", "->", "\"\<Labeled\>\""}]}], "}"}]}],
"]"}]], "Input",
CellChangeTimes->{{3.936014960442687*^9, 3.936015037677503*^9}},
CellLabel->"In[79]:=",ExpressionUUID->"542a3b4e-cf5f-4689-9b76-2eee6e209f6a"],
Cell[BoxData[
TagBox[
StyleBox[
DynamicModuleBox[{$CellContext`q$$ = 0.395, $CellContext`y$$ = 0.,
Typeset`show$$ = True, Typeset`bookmarkList$$ = {},
Typeset`bookmarkMode$$ = "Menu", Typeset`animator$$, Typeset`animvar$$ =
1, Typeset`name$$ = "\"untitled\"", Typeset`specs$$ = {{{
Hold[$CellContext`y$$], 0}, 0, 3}, {{
Hold[$CellContext`q$$], 0}, -1, 1}}, Typeset`size$$ = {
360., {186., 191.}}, Typeset`update$$ = 0, Typeset`initDone$$,
Typeset`skipInitDone$$ = True},
DynamicBox[Manipulate`ManipulateBoxes[
1, StandardForm,
"Variables" :> {$CellContext`q$$ = 0, $CellContext`y$$ = 0},
"ControllerVariables" :> {},
"OtherVariables" :> {
Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$,
Typeset`animator$$, Typeset`animvar$$, Typeset`name$$,
Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$,
Typeset`skipInitDone$$}, "Body" :>
Plot[$CellContext`x -
1/$CellContext`x + $CellContext`q$$ \
($CellContext`x/($CellContext`x^2)^1.5) == $CellContext`y$$, {$CellContext`x, \
-3, 4}, PlotRange -> {{-3, 4}, {-5, 5}}, AxesLabel -> {"x", "Lens eq"},
PlotLabel -> Row[{"Plot of ", "x - (1/x) + (q * x/(x^2)^1.5) - y=0"}],
Epilog -> {Red,
PointSize[Large],
Point[{
ReplaceAll[$CellContext`x,
FindRoot[$CellContext`x -
1/$CellContext`x + $CellContext`q$$ \
($CellContext`x/($CellContext`x^2)^1.5) == $CellContext`y$$, {$CellContext`x,
1}]], $CellContext`y$$}],
Text[
Style[
"y = " <> ToString[$CellContext`y$$], Medium, Bold], {-2.5, 4}],
Text[
Style["q = " <> ToString[$CellContext`q$$], Medium, Bold], {-2.5,
3.5}]}, AspectRatio -> 1],
"Specifications" :> {{{$CellContext`y$$, 0}, 0, 3, Appearance ->
"Labeled"}, {{$CellContext`q$$, 0}, -1, 1, Appearance -> "Labeled"}},
"Options" :> {}, "DefaultOptions" :> {}],
ImageSizeCache->{404., {259., 264.}},
SingleEvaluation->True],
Deinitialization:>None,
DynamicModuleValues:>{},
SynchronousInitialization->True,
UndoTrackedVariables:>{Typeset`show$$, Typeset`bookmarkMode$$},
UnsavedVariables:>{Typeset`initDone$$},
UntrackedVariables:>{Typeset`size$$}], "Manipulate",
Deployed->True,
StripOnInput->False],
Manipulate`InterpretManipulate[1]]], "Output",
CellChangeTimes->{
3.93600606796636*^9, 3.9360144179792633`*^9, {3.936014833226797*^9,
3.936014834108344*^9}, 3.936014964051906*^9, {3.9360149963299522`*^9,
3.9360150652162457`*^9}},
CellLabel->"Out[79]=",ExpressionUUID->"02e445c2-853a-4d2f-b01a-206b9d9d9aa3"],
Cell[BoxData[
TemplateBox[{
"FindRoot", "lstol",
"\"The line search decreased the step size to within tolerance specified \
by AccuracyGoal and PrecisionGoal but was unable to find a sufficient \
decrease in the merit function. You may need more than \
\\!\\(\\*RowBox[{\\\"MachinePrecision\\\"}]\\) digits of working precision to \
meet these tolerances.\"", 2, 80, 1454, 20295808219644774330, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{3.936015524545253*^9},
CellLabel->"",ExpressionUUID->"0bdfa843-974c-4b4b-94d9-97dfcbd70623"],
Cell[BoxData[
TemplateBox[{
"FindRoot", "lstol",
"\"The line search decreased the step size to within tolerance specified \
by AccuracyGoal and PrecisionGoal but was unable to find a sufficient \
decrease in the merit function. You may need more than \
\\!\\(\\*RowBox[{\\\"MachinePrecision\\\"}]\\) digits of working precision to \
meet these tolerances.\"", 2, 80, 1455, 20295808219644774330, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{3.93601552461097*^9},
CellLabel->"",ExpressionUUID->"1c4c0290-0c09-4200-a84c-b9bd96cace24"],
Cell[BoxData[
TemplateBox[{
"FindRoot", "lstol",
"\"The line search decreased the step size to within tolerance specified \
by AccuracyGoal and PrecisionGoal but was unable to find a sufficient \
decrease in the merit function. You may need more than \
\\!\\(\\*RowBox[{\\\"MachinePrecision\\\"}]\\) digits of working precision to \
meet these tolerances.\"", 2, 80, 1456, 20295808219644774330, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{3.936015524649976*^9},
CellLabel->"",ExpressionUUID->"fd175b46-0de5-4976-8b81-43d534de2dc5"],
Cell[BoxData[
TemplateBox[{
"General", "stop",
"\"Further output of \\!\\(\\*StyleBox[RowBox[{\\\"FindRoot\\\", \
\\\"::\\\", \\\"lstol\\\"}], \\\"MessageName\\\"]\\) will be suppressed \
during this calculation.\"", 2, 80, 1457, 20295808219644774330, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{3.936015524656906*^9},
CellLabel->"",ExpressionUUID->"085ef931-256f-480e-a38b-f6c2127d34b3"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Image locations", "Subtitle",
CellChangeTimes->{{3.9360061297770433`*^9,
3.936006131922555*^9}},ExpressionUUID->"c3f99753-378e-44f8-a3bf-\
c4c6dfc37183"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"lenseq1d", " ", "=", " ",
RowBox[{"lenseq", "/.",
RowBox[{"{",
RowBox[{
RowBox[{"x2", "->", "0"}], ",", " ",
RowBox[{"y2", "\[Rule]", "0"}]}], "}"}]}]}]], "Input",
CellChangeTimes->{{3.936006177901074*^9, 3.9360061979075108`*^9}},
CellLabel->"In[45]:=",ExpressionUUID->"38aad417-5967-4402-aec3-53a77ac621b6"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{"-",
FractionBox["1", "x1"]}], "+", "x1", "+",
FractionBox[
RowBox[{"Q", " ", "x1"}],
SuperscriptBox[
RowBox[{"(",
SuperscriptBox["x1", "2"], ")"}],
RowBox[{"3", "/", "2"}]]], "-", "y1"}], ",", "0"}], "}"}]], "Output",
CellChangeTimes->{3.936006199019614*^9},
CellLabel->"Out[45]=",ExpressionUUID->"01835d03-50de-4a00-a7ca-692af033725e"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"imgLocations", " ", "=", " ",
RowBox[{"Solve", "[",
RowBox[{
RowBox[{"lenseq1d", "==", "0"}], ",", "x1"}], "]"}]}]], "Input",
CellChangeTimes->{{3.935629500591786*^9, 3.9356295791127787`*^9}, {
3.9360061364276247`*^9, 3.936006165442645*^9}, {3.93600621810713*^9,
3.936006224570915*^9}},
CellLabel->"In[46]:=",ExpressionUUID->"6e8f972a-8913-44d8-817e-b3795e1e3f9b"],
Cell[BoxData[
TemplateBox[{
"Solve", "nongen",
"\"There may be values of the parameters for which some or all solutions \
are not valid.\"", 2, 46, 637, 20295808219644774330, "Local"},
"MessageTemplate"]], "Message", "MSG",
CellChangeTimes->{3.936006226951989*^9},
CellLabel->
"During evaluation of \
In[46]:=",ExpressionUUID->"7eb2ba02-c815-472d-bd54-5392c03cfede"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{
FractionBox["y1", "3"], "-",
FractionBox[
RowBox[{
SuperscriptBox["2",
RowBox[{"1", "/", "3"}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "3"}], "-",
SuperscriptBox["y1", "2"]}], ")"}]}],
RowBox[{"3", " ",
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "+",
RowBox[{"9", " ", "y1"}], "+",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "-",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "-",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]]}]], "+",
FractionBox[
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "+",
RowBox[{"9", " ", "y1"}], "+",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "-",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "-",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]],
RowBox[{"3", " ",
SuperscriptBox["2",
RowBox[{"1", "/", "3"}]]}]]}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{
FractionBox["y1", "3"], "+",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"1", "+",
RowBox[{"\[ImaginaryI]", " ",
SqrtBox["3"]}]}], ")"}], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "3"}], "-",
SuperscriptBox["y1", "2"]}], ")"}]}],
RowBox[{"3", " ",
SuperscriptBox["2",
RowBox[{"2", "/", "3"}]], " ",
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "+",
RowBox[{"9", " ", "y1"}], "+",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "-",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "-",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]]}]], "-",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"1", "-",
RowBox[{"\[ImaginaryI]", " ",
SqrtBox["3"]}]}], ")"}], " ",
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "+",
RowBox[{"9", " ", "y1"}], "+",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "-",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "-",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]]}],
RowBox[{"6", " ",
SuperscriptBox["2",
RowBox[{"1", "/", "3"}]]}]]}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{
FractionBox["y1", "3"], "+",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"1", "-",
RowBox[{"\[ImaginaryI]", " ",
SqrtBox["3"]}]}], ")"}], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "3"}], "-",
SuperscriptBox["y1", "2"]}], ")"}]}],
RowBox[{"3", " ",
SuperscriptBox["2",
RowBox[{"2", "/", "3"}]], " ",
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "+",
RowBox[{"9", " ", "y1"}], "+",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "-",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "-",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]]}]], "-",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"1", "+",
RowBox[{"\[ImaginaryI]", " ",
SqrtBox["3"]}]}], ")"}], " ",
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "+",
RowBox[{"9", " ", "y1"}], "+",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "-",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "-",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]]}],
RowBox[{"6", " ",
SuperscriptBox["2",
RowBox[{"1", "/", "3"}]]}]]}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{
FractionBox["y1", "3"], "+",
FractionBox[
RowBox[{
SuperscriptBox["2",
RowBox[{"1", "/", "3"}]], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "3"}], "-",
SuperscriptBox["y1", "2"]}], ")"}]}],
RowBox[{"3", " ",
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "-",
RowBox[{"9", " ", "y1"}], "-",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "+",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "+",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]]}]], "-",
FractionBox[
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "-",
RowBox[{"9", " ", "y1"}], "-",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "+",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "+",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]],
RowBox[{"3", " ",
SuperscriptBox["2",
RowBox[{"1", "/", "3"}]]}]]}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{
FractionBox["y1", "3"], "-",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"1", "+",
RowBox[{"\[ImaginaryI]", " ",
SqrtBox["3"]}]}], ")"}], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "3"}], "-",
SuperscriptBox["y1", "2"]}], ")"}]}],
RowBox[{"3", " ",
SuperscriptBox["2",
RowBox[{"2", "/", "3"}]], " ",
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "-",
RowBox[{"9", " ", "y1"}], "-",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "+",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "+",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]]}]], "+",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"1", "-",
RowBox[{"\[ImaginaryI]", " ",
SqrtBox["3"]}]}], ")"}], " ",
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "-",
RowBox[{"9", " ", "y1"}], "-",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "+",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "+",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]]}],
RowBox[{"6", " ",
SuperscriptBox["2",
RowBox[{"1", "/", "3"}]]}]]}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{
FractionBox["y1", "3"], "-",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"1", "-",
RowBox[{"\[ImaginaryI]", " ",
SqrtBox["3"]}]}], ")"}], " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "3"}], "-",
SuperscriptBox["y1", "2"]}], ")"}]}],
RowBox[{"3", " ",
SuperscriptBox["2",
RowBox[{"2", "/", "3"}]], " ",
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "-",
RowBox[{"9", " ", "y1"}], "-",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "+",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "+",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]]}]], "+",
FractionBox[
RowBox[{
RowBox[{"(",
RowBox[{"1", "+",
RowBox[{"\[ImaginaryI]", " ",
SqrtBox["3"]}]}], ")"}], " ",
SuperscriptBox[
RowBox[{"(",
RowBox[{
RowBox[{
RowBox[{"-", "27"}], " ", "Q"}], "-",
RowBox[{"9", " ", "y1"}], "-",
RowBox[{"2", " ",
SuperscriptBox["y1", "3"]}], "+",
RowBox[{"3", " ",
SqrtBox["3"], " ",
SqrtBox[
RowBox[{
RowBox[{"-", "4"}], "+",
RowBox[{"27", " ",
SuperscriptBox["Q", "2"]}], "+",
RowBox[{"18", " ", "Q", " ", "y1"}], "-",
SuperscriptBox["y1", "2"], "+",
RowBox[{"4", " ", "Q", " ",
SuperscriptBox["y1", "3"]}]}]]}]}], ")"}],
RowBox[{"1", "/", "3"}]]}],
RowBox[{"6", " ",
SuperscriptBox["2",
RowBox[{"1", "/", "3"}]]}]]}]}], "}"}]}], "}"}]], "Output",
CellChangeTimes->{3.935629580439048*^9, 3.93600622696216*^9},
CellLabel->"Out[46]=",ExpressionUUID->"b434ac44-564e-468c-b122-6d107a829f7f"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Examples", "Subtitle",
CellChangeTimes->{{3.936013130405056*^9,
3.9360131329314013`*^9}},ExpressionUUID->"56223e43-257e-416a-81d8-\
e6ef4583f61e"],
Cell[BoxData[{
RowBox[{
RowBox[{"ytry", " ", "=", " ", "0.2"}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{"Qtry", " ", "=", " ", "1"}], ";"}]}], "Input",
CellChangeTimes->{{3.936013135311275*^9, 3.9360131495256166`*^9}},
CellLabel->"In[67]:=",ExpressionUUID->"c0d4d4a8-4f88-4bae-ae60-6bba66a9720f"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"img", " ", "=",
RowBox[{"imgLocations", "/.",
RowBox[{"{",
RowBox[{
RowBox[{"y1", "\[Rule]", "ytry"}], ",", " ",
RowBox[{"Q", "\[Rule]", "Qtry"}]}], "}"}]}]}]], "Input",
CellChangeTimes->{{3.936006301174038*^9, 3.936006367106472*^9}, {
3.936006409565275*^9, 3.936006412227583*^9}, {3.93601315208645*^9,
3.9360131612768593`*^9}},
CellLabel->"In[69]:=",ExpressionUUID->"d02c053c-466a-4f33-814a-01ff65873da6"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{"0.7231277214037309`", "\[VeryThinSpace]", "-",
RowBox[{"0.5286681528389647`", " ", "\[ImaginaryI]"}]}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{
RowBox[{"-", "1.2462554428074617`"}], "-",
RowBox[{"5.551115123125783`*^-17", " ", "\[ImaginaryI]"}]}]}], "}"}],
",",
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{"0.7231277214037307`", "\[VeryThinSpace]", "+",
RowBox[{"0.5286681528389647`", " ", "\[ImaginaryI]"}]}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{
RowBox[{"-", "0.6054993953531167`"}], "+",
RowBox[{"0.5848831605203008`", " ", "\[ImaginaryI]"}]}]}], "}"}], ",",
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{"1.4109987907062331`", "\[VeryThinSpace]", "+",
RowBox[{"8.326672684688674`*^-17", " ", "\[ImaginaryI]"}]}]}], "}"}],
",",
RowBox[{"{",
RowBox[{"x1", "\[Rule]",
RowBox[{
RowBox[{"-", "0.6054993953531164`"}], "-",
RowBox[{"0.5848831605203009`", " ", "\[ImaginaryI]"}]}]}], "}"}]}],
"}"}]], "Output",
CellChangeTimes->{{3.936006314650728*^9, 3.936006371519719*^9},
3.936006413225132*^9, 3.936013165508256*^9},
CellLabel->"Out[69]=",ExpressionUUID->"ba84b6f9-9253-4ade-96c7-26ed6bf6a903"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"mag", " ", "=", " ",
RowBox[{
RowBox[{
RowBox[{"1", "/", "detA"}], "/.",
RowBox[{"{",
RowBox[{"x2", "->", "0"}], "}"}]}], "//", "FullSimplify"}]}]], "Input",
CellChangeTimes->{{3.9360064261804647`*^9, 3.936006459302746*^9}, {
3.9360129321148033`*^9, 3.9360129401473503`*^9}},
CellLabel->"In[70]:=",ExpressionUUID->"bc5ad626-f456-4763-a1aa-4e941b672876"],
Cell[BoxData[
RowBox[{"-",
FractionBox["1",
RowBox[{
RowBox[{"-", "1"}], "+",
FractionBox[
RowBox[{"2", " ",
SuperscriptBox["Q", "2"]}],
SuperscriptBox["x1", "6"]], "+",
FractionBox["1",
SuperscriptBox["x1", "4"]], "+",
FractionBox[
RowBox[{"Q", " ",
RowBox[{"(",
RowBox[{
RowBox[{"-", "3"}], "+",
SuperscriptBox["x1", "2"]}], ")"}]}],
SuperscriptBox[
RowBox[{"(",
SuperscriptBox["x1", "2"], ")"}],
RowBox[{"5", "/", "2"}]]]}]]}]], "Output",
CellChangeTimes->{{3.936006430862399*^9, 3.936006459673163*^9}, {
3.936012932925727*^9, 3.936012940668989*^9}, 3.936013172638319*^9},
CellLabel->"Out[70]=",ExpressionUUID->"456e9d5c-34c5-4ec6-9a06-f80794a8b512"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"mag", "/.", "img"}], "/.",
RowBox[{"{",
RowBox[{
RowBox[{"y1", "\[Rule]", "ytry"}], ",", " ",
RowBox[{"Q", "\[Rule]", "Qtry"}]}], "}"}]}]], "Input",
CellChangeTimes->{{3.936012952622896*^9, 3.936012967024044*^9}, {
3.936013175270352*^9, 3.936013183738792*^9}},
CellLabel->"In[71]:=",ExpressionUUID->"c791f0d6-ae9a-4791-bd48-47a1a1d95031"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{"1.6638068232933114`", "\[VeryThinSpace]", "-",
RowBox[{"0.10128362111899007`", " ", "\[ImaginaryI]"}]}], ",",
RowBox[{"1.8764813393571715`", "\[VeryThinSpace]", "-",
RowBox[{"2.2294214467763864`*^-16", " ", "\[ImaginaryI]"}]}], ",",
RowBox[{"1.66380682329332`", "\[VeryThinSpace]", "+",
RowBox[{"0.10128362111899983`", " ", "\[ImaginaryI]"}]}], ",",
RowBox[{
RowBox[{"-", "1.0931018633950822`"}], "+",
RowBox[{"0.5295712733323429`", " ", "\[ImaginaryI]"}]}], ",",
RowBox[{"1.482139338803627`", "\[VeryThinSpace]", "-",
RowBox[{"1.1870668498384195`*^-16", " ", "\[ImaginaryI]"}]}], ",",
RowBox[{
RowBox[{"-", "1.093101863395074`"}], "-",
RowBox[{"0.529571273332341`", " ", "\[ImaginaryI]"}]}]}], "}"}]], "Output",\
CellChangeTimes->{{3.9360129595429573`*^9, 3.936012967514377*^9},
3.936013185543969*^9},
CellLabel->"Out[71]=",ExpressionUUID->"5dcab159-424f-4cae-b756-26188479b3b7"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"NSolve", "[",
RowBox[{
RowBox[{
RowBox[{"lenseq1d", "==", "0"}], "/.",
RowBox[{"{",
RowBox[{
RowBox[{"y1", "\[Rule]", "ytry"}], ",", " ",
RowBox[{"Q", "\[Rule]", "Qtry"}]}], "}"}]}], ",", "x1", ",", " ",
"Reals"}], "]"}]], "Input",
CellChangeTimes->{{3.9360130356249657`*^9, 3.936013067326825*^9}, {
3.9360131883108387`*^9, 3.936013198966856*^9}},
CellLabel->"In[72]:=",ExpressionUUID->"a434d43d-bae0-4e1e-b361-40ddc9fe55ae"],
Cell[BoxData[
RowBox[{"{", "}"}]], "Output",
CellChangeTimes->{{3.936013059029752*^9, 3.9360130676439466`*^9},
3.936013199369413*^9},
CellLabel->"Out[72]=",ExpressionUUID->"318bd73b-538e-409b-b54b-341ed68be774"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{"lenseq1d", "/.",
RowBox[{"img", "[",
RowBox[{"[", "2", "]"}], "]"}]}], "/.",
RowBox[{"{",
RowBox[{
RowBox[{"y1", "\[Rule]", "ytry"}], ",", " ",
RowBox[{"Q", "\[Rule]", "Qtry"}]}], "}"}]}]], "Input",
CellChangeTimes->{{3.936013077305544*^9, 3.936013089489978*^9}, {
3.936013203854237*^9, 3.936013209142318*^9}},
CellLabel->"In[73]:=",ExpressionUUID->"6eebceec-1e61-48ba-b65d-9c6a8ca2d673"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
RowBox[{
RowBox[{"-", "1.2877034510374943`"}], "-",
RowBox[{"3.38947586464997`*^-17", " ", "\[ImaginaryI]"}]}], ",", "0"}],
"}"}]], "Output",
CellChangeTimes->{{3.936013084342659*^9, 3.936013090290764*^9},
3.93601320948601*^9},
CellLabel->"Out[73]=",ExpressionUUID->"d8d1644d-868f-4685-acb6-8b30b60fcf3f"]
}, Open ]]
}, Open ]]
},
WindowSize->{1043, 843},
WindowMargins->{{Automatic, -200}, {Automatic, 0}},
TaggingRules-><|"TryRealOnly" -> False|>,
FrontEndVersion->"13.0 for Mac OS X ARM (64-bit) (February 4, 2022)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"89b3afc9-4be0-4ae1-83f1-4bb2e681ae77"
]
(* End of Notebook Content *)
(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[580, 22, 159, 3, 53, "Subtitle",ExpressionUUID->"e841c311-b777-401e-9436-efa64ce0ba8e"],
Cell[742, 27, 778, 21, 94, "Input",ExpressionUUID->"e0a6936e-ac93-44e9-810e-7da536d28c41"]
}, Open ]],
Cell[CellGroupData[{
Cell[1557, 53, 156, 3, 53, "Subtitle",ExpressionUUID->"163ef38f-df27-4ccd-82bb-7711c3c42b4e"],
Cell[CellGroupData[{
Cell[1738, 60, 393, 8, 47, "Input",ExpressionUUID->"7087287e-e244-4298-ba6f-1df828fe081a"],
Cell[2134, 70, 529, 15, 55, "Output",ExpressionUUID->"0c9c339f-4296-4c56-accd-21826fb462d1"]
}, Open ]],
Cell[CellGroupData[{
Cell[2700, 90, 299, 6, 30, "Input",ExpressionUUID->"1e28eb77-5dfa-4440-9864-23b24a7dd4bd"],
Cell[3002, 98, 460, 12, 37, "Output",ExpressionUUID->"a3c0546b-df1c-4a17-a938-f63c5a0968ce"]
}, Open ]],
Cell[CellGroupData[{
Cell[3499, 115, 566, 15, 47, "Input",ExpressionUUID->"b06d12cf-81a0-4d65-bbc0-505a888f6cbe"],
Cell[4068, 132, 874, 25, 58, "Output",ExpressionUUID->"188c8d0d-a8dc-4c8b-aeb5-a58d3abd3fb5"]
}, Open ]],
Cell[CellGroupData[{
Cell[4979, 162, 481, 11, 30, "Input",ExpressionUUID->"b4b2f1e5-296a-4cb0-92a6-26605073ed48"],
Cell[5463, 175, 1167, 36, 62, "Output",ExpressionUUID->"eea9aff6-4c37-4f16-9435-c550a6ba406e"]
}, Open ]],
Cell[CellGroupData[{
Cell[6667, 216, 554, 13, 30, "Input",ExpressionUUID->"8635c4d5-0f2e-42e0-b577-2b36a23c85ee"],
Cell[7224, 231, 528, 15, 74, "Output",ExpressionUUID->"64afe599-aa11-4c4a-883a-f4ffdb8a4724"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[7801, 252, 161, 3, 53, "Subtitle",ExpressionUUID->"61de006f-108a-4566-92f6-5cb276a3638c"],
Cell[CellGroupData[{
Cell[7987, 259, 386, 9, 30, "Input",ExpressionUUID->"1aba5a92-d26d-4f16-929c-c94d2c63768a"],
Cell[8376, 270, 1066, 32, 57, "Output",ExpressionUUID->"e069c2f9-3b97-4489-a05a-f6c04a9661b1"]
}, Open ]],
Cell[CellGroupData[{
Cell[9479, 307, 805, 21, 30, "Input",ExpressionUUID->"6d902a26-2288-4a03-b133-ee98c0d3841b"],
Cell[10287, 330, 3060, 98, 116, "Output",ExpressionUUID->"20a88818-266c-4774-83ba-aa1f3a680eac"]
}, Open ]],
Cell[CellGroupData[{
Cell[13384, 433, 262, 4, 30, "Input",ExpressionUUID->"3d545c3c-94c1-4a26-b750-d01b77a4191c"],
Cell[13649, 439, 3468, 107, 110, "Output",ExpressionUUID->"5cf520d3-1bc0-46df-847e-970a5127202c"]
}, Open ]],
Cell[CellGroupData[{
Cell[17154, 551, 427, 10, 30, "Input",ExpressionUUID->"a6167bb3-285e-4497-9cc4-849013248bcb"],
Cell[17584, 563, 1825, 57, 96, "Output",ExpressionUUID->"7831aa19-a199-4938-87e3-01fae36d938e"]
}, Open ]],
Cell[CellGroupData[{
Cell[19446, 625, 332, 6, 30, "Input",ExpressionUUID->"01500e89-2742-4339-9cbb-61fa8be8bcf6"],
Cell[19781, 633, 467, 12, 57, "Output",ExpressionUUID->"c303075b-c308-42d9-b733-037982ef0aa3"]
}, Open ]],
Cell[CellGroupData[{
Cell[20285, 650, 333, 6, 30, "Input",ExpressionUUID->"99d0e1bb-18ec-4aaa-888f-328dc7300222"],
Cell[20621, 658, 1011, 32, 62, "Output",ExpressionUUID->"63610526-2abe-45bd-9244-68882540515f"]
}, Open ]],
Cell[CellGroupData[{
Cell[21669, 695, 352, 7, 30, "Input",ExpressionUUID->"51e55387-4abb-4544-abb1-bec83a590bd5"],
Cell[22024, 704, 397, 10, 57, "Output",ExpressionUUID->"72efac2d-380b-4bfb-9588-fbfc99962cf5"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[22470, 720, 174, 3, 53, "Subtitle",ExpressionUUID->"54d40b2a-f1d8-42d2-90a5-44b6e28e4426"],
Cell[22647, 725, 576, 15, 51, "Input",ExpressionUUID->"47069633-68a7-444e-a442-abfa6bd72a58"],
Cell[23226, 742, 534, 13, 30, "Input",ExpressionUUID->"a4271410-3651-46a3-92fb-5df7367c0c81"],
Cell[23763, 757, 309, 7, 30, "Input",ExpressionUUID->"0ad694de-6403-49e8-a7c4-3c40612d0123"],
Cell[24075, 766, 601, 16, 30, "Input",ExpressionUUID->"28ad5128-7c27-4779-8bc4-1158e9689db9"],
Cell[CellGroupData[{
Cell[24701, 786, 221, 3, 30, "Input",ExpressionUUID->"19818fc8-5cfb-4c13-81ff-e085e35449b7"],
Cell[24925, 791, 1836, 46, 239, "Output",ExpressionUUID->"9a547814-a6b2-4033-af66-d6e0a1cca1f3"]
}, Open ]],
Cell[26776, 840, 538, 15, 56, "Input",ExpressionUUID->"1fddb82f-f774-4d4a-8379-e3309ca17ddf"],
Cell[27317, 857, 372, 8, 30, "Input",ExpressionUUID->"cf68ba90-c544-4a8e-96d8-3b8098b294f5"],
Cell[27692, 867, 505, 13, 30, "Input",ExpressionUUID->"cb3e0b1b-1d7d-4595-9c06-a4f08eba1b0c"],
Cell[28200, 882, 506, 14, 30, "Input",ExpressionUUID->"080b9ac8-e7e1-4bb6-8bf9-7b2a6874f816"],
Cell[CellGroupData[{
Cell[28731, 900, 217, 3, 30, "Input",ExpressionUUID->"8575bf0e-edbf-4ad8-b9c7-7366968a7c00"],
Cell[28951, 905, 1947, 48, 231, "Output",ExpressionUUID->"df02b8a3-157d-47ee-8e02-f6a3b6e0f80c"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[30947, 959, 158, 3, 53, "Subtitle",ExpressionUUID->"f0c34558-aeed-4dd0-965e-8182af8050bd"],
Cell[CellGroupData[{
Cell[31130, 966, 3315, 96, 136, "Input",ExpressionUUID->"542a3b4e-cf5f-4689-9b76-2eee6e209f6a"],
Cell[34448, 1064, 2768, 58, 565, "Output",ExpressionUUID->"02e445c2-853a-4d2f-b01a-206b9d9d9aa3"],
Cell[37219, 1124, 565, 10, 46, "Message",ExpressionUUID->"0bdfa843-974c-4b4b-94d9-97dfcbd70623"],
Cell[37787, 1136, 564, 10, 46, "Message",ExpressionUUID->"1c4c0290-0c09-4200-a84c-b9bd96cace24"],
Cell[38354, 1148, 565, 10, 46, "Message",ExpressionUUID->"fd175b46-0de5-4976-8b81-43d534de2dc5"],
Cell[38922, 1160, 422, 8, 28, "Message",ExpressionUUID->"085ef931-256f-480e-a38b-f6c2127d34b3"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[39393, 1174, 163, 3, 53, "Subtitle",ExpressionUUID->"c3f99753-378e-44f8-a3bf-c4c6dfc37183"],
Cell[CellGroupData[{
Cell[39581, 1181, 357, 8, 30, "Input",ExpressionUUID->"38aad417-5967-4402-aec3-53a77ac621b6"],
Cell[39941, 1191, 446, 13, 57, "Output",ExpressionUUID->"01835d03-50de-4a00-a7ca-692af033725e"]
}, Open ]],
Cell[CellGroupData[{
Cell[40424, 1209, 406, 8, 30, "Input",ExpressionUUID->"6e8f972a-8913-44d8-817e-b3795e1e3f9b"],
Cell[40833, 1219, 379, 9, 28, "Message",ExpressionUUID->"7eb2ba02-c815-472d-bd54-5392c03cfede"],
Cell[41215, 1230, 12955, 382, 719, "Output",ExpressionUUID->"b434ac44-564e-468c-b122-6d107a829f7f"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[54219, 1618, 156, 3, 53, "Subtitle",ExpressionUUID->"56223e43-257e-416a-81d8-e6ef4583f61e"],
Cell[54378, 1623, 312, 6, 52, "Input",ExpressionUUID->"c0d4d4a8-4f88-4bae-ae60-6bba66a9720f"],
Cell[CellGroupData[{
Cell[54715, 1633, 460, 10, 30, "Input",ExpressionUUID->"d02c053c-466a-4f33-814a-01ff65873da6"],
Cell[55178, 1645, 1393, 35, 60, "Output",ExpressionUUID->"ba84b6f9-9253-4ade-96c7-26ed6bf6a903"]
}, Open ]],
Cell[CellGroupData[{
Cell[56608, 1685, 402, 9, 30, "Input",ExpressionUUID->"bc5ad626-f456-4763-a1aa-4e941b672876"],
Cell[57013, 1696, 773, 23, 76, "Output",ExpressionUUID->"456e9d5c-34c5-4ec6-9a06-f80794a8b512"]
}, Open ]],
Cell[CellGroupData[{
Cell[57823, 1724, 393, 9, 30, "Input",ExpressionUUID->"c791f0d6-ae9a-4791-bd48-47a1a1d95031"],
Cell[58219, 1735, 997, 20, 60, "Output",ExpressionUUID->"5dcab159-424f-4cae-b756-26188479b3b7"]
}, Open ]],
Cell[CellGroupData[{
Cell[59253, 1760, 491, 12, 30, "Input",ExpressionUUID->"a434d43d-bae0-4e1e-b361-40ddc9fe55ae"],
Cell[59747, 1774, 218, 4, 34, "Output",ExpressionUUID->"318bd73b-538e-409b-b54b-341ed68be774"]
}, Open ]],
Cell[CellGroupData[{
Cell[60002, 1783, 452, 11, 30, "Input",ExpressionUUID->"6eebceec-1e61-48ba-b65d-9c6a8ca2d673"],
Cell[60457, 1796, 366, 9, 37, "Output",ExpressionUUID->"d8d1644d-868f-4685-acb6-8b30b60fcf3f"]
}, Open ]]
}, Open ]]
}
]
*)
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -7,31 +7,25 @@ class ChargedLens(object):
Initialization params:
-------------------------
qeff : float
effective charge parameter
y1, y2 : float, float
dimensionless impact parameter
gtd_limit: float
max time delay gradient at images [default:4.5]
qeff : effective charge parameter
y1, y2 : dimensionless impact parameter
"""
def __init__(self, qeff, y1, y2=0., gtd_limit=4.5):
def __init__(self, qeff, y1, y2=0.):
"""
params:
---------------
qeff : float
qeff: float
effective charge
y1 : float
impact parameter
y2 : float [default:0.0]
impact parameter
gtd_limit : float
max time delay gradient at images [default:4.5]
"""
# TODO set qeff according to the values of Dl, Ds, Dls and Q
self.qeff = qeff
self.y1 = y1
self.y2 = y2
self.gtd_limit = gtd_limit
self.img, _ = self.imageLocations()
self.img, _ = self.imageLocations(mag_cut=True, mag_tol=1e-6)
self.img_midx = []
self.img_mag = []
self.img_td = []
......@@ -65,36 +59,11 @@ class ChargedLens(object):
def gradTimeDelay(self, x1, x2=0):
""" Gradient of time delay function """
a1, a2 = self.alpha(x1, x2)
dtdx1 = x1 - self.y1 - a1
dtdx2 = x2 - self.y2 - a2
x = np.sqrt(x1**2 + x2**2)
dtdx1 = x1 - self.y1 - (x1/x**2) + (self.qeff*x1/x**3)
dtdx2 = x2 - self.y2 - (x2/x**2) + (self.qeff*x2/x**3)
return dtdx1, dtdx2
def critLines(self):
""" Tangential critical points are mapped to y=0.
Radial critical points are obtained here"""
common_term = np.complex128(9 * self.qeff +
np.sqrt(3 * (1 + 27 * self.qeff**2)))
common_term = np.power(common_term, (1./3.))
expr1 = -1./(3**(1/3) * common_term) + (common_term/3**(2/3))
expr2 = (1 + 1j*np.sqrt(3))/(2*3**(1/3)*common_term) - (1 - 1j*np.sqrt(3))*common_term/(2*3**(2/3))
expr3 = (1 - 1j*np.sqrt(3))/(2*3**(1/3)*common_term) - (1 + 1j*np.sqrt(3))*common_term/(2*3**(2/3))
crit_pts = []
for crit_pt in [expr1, expr2, expr3]:
if (abs(np.imag(crit_pt)) < 1e-4):
crit_pts.append(np.real(crit_pt))
crit_pts = np.asarray(crit_pts)
return crit_pts
def caustic(self):
""" Radial caustic points """
crit_pts = self.critLines()
caustic_pts = []
for crit_pt in crit_pts:
caustic_pts.append(self.lensEquation(crit_pt))
caustic_pts = np.asarray(caustic_pts)
return caustic_pts
def detTrace(self, x1, x2):
""" Returns the determinant and trace of the time delay Hessian matrix """
x = np.sqrt(x1**2 + x2**2)
......@@ -104,7 +73,7 @@ class ChargedLens(object):
tr = 2 - self.qeff / x**3
return det, tr
def magnification(self, x1, x2):
def magnification(self, x1, x2=0):
""" Inverse determinant of the Hessian matrix """
det, tr = self.detTrace(x1, x2)
return 1. / det
......@@ -125,51 +94,38 @@ class ChargedLens(object):
return -1 # undefined
def lensEquation(self, x):
""" right hand side of the lens equation """
return x - (1/x) + (self.qeff/x**2)
return x - (1/x) + (self.qeff * x/(x**2)**1.5)
def critLines(self):
""" Tangential critical lines are mapped to y=0.
Radial critical lines are obtained here"""
common_term = np.complex128(9 * self.qeff +
np.sqrt(3 * (1 + 27 * self.qeff**2)))
common_term = np.power(common_term, (1./3.))
return -1./(3**(1/3) * common_term) + (common_term/3**(2/3))
def caustic(self):
x = self.critLines()
caustic_pts = x - 1/x + self.qeff/x**2
return caustic_pts
def imageLocations(self):
def imageLocations(self, gtd_cut=False, mag_cut=False, gtd_tol=1e-1, mag_tol=1e-3):
"""
Returns the location of images in the format
[[im1_x1, im2_x1, ...], [im1_x2, im2_x2, ...]]
"""
# for now we are doing it for y2 = 0
def eq1(x):
return x*x*self.y1
def eq2(x):
return x**3 - x + self.qeff
x = np.arange(-4, 4, 0.0005)
f1 = eq1(x)
f2 = eq2(x)
possible_img_locs = x[np.argwhere(np.diff(np.sign(f1 - f2))).flatten()]
x = np.arange(-2, 4, 0.0005)
possible_img_locs = x[np.argwhere(np.diff(np.sign(self.lensEquation(x) - self.y1))).flatten()]
## putting a cut on the grad time delay
if gtd_cut:
gtd1, gtd2 = self.gradTimeDelay(possible_img_locs, np.zeros_like(possible_img_locs))
gtdnorm = np.sqrt(gtd1**2 + gtd2**2)
idx = np.where(gtdnorm<self.gtd_limit)[0]
img_locs = np.array(possible_img_locs[idx])
return [img_locs, np.zeros_like(img_locs)]
def imageLocationsAnalytic(self, grad_td_check=True):
""" Analytically obtained locations of images """
val = 81 * self.qeff**2 - 3 * (4 + self.y1**2) - 6 * self.qeff * self.y1 * (9 + 2 * self.y1**2)
if np.sign(val)==-1:
common_term = np.complex128(27 * self.qeff - 9 * self.y1 - 2 * self.y1**3 + 3j * np.sqrt(np.abs(val)))
else:
common_term = np.complex128(27 * self.qeff - 9 * self.y1 - 2 * self.y1**3 + 3 * np.sqrt(val))
common_term = np.power(common_term, (1./3.))
expr1 = (1/6) * (2 * self.y1 - ((2**(4/3) * (3 + self.y1**2)) / common_term) - 2**(2/3) * common_term)
expr2 = (1/12) * (4 * self.y1 + ((2**(4/3) * (1 + 1j * np.sqrt(3)) * (3 + self.y1**2)) /
common_term) + 2**(2/3) * (1 - 1j * np.sqrt(3)) * common_term)
expr3 = (1/12) * (4 * self.y1 + ((2**(4/3) * (1 - 1j * np.sqrt(3)) * (3 + self.y1**2)) /
common_term) + 2**(2/3) * (1 + 1j * np.sqrt(3)) * common_term)
img_locs = []
for imgloc in [expr1, expr2, expr3]:
if (abs(np.imag(imgloc)) < 1e-4):
if grad_td_check:
gtd1, gtd2 = self.gradTimeDelay(imgloc, 0)
gtdnorm = np.sqrt(gtd1**2 + gtd2**2)
if gtdnorm < self.gtd_limit:
img_locs.append(np.real(imgloc))
else:
img_locs.append(np.real(imgloc))
img_locs = np.asarray(img_locs)
return img_locs
\ No newline at end of file
gtd_pass = gtdnorm < gtd_tol
possible_img_locs = possible_img_locs[gtd_pass]
## putting a magnification cutoff
if mag_cut:
img_mags = self.magnification(possible_img_locs, 0)
mag_pass = np.abs(img_mags) > mag_tol
possible_img_locs = possible_img_locs[mag_pass]
return [possible_img_locs, np.zeros_like(possible_img_locs)]
\ 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