diff --git a/code/RDownScriptalphabeta.m b/code/RDownScriptalphabeta.m index 63c98f722efcc338027cfabc514565eb3355c2a2..12f4450ee8d14c47c5ec7cf5b173c4e67d32e1a4 100644 --- a/code/RDownScriptalphabeta.m +++ b/code/RDownScriptalphabeta.m @@ -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 -data=Select[sxsrhs[[1]],#[[1]]>= t0&]; +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]