筋力強化のためのトレーニングプログラム提示コード(ピリオダイゼーション②)
今回は,ピリオダイゼーションの考えを基に,スクワット,ベンチプレス,デッドリフト,オーバーヘッドプレス(OHP)の3種目を鍛えるトレーニングプログラム提示コードを紹介します.
以前に作成したトレーニングプログラム提示コードの改良版になります.
前回のプログラムに付け加えた点としては,
①・・・OHPのトレーニングプログラムを作成したこと
②・・・筋力強化期間(strength development期)にて,総負荷量をグラフにより視覚的に図示すること
です.
トレーニングの内容は,
day1:スクワット+ベンチプレス
day2:OHP
day3:デッドリフト+Pausedデッドリフト
day4:スクワット+Pausedスクワット
day5:ベンチプレス+Narrowベンチプレス+OHP
となっています.
1week当たりに5日のトレーニングをするプランを立てました.
1. 最大重量の設定
#Max重量,スクワット(SQ),ベンチプレス(BN),デッドリフト(DL),オーバーヘッドプレス(OHP)
SQ=220
BN=150
DL=235
OHP=80
まずは,それぞれの種目における最大重量の数値を入力します.
今回は,
スクワット(SQ):220 kg
ベンチプレス(BN):150 kg
デッドリフト(DL):235 kg
オーバーヘッドプレス(OHP):80 kg
を例えとして入力しています.
2. トレーニングサイクルの設定
#ライブラリーのインポート
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
#トレーニングに関する情報を入力
#トレーニング週_総数
week=10
#_adaptationの期間
week_ad=2
ins_ad=0.6 #初期の運動強度
k_ad=0.025 #週ごとに増やしたい強度(Ex. k=0.025の場合,1週間ごとに2.5%ずつ強度が上がる)
r_ad=8 #レップ数の設定
s_ad=2 #セット数の設定
#Strehngth developmentの期間
week_st=4
ins_st=0.75 #初期の運動強度
k_st=0.025 #週ごとに増やしたい強度(Ex. k=0.025の場合,1週間ごとに2.5%ずつ強度が上がる)
r_st=4 #レップ数の設定
s_st=5 #セット数の設定
#Maximum muscle strengthの期間
week_ma=2
ins_ma=0.875 #初期の運動強度
k_ma=0.025 #週ごとに増やしたい強度(Ex. k=0.025の場合,1週間ごとに2.5%ずつ強度が上がる)
r_ma=2 #レップ数の設定
s_ma=3 #セット数の設定
#deloadの期間
week_de=2
ins_de=0.6 #初期の運動強度
k_de=0.025 #週ごとに増やしたい強度(Ex. k=0.025の場合,1週間ごとに2.5%ずつ強度が上がる)
r_de=6 #レップ数の設定
s_de=2 #セット数の設定
ここでは,トレーニングサイクルに関する情報を入力します.とその前に,グラフの図示などに必要なライブラリーをインポートしておきます.
トレーニング週の総数であるweekにはトレーニング全体の期間を入力します(今回は例えとして10週のプログラミングを組むために,week=10としています).
トレーニング動作に適応する期間(adaptation期),筋力強化期間(strength development期),最大筋力強化期間(Maximum muscle strength期),回復期間(deload期)のそれぞれの期間において, 初期のトレーニング強度の設定,レップ数の設定,セット数の設定を入力します.
今回の例としては,adaptation期は2週間とし(week_ad=2),初期のトレーニング強度を最大重量の60%(ins_ad=0.6),レップ数を8回(r_ad=8),セット数を2セット(s_ad=2)としています.また,週ごとに強度を最大重量の2.5%(k_ad=0.025)ずつ増加させる設定をしています.週ごとに強度を上げたくないときには,k_ad=0を入力します.
同じように,筋力強化期間(strength development期),最大筋力強化期間(Maximum muscle strength期),回復期間(deload期)でも 初期のトレーニング強度の設定,週ごとに増加させたい強度,レップ数の設定,セット数の設定を行います.
3. トレーニングプログラムの提示
これ以降は,特に操作することはありません.「Shift+Enter」を押して,↓のコードを実行します.自動的に,トレーニングプログラムが提示されます.
#トレーニングメニューの提示_adaptation
print('_________________________________________________________________')
week_1 = 0
for i in range(1, week_ad+1):
week_1 += 1
ins_ad += k_ad
print('week'+str(week_1)+'--adaptation期')
#day1
SQd1=round(SQ*(ins_ad-k_ad))
SQr1=r_ad
SQs1=s_ad
SQd1t=SQd1*SQr1*SQs1 #総負荷量
BNd1=round(BN*(ins_ad-k_ad))
BNr1=r_ad
BNs1=s_ad+1
BNd1t=BNd1*BNr1*BNs1 #総負荷量
print('day1')
print('SQ:{}kg Single'.format(SQd1,SQr1,SQs1))
print('SQ:{}kg×Reps:{}×Sets:{}'.format(SQd1,SQr1,SQs1))
print('BN:{}kg×Reps:{}×Sets:{}'.format(BNd1,BNr1,BNs1))
print('スクワットの総負荷量:{}kg, ベンチプレスの総負荷量:{}kg'.format(SQd1t,BNd1t))
#day2
OHPd1=round(OHP*(ins_ad-k_ad))
OHPr1=r_ad
OHPs1=s_ad
OHPd1t=OHPd1*OHPr1*OHPs1 #総負荷量
print('day2')
print('OHP:{}kg×Reps:{}×Sets:{}'.format(OHPd1,OHPr1,OHPs1))
print('OHPの総負荷量:{}kg'.format(OHPd1t))
#day3
DLd1=round(DL*(ins_ad-k_ad))
DLr1=r_ad
DLs1=s_ad
DLd1t=DLd1*DLr1*DLs1 #総負荷量
PDLd1=round(DL*((ins_ad-k_ad)-0.2))
PDLr1=r_ad-2
PDLs1=s_ad-1
PDLd1t=PDLd1*PDLr1*PDLs1 #総負荷量
print('day3')
print('DL:{}kg×Reps:{}×Sets:{}'.format(DLd1,DLr1,DLs1))
print('Paused DL:{}kg×Reps:{}×Sets:{}'.format(PDLd1,PDLr1,PDLs1))
print('OHP:{}kg×Reps:{}×Sets:{}'.format(OHPd1,OHPr1,OHPs1))
print('デッドリフトの総負荷量:{}kg, Pausedデッドリフトの総負荷量:{}kg,OHPの総負荷量:{}kg'.format(DLd1t,PDLd1t,OHPd1t))
#day4
SQd1_2=round(SQ*(ins_ad-k_ad))
SQr1_2=r_ad
SQs1_2=s_ad
SQd1_2t=SQd1_2*SQr1_2*SQs1_2 #総負荷量
PSQd1_2=round(SQ*((ins_ad-k_ad)-0.2))
PSQr1_2=r_ad-2
PSQs1_2=s_ad-1
PSQd1_2t=PSQd1_2*PSQr1_2*PSQs1_2 #総負荷量
print('day4')
print('SQ:{}kg×Reps:{}×Sets:{}'.format(SQd1_2,SQr1_2,SQs1_2))
print('Paused SQ:{}kg×Reps:{}×Sets:{}'.format(PSQd1_2,PSQr1_2,PSQs1_2))
print('スクワットの総負荷量:{}kg, Pausedスクワットの総負荷量:{}kg'.format(SQd1_2t,PSQd1_2t))
#day5
BNd1_2=round(BN*(ins_ad-k_ad))
BNr1_2=r_ad
BNs1_2=s_ad+2
BNd1_2t=BNd1_2*BNr1_2*BNs1_2 #総負荷量
NBNd1_2=round(BN*((ins_ad-k_ad)-0.2))
NBNr1_2=r_ad
NBNs1_2=s_ad+2
NBNd1_2t=NBNd1_2*NBNr1_2*NBNs1_2 #総負荷量
OHPd2=round(OHP*(ins_ad-k_ad))
OHPr2=r_ad
OHPs2=s_ad
OHPd2t=OHPd1*OHPr2*OHPs2 #総負荷量
print('day5')
print('BN:{}kg×Reps:{}×Sets:{}'.format(BNd1_2,BNr1_2,BNs1_2))
print('Narrow BN:{}kg×Reps:{}×Sets:{}'.format(NBNd1_2,NBNr1_2,NBNs1_2))
print('OHP:{}kg×Reps:{}×Sets:{}'.format(OHPd2,OHPr2,OHPs2))
print('ベンチプレスの総負荷量:{}kg, ナローベンチプレスの総負荷量:{}kg,OHPの総負荷量:{}kg'.format(BNd1_2t,NBNd1_2t,OHPd2t))
print('_________________________________________________________________')
#トレーニングメニューの提示_strength development
fig, axes = plt.subplots(2, 2, figsize=(16,12))
print('_________________________________________________________________')
week_2 = 0
for i in range(1, week_st+1):
week_2 += 1
ins_st += k_st
print('week'+str(week_2+(week_ad))+'--strength development期')
#day1
SQd1=round(SQ*(ins_st-k_st))
SQr1=r_st
SQs1=s_st
SQd1t=SQd1*SQr1*SQs1 #総負荷量
BNd1=round(BN*(ins_st-k_st))
BNr1=r_st
BNs1=s_st+1
BNd1t=BNd1*BNr1*BNs1 #総負荷量
print('day1')
print('SQ:{}kg×Reps:{}×Sets:{}'.format(SQd1,SQr1,SQs1))
print('BN:{}kg×Reps:{}×Sets:{}'.format(BNd1,BNr1,BNs1))
print('スクワットの総負荷量:{}kg, ベンチプレスの総負荷量:{}kg'.format(SQd1t,BNd1t))
#day2
OHPd1=round(OHP*(ins_st-k_st))
OHPr1=r_st
OHPs1=s_st
OHPd1t=OHPd1*OHPr1*OHPs1 #総負荷量
print('day2')
print('OHP:{}kg×Reps:{}×Sets:{}'.format(OHPd1,OHPr1,OHPs1))
print('OHPの総負荷量:{}kg'.format(OHPd1t))
#day3
DLd1=round(DL*(ins_st-k_st))
DLr1=r_st
DLs1=s_st
DLd1t=DLd1*DLr1*DLs1 #総負荷量
PDLd1=round(DL*((ins_st-k_st)-0.2))
PDLr1=r_st-2
PDLs1=s_st-1
PDLd1t=PDLd1*PDLr1*PDLs1 #総負荷量
print('day3')
print('DL:{}kg×Reps:{}×Sets:{}'.format(DLd1,DLr1,DLs1))
print('Paused DL:{}kg×Reps:{}×Sets:{}'.format(PDLd1,PDLr1,PDLs1))
print('デッドリフトの総負荷量:{}kg, Pausedデッドリフトの総負荷量:{}kg,OHPの総負荷量:{}kg'.format(DLd1t,PDLd1t,OHPd1t))
#day4
SQd1_2=round(SQ*(ins_st-k_st))
SQr1_2=r_st
SQs1_2=s_st
SQd1_2t=SQd1_2*SQr1_2*SQs1_2 #総負荷量
PSQd1_2=round(SQ*((ins_st-k_st)-0.2))
PSQr1_2=r_st-2
PSQs1_2=s_st-1
PSQd1_2t=PSQd1_2*PSQr1_2*PSQs1_2 #総負荷量
print('day4')
print('SQ:{}kg×Reps:{}×Sets:{}'.format(SQd1_2,SQr1_2,SQs1_2))
print('Paused SQ:{}kg×Reps:{}×Sets:{}'.format(PSQd1_2,PSQr1_2,PSQs1_2))
print('スクワットの総負荷量:{}kg, Pausedスクワットの総負荷量:{}kg'.format(SQd1_2t,PSQd1_2t))
#day5
BNd1_2=round(BN*(ins_st-k_st))
BNr1_2=r_st
BNs1_2=s_st+2
BNd1_2t=BNd1_2*BNr1_2*BNs1_2 #総負荷量
NBNd1_2=round(BN*((ins_st-k_st)-0.2))
NBNr1_2=r_st
NBNs1_2=s_st+2
NBNd1_2t=NBNd1_2*NBNr1_2*NBNs1_2 #総負荷量
OHPd2=round(OHP*(ins_st-k_st))
OHPr2=r_st
OHPs2=s_st
OHPd2t=OHPd1*OHPr2*OHPs2 #総負荷量
print('day5')
print('BN:{}kg×Reps:{}×Sets:{}'.format(BNd1_2,BNr1_2,BNs1_2))
print('Narrow BN:{}kg×Reps:{}×Sets:{}'.format(NBNd1_2,NBNr1_2,NBNs1_2))
print('OHP:{}kg×Reps:{}×Sets:{}'.format(OHPd2,OHPr2,OHPs2))
print('ベンチプレスの総負荷量:{}kg, ナローベンチプレスの総負荷量:{}kg,OHPの総負荷量:{}kg'.format(BNd1_2t,NBNd1_2t,OHPd2t))
print('_________________________________________________________________')
#スクワットの図
axes[0][0].bar(week_2,SQd1t+SQd1_2t,color=sns.color_palette("Set1_r",1))
axes[0][0].set_ylim(SQd1t+SQd1_2t-1000, SQd1t+SQd1_2t+100)
axes[0][0].set_title("Squat",size=20)
axes[0][0].set_ylabel("Total Volume(kg)",size=15)
axes[0][0].set_xlabel("weeks",size=15)
axes[0][0].set_xticks([])
#ベンチプレスプレスの図
axes[0][1].bar(week_2,BNd1t+BNd1_2t,color=sns.color_palette("Set3_r",3))
axes[0][1].set_ylim(BNd1t+BNd1_2t-1000, BNd1t+BNd1_2t+100)
axes[0][1].set_title("Benchpress",size=20)
axes[0][1].set_ylabel("Total Volume(kg)",size=15)
axes[0][1].set_xlabel("weeks",size=15)
axes[0][1].set_xticks([])
#デッドリフトの図
axes[1][0].bar(week_2,DLd1t,color=sns.color_palette("Set1_r",5))
axes[1][0].set_ylim(DLd1t-500, DLd1t+100)
axes[1][0].set_title("Deadlift",size=20)
axes[1][0].set_ylabel("Total Volume(kg)",size=15)
axes[1][0].set_xlabel("weeks",size=15)
axes[1][0].set_xticks([])
#OHPの図
axes[1][1].bar(week_2,OHPd1t+OHPd2t,color=sns.color_palette("Set3_r",7))
axes[1][1].set_ylim(OHPd1t+OHPd2t-500, OHPd1t+OHPd2t+100)
axes[1][1].set_title("OHP",size=20)
axes[1][1].set_ylabel("Total Volume(kg)",size=15)
axes[1][1].set_xlabel("weeks",size=15)
axes[1][1].set_xticks([])
plt.tight_layout()
plt.show()
#トレーニングメニューの提示_Maximum muscle strength
print('_________________________________________________________________')
week_3 = 0
for i in range(1, week_ma+1):
week_3 += 1
ins_ma += k_ma
print('week'+str(week_3+(week_ad)+(week_st))+'--Maximum muscle strength期')
#day1
SQd1=round(SQ*(ins_ma-k_ma))
SQr1=r_ma
SQs1=s_ma
SQd1t=SQd1*SQr1*SQs1 #総負荷量
BNd1=round(BN*(ins_ma-k_ma))
BNr1=r_ma
BNs1=s_ma+1
BNd1t=BNd1*BNr1*BNs1 #総負荷量
print('day1')
print('SQ:{}kg×Reps:{}×Sets:{}'.format(SQd1,SQr1,SQs1))
print('BN:{}kg×Reps:{}×Sets:{}'.format(BNd1,BNr1,BNs1))
print('スクワットの総負荷量:{}kg, ベンチプレスの総負荷量:{}kg'.format(SQd1t,BNd1t))
#day2
OHPd1=round(OHP*(ins_ma-k_ma))
OHPr1=r_ma
OHPs1=s_ma
OHPd1t=OHPd1*OHPr1*OHPs1 #総負荷量
print('day2')
print('OHP:{}kg×Reps:{}×Sets:{}'.format(OHPd1,OHPr1,OHPs1))
print('OHPの総負荷量:{}kg'.format(OHPd1t))
#day3
DLd1=round(DL*(ins_ma-k_ma))
DLr1=r_ma
DLs1=s_ma
DLd1t=DLd1*DLr1*DLs1 #総負荷量
PDLd1=round(DL*((ins_ma-k_ma)-0.2))
PDLr1=r_ma-2
PDLs1=s_ma-1
PDLd1t=PDLd1*PDLr1*PDLs1 #総負荷量
print('day3')
print('DL:{}kg×Reps:{}×Sets:{}'.format(DLd1,DLr1,DLs1))
print('Paused DL:{}kg×Reps:{}×Sets:{}'.format(PDLd1,PDLr1,PDLs1))
print('デッドリフトの総負荷量:{}kg, Pausedデッドリフトの総負荷量:{}kg'.format(DLd1t,PDLd1t))
#day4
SQd1_2=round(SQ*(ins_ma-k_ma))
SQr1_2=r_ma
SQs1_2=s_ma
SQd1_2t=SQd1_2*SQr1_2*SQs1_2 #総負荷量
PSQd1_2=round(SQ*((ins_ma-k_ma)-0.2))
PSQr1_2=r_ma-2
PSQs1_2=s_ma-1
PSQd1_2t=PSQd1_2*PSQr1_2*PSQs1_2 #総負荷量
print('day4')
print('SQ:{}kg×Reps:{}×Sets:{}'.format(SQd1_2,SQr1_2,SQs1_2))
print('Paused SQ:{}kg×Reps:{}×Sets:{}'.format(PSQd1_2,PSQr1_2,PSQs1_2))
print('スクワットの総負荷量:{}kg, Pausedスクワットの総負荷量:{}kg'.format(SQd1_2t,PSQd1_2t))
#day5
BNd1_2=round(BN*(ins_ma-k_ma))
BNr1_2=r_ma
BNs1_2=s_ma+2
BNd1_2t=BNd1_2*BNr1_2*BNs1_2 #総負荷量
NBNd1_2=round(BN*((ins_ma-k_ma)-0.2))
NBNr1_2=r_ma
NBNs1_2=s_ma+2
NBNd1_2t=NBNd1_2*NBNr1_2*NBNs1_2 #総負荷量
OHPd2=round(OHP*(ins_ma-k_ma))
OHPr2=r_ma
OHPs2=s_ma
OHPd2t=OHPd1*OHPr2*OHPs2 #総負荷量
print('day5')
print('BN:{}kg×Reps:{}×Sets:{}'.format(BNd1_2,BNr1_2,BNs1_2))
print('Narrow BN:{}kg×Reps:{}×Sets:{}'.format(NBNd1_2,NBNr1_2,NBNs1_2))
print('OHP:{}kg×Reps:{}×Sets:{}'.format(OHPd2,OHPr2,OHPs2))
print('ベンチプレスの総負荷量:{}kg, ナローベンチプレスの総負荷量:{}kg,OHPの総負荷量:{}kg'.format(BNd1_2t,NBNd1_2t,OHPd2t))
print('_________________________________________________________________')
#トレーニングメニューの提示_deload
print('_________________________________________________________________')
week_4 = 0
for i in range(1, week_de+1):
week_4 += 1
ins_de += k_de
print('week'+str(week_4+(week_ad)+(week_st)+(week_ma))+'--deload期')
#day1
SQd1=round(SQ*(ins_de-k_de))
SQr1=r_de
SQs1=s_de
SQd1t=SQd1*SQr1*SQs1 #総負荷量
BNd1=round(BN*(ins_de-k_de))
BNr1=r_de
BNs1=s_de+1
BNd1t=BNd1*BNr1*BNs1 #総負荷量
print('day1')
print('SQ:{}kg×Reps:{}×Sets:{}'.format(SQd1,SQr1,SQs1))
print('BN:{}kg×Reps:{}×Sets:{}'.format(BNd1,BNr1,BNs1))
print('スクワットの総負荷量:{}kg, ベンチプレスの総負荷量:{}kg'.format(SQd1t,BNd1t))
#day2
OHPd1=round(OHP*(ins_de-k_de))
OHPr1=r_de
OHPs1=s_de
OHPd1t=OHPd1*OHPr1*OHPs1 #総負荷量
print('day2')
print('OHP:{}kg×Reps:{}×Sets:{}'.format(OHPd1,OHPr1,OHPs1))
print('OHPの総負荷量:{}kg'.format(OHPd1t))
#day3
DLd1=round(DL*(ins_de-k_de))
DLr1=r_de
DLs1=s_de
DLd1t=DLd1*DLr1*DLs1 #総負荷量
PDLd1=round(DL*((ins_de-k_de)-0.2))
PDLr1=r_de-2
PDLs1=s_de-1
PDLd1t=PDLd1*PDLr1*PDLs1 #総負荷量
print('day3')
print('DL:{}kg×Reps:{}×Sets:{}'.format(DLd1,DLr1,DLs1))
print('Paused DL:{}kg×Reps:{}×Sets:{}'.format(PDLd1,PDLr1,PDLs1))
print('デッドリフトの総負荷量:{}kg, Pausedデッドリフトの総負荷量:{}kg'.format(DLd1t,PDLd1t))
#day4
SQd1_2=round(SQ*(ins_de-k_de))
SQr1_2=r_de
SQs1_2=s_de
SQd1_2t=SQd1_2*SQr1_2*SQs1_2 #総負荷量
PSQd1_2=round(SQ*((ins_de-k_de)-0.2))
PSQr1_2=r_de-2
PSQs1_2=s_de-1
PSQd1_2t=PSQd1_2*PSQr1_2*PSQs1_2 #総負荷量
print('day4')
print('SQ:{}kg×Reps:{}×Sets:{}'.format(SQd1_2,SQr1_2,SQs1_2))
print('Paused SQ:{}kg×Reps:{}×Sets:{}'.format(PSQd1_2,PSQr1_2,PSQs1_2))
print('スクワットの総負荷量:{}kg, Pausedスクワットの総負荷量:{}kg'.format(SQd1_2t,PSQd1_2t))
#day5
BNd1_2=round(BN*(ins_de-k_de))
BNr1_2=r_de
BNs1_2=s_de+2
BNd1_2t=BNd1_2*BNr1_2*BNs1_2 #総負荷量
NBNd1_2=round(BN*((ins_de-k_de)-0.2))
NBNr1_2=r_de
NBNs1_2=s_de+2
NBNd1_2t=NBNd1_2*NBNr1_2*NBNs1_2 #総負荷量
OHPd2=round(OHP*(ins_de-k_de))
OHPr2=r_de
OHPs2=s_de
OHPd2t=OHPd1*OHPr2*OHPs2 #総負荷量
print('day5')
print('day5')
print('BN:{}kg×Reps:{}×Sets:{}'.format(BNd1_2,BNr1_2,BNs1_2))
print('Narrow BN:{}kg×Reps:{}×Sets:{}'.format(NBNd1_2,NBNr1_2,NBNs1_2))
print('OHP:{}kg×Reps:{}×Sets:{}'.format(OHPd2,OHPr2,OHPs2))
print('ベンチプレスの総負荷量:{}kg, ナローベンチプレスの総負荷量:{}kg,OHPの総負荷量:{}kg'.format(BNd1_2t,NBNd1_2t,OHPd2t))
print('_________________________________________________________________')
まずは,適応する期間(adaptation期)が↓のように提示されます.
次に,筋力強化期間(strength development期)が↓のように提示されます.
さらに,筋力強化期間(strength development期)では,スクワット・ベンチプレス・デッドリフト・OHPに関する総負荷量の週単位の推移がグラフで図示されるようになっています.
最大筋力強化期間(Maximum muscle strength期)は↓のように提示されます.
最後に,回復期間(deload期)は↓のように提示されます.
トレーニングプログラムの作成に関して,「こんな機能があったらいい」などの要望があれば,ぜひ教えていただきたいです!また,今回のトレーニングプログラムのコードに関して,「ここが間違っている」や「ここを修正したほうがいい」などありましたら,ぜひご教示ください!それらの意見を取り込んで,さらに質の高いトレーニングプログラム提示コードを作成したいと考えています!
本記事に紹介したコードのファイルは↓からダウンロードできます.
最後まで読んでいただきありがとうございました.
このトレーニングメニューを作成するために参考にした資料
1. TSA 9 Week Intermediate Powerlifting Program (v1.0 + v2.0)
https://liftvault.com/programs/powerlifting/tsa-9-week-intermediate-program/
2. パワーズ運動生理学 体力と競技力向上のための理論と応用
3. Periodization Training for Sports
4. Science and Practice of Strength Training
5. Peterson, M. D., Rhea, M. R., & Alvar, B. A. (2004). Maximizing strength development in athletes: a meta-analysis to determine the dose-response relationship. The Journal of Strength & Conditioning Research, 18(2), 377-382.
6. Rhea, M. R., Alvar, B. A., Burkett, L. N., & Ball, S. D. (2003). A meta-analysis to determine the dose response for strength development.