Skip to content
Snippets Groups Projects
Commit 23583c25 authored by Rayne Liu's avatar Rayne Liu
Browse files

Added different fitting times for comparison

parent 244c2c1b
No related branches found
No related tags found
No related merge requests found
...@@ -33,18 +33,19 @@ SetOptions[InputNotebook[], AutoGeneratedPackage -> Automatic] ...@@ -33,18 +33,19 @@ SetOptions[InputNotebook[], AutoGeneratedPackage -> Automatic]
mysxscase=rootpath<>"/SXS/BBH_SKS_d14.3_q1.22_sA_0_0_0.330_sB_0_0_-0.440"; mysxscase=rootpath<>"/SXS/BBH_SKS_d14.3_q1.22_sA_0_0_0.330_sB_0_0_-0.440";
ntones=1; ntones=1;
tshift=19; tshift=19;
npoints=1000; npoints=3000;
(*n=1:19, n=2:12, n=3:8, n=4:5, n=5:3, n=6:1, n=7:0 (not sure; is that really a minimum???) *) (*n=1:19, n=2:12, n=3:8, n=4:5, n=5:3, n=6:1, n=7:0 (not sure; is that really a minimum???) *)
allspectrum = {x0,x1,x2,x3,x4,x5,x6,x7}; allspectrum = {x0,x1,x2,x3,x4,x5,x6,x7};
spectrum = allspectrum[[;;ntones+1]]; allalphas = {\[Alpha]1,\[Alpha]2,\[Alpha]3,\[Alpha]4,\[Alpha]5,\[Alpha]6,\[Alpha]7};
allbetas = {\[Beta]1,\[Beta]2,\[Beta]3,\[Beta]4,\[Beta]5,\[Beta]6,\[Beta]7};
spectrum = allspectrum[[;;ntones+1]]
alphas = allalphas[[;;ntones]]
betas = allbetas[[;;ntones]]
\[Omega]fact=0.1; \[Omega]fact=0.1;
\[Tau]fact=0.1; \[Tau]fact=0.1;
params = {tshift, ntones, \[Omega]fact, \[Tau]fact} params = {tshift, ntones, \[Omega]fact, \[Tau]fact}
combinations = DeleteCases[Tuples[Range[1, ntones],2],Alternatives@@Subsets[Reverse[Range[0, ntones]],{2}]]
(* Change them accordingly *) (* Change them accordingly *)
(*Notebook directory*) (*Notebook directory*)
notdir=rootpath<>"code/"; notdir=rootpath<>"code/";
...@@ -130,44 +131,69 @@ Print["Tag = ",tag=("alternative-names"/.metadata)[[2]]] ...@@ -130,44 +131,69 @@ Print["Tag = ",tag=("alternative-names"/.metadata)[[2]]]
sxsrhs=Flatten[Conjugate/@GetAsymptoticMultiMode[#,2,modes,"ReSample"->True]&/@mysxscaserh,1]; sxsrhs=Flatten[Conjugate/@GetAsymptoticMultiMode[#,2,modes,"ReSample"->True]&/@mysxscaserh,1];
t0=TimeOfMaximum[sxsrhs[[1]]]+tshift tmax = TimeOfMaximum[sxsrhs[[1]]]
t0 = tmax+tshift
data = Select[sxsrhs[[1]],#[[1]]>= t0&]; data = Select[sxsrhs[[1]],#[[1]]>= t0&];
tab\[Alpha]s=Table[Table[randomvar1= RandomReal[{-\[Omega]fact, \[Omega]fact}];randomvar2 = RandomReal[{-\[Omega]fact, \[Omega]fact}]; (*tmax=TimeOfMaximum[sxsrhs[[1]]];
ansatz=OvertoneModelV2[ntones,{\[Eta],\[Chi]1,\[Chi]2},t0,"Fit\[Alpha]"->combinations[[k]],"Fit\[Tau]"->{},"ModesData"->Modedata]/.ToExpression["\[Alpha]"<>ToString[combinations[[k]][[1]]]]->randomvar1/.ToExpression["\[Alpha]"<>ToString[combinations[[k]][[2]]]] -> randomvar2; t01=tmax
cfit=NonlinearModelFit[data,ansatz,spectrum,t]; mysxscase22modeRD=Select[sxsrhs[[1]],#[[1]]\[GreaterEqual] tmax-25&];
cfitd=Transpose[{data[[All,1]],Normal[cfit]/.t->data[[All,1]]}]; data1 = Select[mysxscase22modeRD, #[[1]]\[GreaterEqual]tmax+tshift&]*)
comp\[Alpha]s = spectrum/.cfit["BestFitParameters"];
mismatchlist = {{randomvar1, randomvar2}, combinations[[k]], {tshift, 1-EasyMatchT[data,cfitd,t0,t0+90]}};
ampandphs = Transpose[{Re[Sqrt[comp\[Alpha]s * Conjugate[comp\[Alpha]s]]], Mod[Arg[comp\[Alpha]s], 2 Pi]}];
Join[mismatchlist, ampandphs], {j,npoints}], {k, Length[combinations]}];
tab\[Alpha]\[Beta]s=Flatten[Table[Table[randomvar1= RandomReal[{-\[Omega]fact, \[Omega]fact}];randomvar2 = RandomReal[{-\[Tau]fact, \[Tau]fact}]; (*tabvars=Table[
ansatz=OvertoneModelV2[ntones,{\[Eta],\[Chi]1,\[Chi]2},t0,"Fit\[Alpha]"->{k},"Fit\[Tau]"->{l},"ModesData"->Modedata]/.ToExpression["\[Alpha]"<>ToString[k]]->randomvar1/.ToExpression["\[Beta]"<>ToString[l]] -> randomvar2; randomvar\[Alpha]s= RandomReal[{-\[Omega]fact, \[Omega]fact}, ntones];
randomvar\[Beta]s = RandomReal[{-\[Tau]fact, \[Tau]fact}, ntones];
ansatz=OvertoneModelV2[ntones,{\[Eta],\[Chi]1,\[Chi]2},t0,"Fit\[Alpha]"\[Rule]Range[1, ntones],"Fit\[Tau]"\[Rule]Range[1, ntones],"ModesData"->Modedata]
/.Table[alphas[[i]]\[Rule]randomvar\[Alpha]s[[i]],{i,ntones}]/.Table[betas[[j]]\[Rule]randomvar\[Beta]s[[j]],{j,ntones}];
data=Select[mysxscase22modeRD, #[[1]]\[GreaterEqual]tmax+19&];
cfit=NonlinearModelFit[data,ansatz,spectrum,t]; cfit=NonlinearModelFit[data,ansatz,spectrum,t];
cfitd=Transpose[{data[[All,1]],Normal[cfit]/.t->data[[All,1]]}]; cfitd=Transpose[{data[[All,1]],Normal[cfit]/.t->data[[All,1]]}];
comp\[Alpha]\[Beta]s = spectrum/.cfit["BestFitParameters"]; alphasandmis = Join[alphas/.Table[alphas[[i]]\[Rule]randomvar\[Alpha]s[[i]],{i,ntones}], {1-EasyMatchT[data,cfitd,tmax+19,tmax+90]}];
mismatchlist = {{randomvar1, randomvar2}, {k, l}, {tshift, 1-EasyMatchT[data,cfitd,t0,t0+90]}}; (* This extra step is to make sure everything's correct, and also to make the output a uniform shape *)
ampandphs = Transpose[{Re[Sqrt[comp\[Alpha]\[Beta]s * Conjugate[comp\[Alpha]\[Beta]s]]], Mod[Arg[comp\[Alpha]\[Beta]s], 2 Pi]}]; betasandtfit = Join[betas/.Table[betas[[j]]\[Rule]randomvar\[Beta]s[[j]],{j,ntones}], {tshift}];
Join[mismatchlist, ampandphs], {j,npoints}], {k, Range[1, ntones]}, {l, Range[1, ntones]}], 1]; complexamps = spectrum/.cfit["BestFitParameters"];
amplitudes = Re[Sqrt[complexamps * Conjugate[complexamps]]];
phases = Mod[Arg[complexamps], 2 Pi];
tab\[Beta]s=Table[Table[randomvar1= RandomReal[{-\[Tau]fact, \[Tau]fact}];randomvar2 = RandomReal[{-\[Tau]fact, \[Tau]fact}]; {alphasandmis, betasandtfit, amplitudes, phases}, {j,npoints}];*)
ansatz=OvertoneModelV2[ntones,{\[Eta],\[Chi]1,\[Chi]2},t0,"Fit\[Alpha]"->{},"Fit\[Tau]"->combinations[[k]],"ModesData"->Modedata]/.ToExpression["\[Beta]"<>ToString[combinations[[k]][[1]]]]->randomvar1/.ToExpression["\[Beta]"<>ToString[combinations[[k]][[2]]]] -> randomvar2;
tabvars=Table[
randomvar\[Alpha]s= RandomReal[{-\[Omega]fact, \[Omega]fact}, ntones];
randomvar\[Beta]s = RandomReal[{-\[Omega]fact, \[Omega]fact}, ntones];
ansatz=OvertoneModelV2[ntones,{\[Eta],\[Chi]1,\[Chi]2},t0,"Fit\[Alpha]"->Range[1, ntones],"Fit\[Tau]"->Range[1, ntones],"ModesData"->Modedata]
/.Table[alphas[[i]]->randomvar\[Alpha]s[[i]],{i,ntones}]/.Table[betas[[j]]->randomvar\[Beta]s[[j]],{j,ntones}];
cfit=NonlinearModelFit[data,ansatz,spectrum,t];
cfitd=Transpose[{data[[All,1]],Normal[cfit]/.t->data[[All,1]]}];
alphasandmis = Join[alphas/.Table[alphas[[i]]->randomvar\[Alpha]s[[i]],{i,ntones}], {1-EasyMatchT[data,cfitd,t0,t0+90]}];
(* This extra step is to make sure everything's correct, and also to make the output a uniform shape *)
betasandtfit = Join[betas/.Table[betas[[j]]->randomvar\[Beta]s[[j]],{j,ntones}], {tshift}];
complexamps = spectrum/.cfit["BestFitParameters"];
amplitudes = Re[Sqrt[complexamps * Conjugate[complexamps]]];
phases = Mod[Arg[complexamps], 2 Pi];
{alphasandmis, betasandtfit, amplitudes, phases}, {j,npoints}];
tabvars1=Table[
randomvar\[Alpha]s= RandomReal[{-\[Omega]fact, \[Omega]fact}, ntones];
randomvar\[Beta]s = RandomReal[{-\[Omega]fact, \[Omega]fact}, ntones];
ansatz=OvertoneModelV2[ntones,{\[Eta],\[Chi]1,\[Chi]2},tmax,"Fit\[Alpha]"->Range[1, ntones],"Fit\[Tau]"->Range[1, ntones],"ModesData"->Modedata]
/.Table[alphas[[i]]->randomvar\[Alpha]s[[i]],{i,ntones}]/.Table[betas[[j]]->randomvar\[Beta]s[[j]],{j,ntones}];
cfit=NonlinearModelFit[data,ansatz,spectrum,t]; cfit=NonlinearModelFit[data,ansatz,spectrum,t];
cfitd=Transpose[{data[[All,1]],Normal[cfit]/.t->data[[All,1]]}]; cfitd=Transpose[{data[[All,1]],Normal[cfit]/.t->data[[All,1]]}];
comp\[Beta]s = spectrum/.cfit["BestFitParameters"]; alphasandmis = Join[alphas/.Table[alphas[[i]]->randomvar\[Alpha]s[[i]],{i,ntones}], {1-EasyMatchT[data,cfitd,t0,t0+90]}];
mismatchlist = {{randomvar1, randomvar2}, combinations[[k]], {tshift, 1-EasyMatchT[data,cfitd,t0,t0+90]}}; (* This extra step is to make sure everything's correct, and also to make the output a uniform shape *)
ampandphs = Transpose[{Re[Sqrt[comp\[Beta]s * Conjugate[comp\[Beta]s]]], Mod[Arg[comp\[Beta]s], 2 Pi]}]; betasandtfit = Join[betas/.Table[betas[[j]]->randomvar\[Beta]s[[j]],{j,ntones}], {tshift}];
Join[mismatchlist, ampandphs], {j,npoints}], {k, Length[combinations]}]; complexamps = spectrum/.cfit["BestFitParameters"];
amplitudes = Re[Sqrt[complexamps * Conjugate[complexamps]]];
phases = Mod[Arg[complexamps], 2 Pi];
{alphasandmis, betasandtfit, amplitudes, phases}, {j,npoints}];
Export[rootpath<>"plots/n="<>ToString[ntones]<>"_params.fits", params] Export[rootpath<>"plots/n="<>ToString[ntones]<>"_params.fits", params]
Export[rootpath<>"plots/n="<>ToString[ntones]<>"_as.fits", tab\[Alpha]s] Export[rootpath<>"plots/n="<>ToString[ntones]<>"_t0="<>ToString[tshift]<>"M_data.fits", tabvars]
Export[rootpath<>"plots/n="<>ToString[ntones]<>"_abs.fits", tab\[Alpha]\[Beta]s] Export[rootpath<>"plots/n="<>ToString[ntones]<>"_t0="<>ToString[tshift]<>"M_data@tmax.fits", tabvars1]
Export[rootpath<>"plots/n="<>ToString[ntones]<>"_bs.fits", tab\[Beta]s]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment