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
Branches
No related tags found
No related merge requests found
......@@ -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";
ntones=1;
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???) *)
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;
\[Tau]fact=0.1;
params = {tshift, ntones, \[Omega]fact, \[Tau]fact}
combinations = DeleteCases[Tuples[Range[1, ntones],2],Alternatives@@Subsets[Reverse[Range[0, ntones]],{2}]]
(* Change them accordingly *)
(*Notebook directory*)
notdir=rootpath<>"code/";
......@@ -130,44 +131,69 @@ Print["Tag = ",tag=("alternative-names"/.metadata)[[2]]]
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&];
tab\[Alpha]s=Table[Table[randomvar1= RandomReal[{-\[Omega]fact, \[Omega]fact}];randomvar2 = RandomReal[{-\[Omega]fact, \[Omega]fact}];
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;
cfit=NonlinearModelFit[data,ansatz,spectrum,t];
cfitd=Transpose[{data[[All,1]],Normal[cfit]/.t->data[[All,1]]}];
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]}];
(*tmax=TimeOfMaximum[sxsrhs[[1]]];
t01=tmax
mysxscase22modeRD=Select[sxsrhs[[1]],#[[1]]\[GreaterEqual] tmax-25&];
data1 = Select[mysxscase22modeRD, #[[1]]\[GreaterEqual]tmax+tshift&]*)
tab\[Alpha]\[Beta]s=Flatten[Table[Table[randomvar1= RandomReal[{-\[Omega]fact, \[Omega]fact}];randomvar2 = RandomReal[{-\[Tau]fact, \[Tau]fact}];
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;
(*tabvars=Table[
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];
cfitd=Transpose[{data[[All,1]],Normal[cfit]/.t->data[[All,1]]}];
comp\[Alpha]\[Beta]s = spectrum/.cfit["BestFitParameters"];
mismatchlist = {{randomvar1, randomvar2}, {k, l}, {tshift, 1-EasyMatchT[data,cfitd,t0,t0+90]}};
ampandphs = Transpose[{Re[Sqrt[comp\[Alpha]\[Beta]s * Conjugate[comp\[Alpha]\[Beta]s]]], Mod[Arg[comp\[Alpha]\[Beta]s], 2 Pi]}];
Join[mismatchlist, ampandphs], {j,npoints}], {k, Range[1, ntones]}, {l, Range[1, ntones]}], 1];
tab\[Beta]s=Table[Table[randomvar1= RandomReal[{-\[Tau]fact, \[Tau]fact}];randomvar2 = RandomReal[{-\[Tau]fact, \[Tau]fact}];
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;
alphasandmis = Join[alphas/.Table[alphas[[i]]\[Rule]randomvar\[Alpha]s[[i]],{i,ntones}], {1-EasyMatchT[data,cfitd,tmax+19,tmax+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]]\[Rule]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}];*)
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];
cfitd=Transpose[{data[[All,1]],Normal[cfit]/.t->data[[All,1]]}];
comp\[Beta]s = spectrum/.cfit["BestFitParameters"];
mismatchlist = {{randomvar1, randomvar2}, combinations[[k]], {tshift, 1-EasyMatchT[data,cfitd,t0,t0+90]}};
ampandphs = Transpose[{Re[Sqrt[comp\[Beta]s * Conjugate[comp\[Beta]s]]], Mod[Arg[comp\[Beta]s], 2 Pi]}];
Join[mismatchlist, ampandphs], {j,npoints}], {k, Length[combinations]}];
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}];
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]<>"_abs.fits", tab\[Alpha]\[Beta]s]
Export[rootpath<>"plots/n="<>ToString[ntones]<>"_bs.fits", tab\[Beta]s]
Export[rootpath<>"plots/n="<>ToString[ntones]<>"_t0="<>ToString[tshift]<>"M_data.fits", tabvars]
Export[rootpath<>"plots/n="<>ToString[ntones]<>"_t0="<>ToString[tshift]<>"M_data@tmax.fits", tabvars1]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment