Я работаю над отчетом лаборатории физики, и с помощью датчика я собрал огромное количество данных о том, как угол качающегося маятника меняется со временем.Выборка занимает более 3 минут и содержит более 3000 точек данных.При нанесении на график он создает синусоидальную кривую, как и должно быть.
Проблема возникает, когда я пытаюсь найти максимумы с помощью Python.Мне нужны максимумы, чтобы увидеть влияние демпфирования на маятник.Когда я запускаю следующий фрагмент кода, я получаю только 29 максимумов и знаю, что существует ~ 150 максимумов.Как я могу улучшить свой код, чтобы получить их все?
Мой алгоритм проверяет 4 точки впереди и позади контрольной точки, и если контрольная точка имеет наибольшее значение, она добавляется в массив максимумов.
Пожалуйста, обратите внимание, что я все еще начинающий в Python, поэтому, если вы используете какой-либо сложный язык, он, скорее всего, пойдет мне в голову, так что, извините за это заранее.
angle = allAngles.readlines()
maxima = [0]
def checker(number):
counter = 0
for j in range(-4, 5):
if float(angle[number + j]) <= float(angle[number]):
counter += 1
if counter == 9:
return True
for i in range(4, len(angle)-6):
if checker(i):
if float(angle[i]) != maxima[len(maxima)-1]:
maxima.append(float(angle[i]))
angleData.txt содержит следующие данные:
0
0
0.0349065850399
0.0698131700798
0.10471975512
0.13962634016
0.191986217719
0.244346095279
0.279252680319
0.331612557879
0.383972435439
0.436332312999
0.488692190558
0.541052068118
0.575958653158
0.610865238198
0.628318530718
0.645771823238
0.663225115758
0.680678408278
0.680678408278
0.698131700798
0.698131700798
0.715584993318
0.733038285838
0.733038285838
0.733038285838
0.733038285838
0.733038285838
0.733038285838
0.733038285838
0.733038285838
0.733038285838
0.733038285838
0.733038285838
0.733038285838
0.733038285838
0.750491578358
0.750491578358
0.750491578358
0.750491578358
0.767944870878
0.767944870878
0.767944870878
0.767944870878
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.785398163397
0.802851455917
0.802851455917
0.802851455917
0.802851455917
0.802851455917
0.802851455917
0.802851455917
0.802851455917
0.802851455917
0.802851455917
0.767944870878
0.698131700798
0.593411945678
0.453785605519
0.279252680319
0.0872664625997
-0.12217304764
-0.314159265359
-0.506145483078
-0.628318530718
-0.715584993318
-0.785398163397
-0.785398163397
-0.750491578358
-0.663225115758
-0.523598775598
-0.349065850399
-0.157079632679
0.0349065850399
0.244346095279
0.418879020479
0.575958653158
0.698131700798
0.750491578358
0.767944870878
0.733038285838
0.645771823238
0.506145483078
0.349065850399
0.157079632679
-0.0523598775598
-0.261799387799
-0.436332312999
-0.593411945678
-0.715584993318
-0.785398163397
-0.802851455917
-0.767944870878
-0.698131700798
-0.575958653158
-0.418879020479
-0.226892802759
-0.0174532925199
0.174532925199
0.366519142919
0.523598775598
0.645771823238
0.733038285838
0.767944870878
0.750491578358
0.680678408278
0.558505360638
0.401425727959
0.209439510239
0.0174532925199
-0.191986217719
-0.383972435439
-0.541052068118
-0.680678408278
-0.767944870878
-0.802851455917
-0.785398163397
-0.715584993318
-0.610865238198
-0.471238898038
-0.296705972839
-0.0872664625997
0.10471975512
0.314159265359
0.471238898038
0.610865238198
0.698131700798
0.750491578358
0.750491578358
0.698131700798
0.593411945678
0.453785605519
0.279252680319
0.0872664625997
-0.12217304764
-0.314159265359
-0.488692190558
-0.628318530718
-0.733038285838
-0.785398163397
-0.785398163397
-0.750491578358
-0.645771823238
-0.523598775598
-0.349065850399
-0.157079632679
0.0523598775598
0.244346095279
0.418879020479
0.575958653158
0.680678408278
0.733038285838
0.750491578358
0.715584993318
0.628318530718
0.488692190558
0.331612557879
0.13962634016
-0.0523598775598
-0.261799387799
-0.436332312999
-0.593411945678
-0.698131700798
-0.767944870878
-0.785398163397
-0.750491578358
-0.680678408278
-0.558505360638
-0.401425727959
-0.209439510239
-0.0174532925199
0.191986217719
0.366519142919
0.523598775598
0.645771823238
0.715584993318
0.750491578358
0.733038285838
0.645771823238
0.541052068118
0.383972435439
0.191986217719
0
-0.191986217719
-0.383972435439
-0.541052068118
-0.663225115758
-0.750491578358
-0.785398163397
-0.767944870878
-0.698131700798
-0.593411945678
-0.453785605519
-0.261799387799
-0.0698131700798
0.12217304764
0.314159265359
0.471238898038
0.610865238198
0.698131700798
0.733038285838
0.733038285838
0.680678408278
0.575958653158
0.418879020479
0.244346095279
0.0523598775598
-0.13962634016
-0.331612557879
-0.506145483078
-0.628318530718
-0.733038285838
-0.767944870878
-0.767944870878
-0.715584993318
-0.628318530718
-0.488692190558
-0.314159265359
-0.12217304764
0.0698131700798
0.261799387799
0.436332312999
0.575958653158
0.663225115758
0.733038285838
0.733038285838
0.680678408278
0.593411945678
0.471238898038
0.296705972839
0.10471975512
-0.0872664625997
-0.279252680319
-0.453785605519
-0.593411945678
-0.698131700798
-0.767944870878
-0.767944870878
-0.733038285838
-0.645771823238
-0.523598775598
-0.366519142919
-0.174532925199
0.0174532925199
0.209439510239
0.383972435439
0.541052068118
0.645771823238
0.715584993318
0.733038285838
0.698131700798
0.610865238198
0.506145483078
0.331612557879
0.157079632679
-0.0349065850399
-0.226892802759
-0.401425727959
-0.558505360638
-0.680678408278
-0.750491578358
-0.767944870878
-0.750491578358
-0.663225115758
-0.558505360638
-0.401425727959
-0.226892802759
-0.0349065850399
0.157079632679
0.349065850399
0.506145483078
0.610865238198
0.698131700798
0.733038285838
0.698131700798
0.645771823238
0.523598775598
0.383972435439
0.209439510239
0.0174532925199
-0.191986217719
-0.366519142919
-0.523598775598
-0.645771823238
-0.733038285838
-0.767944870878
-0.750491578358
-0.680678408278
-0.593411945678
-0.436332312999
-0.261799387799
-0.0698131700798
0.12217304764
0.296705972839
0.453785605519
0.593411945678
0.680678408278
0.715584993318
0.715584993318
0.645771823238
0.558505360638
0.418879020479
0.244346095279
0.0523598775598
-0.13962634016
-0.331612557879
-0.488692190558
-0.610865238198
-0.715584993318
-0.750491578358
-0.750491578358
-0.698131700798
-0.610865238198
-0.471238898038
-0.314159265359
-0.12217304764
0.0698131700798
0.261799387799
0.418879020479
0.558505360638
0.645771823238
0.698131700798
0.715584993318
0.663225115758
0.575958653158
0.436332312999
0.279252680319
0.10471975512
-0.10471975512
-0.279252680319
-0.453785605519
-0.593411945678
-0.698131700798
-0.750491578358
-0.750491578358
-0.715584993318
-0.628318530718
-0.506145483078
-0.349065850399
-0.157079632679
0.0349065850399
0.226892802759
0.383972435439
0.523598775598
0.628318530718
0.698131700798
0.715584993318
0.680678408278
0.593411945678
0.471238898038
0.314159265359
0.13962634016
-0.0523598775598
-0.244346095279
-0.418879020479
-0.558505360638
-0.663225115758
-0.733038285838
-0.750491578358
-0.715584993318
-0.645771823238
-0.523598775598
-0.366519142919
-0.191986217719
0
0.174532925199
0.349065850399
0.506145483078
0.610865238198
0.680678408278
0.698131700798
0.680678408278
0.610865238198
0.488692190558
0.349065850399
0.174532925199
-0.0174532925199
-0.209439510239
-0.383972435439
-0.523598775598
-0.645771823238
-0.715584993318
-0.750491578358
-0.733038285838
-0.663225115758
-0.558505360638
-0.401425727959
-0.226892802759
-0.0523598775598
0.13962634016
0.314159265359
0.471238898038
0.593411945678
0.663225115758
0.698131700798
0.680678408278
0.628318530718
0.523598775598
0.366519142919
0.209439510239
0.0174532925199
-0.174532925199
-0.349065850399
-0.506145483078
-0.628318530718
-0.698131700798
-0.733038285838
-0.733038285838
-0.663225115758
-0.575958653158
-0.436332312999
-0.261799387799
-0.0872664625997
0.10471975512
0.296705972839
0.436332312999
0.558505360638
0.645771823238
0.698131700798
0.680678408278
0.628318530718
0.541052068118
0.401425727959
0.226892802759
0.0523598775598
-0.13962634016
-0.314159265359
-0.471238898038
-0.593411945678
-0.680678408278
-0.733038285838
-0.733038285838
-0.680678408278
-0.593411945678
-0.453785605519
-0.296705972839
-0.10471975512
0.0698131700798
0.261799387799
0.418879020479
0.541052068118
0.628318530718
0.680678408278
0.680678408278
0.645771823238
0.541052068118
0.418879020479
0.261799387799
0.0872664625997
-0.10471975512
-0.279252680319
-0.453785605519
-0.575958653158
-0.680678408278
-0.715584993318
-0.733038285838
-0.680678408278
-0.593411945678
-0.471238898038
-0.314159265359
-0.13962634016
0.0523598775598
0.226892802759
0.383972435439
0.523598775598
0.610865238198
0.680678408278
0.680678408278
0.645771823238
0.558505360638
0.436332312999
0.279252680319
0.10471975512
-0.0698131700798
-0.261799387799
-0.418879020479
-0.558505360638
-0.663225115758
-0.715584993318
-0.733038285838
-0.698131700798
-0.610865238198
-0.488692190558
-0.331612557879
-0.157079632679
0.0174532925199
0.191986217719
0.366519142919
0.506145483078
0.610865238198
0.663225115758
0.680678408278
0.645771823238
0.575958653158
0.453785605519
0.314159265359
0.13962634016
-0.0523598775598
-0.226892802759
-0.401425727959
-0.541052068118
-0.645771823238
-0.698131700798
-0.715584993318
-0.698131700798
-0.628318530718
-0.506145483078
-0.366519142919
-0.191986217719
0
0.174532925199
0.349065850399
0.488692190558
0.593411945678
0.645771823238
0.680678408278
0.645771823238
0.575958653158
0.471238898038
0.331612557879
0.157079632679
-0.0174532925199
-0.209439510239
-0.366519142919
-0.523598775598
-0.628318530718
-0.698131700798
-0.715584993318
-0.698131700798
-0.628318530718
-0.523598775598
-0.383972435439
-0.209439510239
-0.0349065850399
0.157079632679
0.314159265359
0.471238898038
0.575958653158
0.645771823238
0.663225115758
0.645771823238
0.593411945678
0.488692190558
0.349065850399
0.174532925199
0
-0.191986217719
-0.349065850399
-0.506145483078
-0.610865238198
-0.680678408278
-0.715584993318
-0.698131700798
-0.628318530718
-0.541052068118
-0.401425727959
-0.226892802759
-0.0523598775598
0.12217304764
0.296705972839
0.436332312999
0.558505360638
0.628318530718
0.663225115758
0.645771823238
0.593411945678
0.488692190558
0.349065850399
0.191986217719
0.0174532925199
-0.157079632679
-0.331612557879
-0.488692190558
-0.593411945678
-0.680678408278
-0.715584993318
-0.698131700798
-0.645771823238
-0.541052068118
-0.401425727959
-0.244346095279
-0.0698131700798
0.10471975512
0.279252680319
0.436332312999
0.541052068118
0.628318530718
0.663225115758
0.645771823238
0.593411945678
0.506145483078
0.366519142919
0.209439510239
0.0349065850399
-0.13962634016
-0.314159265359
-0.471238898038
-0.575958653158
-0.663225115758
-0.698131700798
-0.698131700798
-0.645771823238
-0.558505360638
-0.418879020479
-0.261799387799
-0.0872664625997
0.0872664625997
0.261799387799
0.418879020479
0.523598775598
0.610865238198
0.645771823238
0.645771823238
0.593411945678
0.506145483078
0.383972435439
0.226892802759
0.0523598775598
-0.12217304764
-0.296705972839
-0.453785605519
-0.575958653158
-0.663225115758
-0.698131700798
-0.698131700798
-0.645771823238
-0.558505360638
-0.436332312999
-0.279252680319
-0.10471975512
0.0698131700798
0.244346095279
0.401425727959
0.523598775598
0.610865238198
0.645771823238
0.645771823238
0.610865238198
0.523598775598
0.383972435439
0.244346095279
0.0698131700798
-0.10471975512
-0.279252680319
-0.436332312999
-0.558505360638
-0.645771823238
-0.698131700798
-0.698131700798
-0.645771823238
-0.558505360638
-0.436332312999
-0.296705972839
-0.12217304764
0.0523598775598
0.226892802759
0.383972435439
0.506145483078
0.593411945678
0.645771823238
0.645771823238
0.610865238198
0.523598775598
0.401425727959
0.244346095279
0.0872664625997
-0.10471975512
-0.261799387799
-0.418879020479
-0.541052068118
-0.628318530718
-0.680678408278
-0.698131700798
-0.645771823238
-0.575958653158
-0.453785605519
-0.296705972839
-0.12217304764
0.0523598775598
0.209439510239
0.366519142919
0.488692190558
0.593411945678
0.628318530718
0.645771823238
0.610865238198
0.523598775598
0.401425727959
0.261799387799
0.0872664625997
-0.0872664625997
-0.261799387799
-0.401425727959
-0.541052068118
-0.628318530718
-0.680678408278
-0.680678408278
-0.645771823238
-0.575958653158
-0.453785605519
-0.314159265359
-0.13962634016
0.0349065850399
0.209439510239
0.366519142919
0.488692190558
0.575958653158
0.628318530718
0.645771823238
0.610865238198
0.523598775598
0.418879020479
0.261799387799
0.10471975512
-0.0698131700798
-0.244346095279
-0.401425727959
-0.523598775598
-0.628318530718
-0.680678408278
-0.680678408278
-0.645771823238
-0.575958653158
-0.453785605519
-0.314159265359
-0.157079632679
0.0174532925199
0.191986217719
0.349065850399
0.471238898038
0.575958653158
0.628318530718
0.628318530718
0.610865238198
0.523598775598
0.418879020479
0.279252680319
0.10471975512
-0.0698131700798
-0.244346095279
-0.383972435439
-0.523598775598
-0.610865238198
-0.663225115758
-0.680678408278
-0.645771823238
-0.575958653158
-0.453785605519
-0.314159265359
-0.157079632679
0.0174532925199
0.191986217719
0.349065850399
0.471238898038
0.558505360638
0.610865238198
0.628318530718
0.593411945678
0.523598775598
0.418879020479
0.279252680319
0.12217304764
-0.0523598775598
-0.226892802759
-0.383972435439
-0.506145483078
-0.610865238198
-0.663225115758
-0.680678408278
-0.645771823238
-0.575958653158
-0.471238898038
-0.331612557879
-0.157079632679
0.0174532925199
0.174532925199
0.331612557879
0.453785605519
0.558505360638
0.610865238198
0.628318530718
0.593411945678
0.523598775598
0.418879020479
0.279252680319
0.12217304764
-0.0523598775598
-0.226892802759
-0.366519142919
-0.506145483078
-0.593411945678
-0.663225115758
-0.680678408278
-0.645771823238
-0.575958653158
-0.471238898038
-0.331612557879
-0.174532925199
0
0.174532925199
0.331612557879
0.453785605519
0.558505360638
0.610865238198
0.628318530718
0.593411945678
0.523598775598
0.418879020479
0.279252680319
0.12217304764
-0.0523598775598
-0.209439510239
-0.366519142919
-0.506145483078
-0.593411945678
-0.645771823238
-0.663225115758
-0.645771823238
-0.575958653158
-0.471238898038
-0.331612557879
-0.174532925199
0
0.174532925199
0.314159265359
0.453785605519
0.541052068118
0.610865238198
0.628318530718
0.593411945678
0.523598775598
0.418879020479
0.279252680319
0.12217304764
-0.0349065850399
-0.209439510239
-0.366519142919
-0.488692190558
-0.593411945678
-0.645771823238
-0.663225115758
-0.645771823238
-0.575958653158
-0.471238898038
-0.331612557879
-0.174532925199
0
0.157079632679
0.314159265359
0.453785605519
0.541052068118
0.593411945678
0.610865238198
0.593411945678
0.523598775598
0.418879020479
0.279252680319
0.12217304764
-0.0349065850399
-0.209439510239
-0.366519142919
-0.488692190558
-0.593411945678
-0.645771823238
-0.663225115758
-0.628318530718
-0.575958653158
-0.471238898038
-0.331612557879
-0.174532925199
0
0.157079632679
0.314159265359
0.436332312999
0.541052068118
0.593411945678
0.610865238198
0.593411945678
0.523598775598
0.418879020479
0.279252680319
0.12217304764
-0.0349065850399
-0.209439510239
-0.366519142919
-0.488692190558
-0.575958653158
-0.645771823238
-0.663225115758
-0.628318530718
-0.558505360638
-0.453785605519
-0.331612557879
-0.174532925199
0
0.157079632679
0.314159265359
0.436332312999
0.541052068118
0.593411945678
0.610865238198
0.575958653158
0.523598775598
0.418879020479
0.279252680319
0.12217304764
-0.0349065850399
-0.209439510239
-0.366519142919
-0.488692190558
-0.575958653158
-0.645771823238
-0.645771823238
-0.628318530718
-0.558505360638
-0.453785605519
-0.314159265359
-0.174532925199
0
0.157079632679
0.314159265359
0.436332312999
0.541052068118
0.593411945678
0.610865238198
0.575958653158
0.506145483078
0.401425727959
0.279252680319
0.12217304764
-0.0523598775598
-0.209439510239
-0.366519142919
-0.488692190558
-0.575958653158
-0.628318530718
-0.645771823238
-0.628318530718
-0.558505360638
-0.453785605519
-0.314159265359
-0.157079632679
0
0.157079632679
0.314159265359
0.436332312999
0.523598775598
0.593411945678
0.593411945678
0.575958653158
0.506145483078
0.401425727959
0.261799387799
0.12217304764
-0.0523598775598
-0.209439510239
-0.366519142919
-0.488692190558
-0.575958653158
-0.628318530718
-0.645771823238
-0.610865238198
-0.558505360638
-0.453785605519
-0.314159265359
-0.157079632679
0
0.174532925199
0.314159265359
0.436332312999
0.523598775598
0.575958653158
0.593411945678
0.575958653158
0.506145483078
0.401425727959
0.261799387799
0.10471975512
-0.0523598775598
-0.209439510239
-0.366519142919
-0.488692190558
-0.575958653158
-0.628318530718
-0.645771823238
-0.610865238198
-0.541052068118
-0.436332312999
-0.296705972839
-0.157079632679
0.0174532925199
0.174532925199
0.314159265359
0.436332312999
0.523598775598
0.575958653158
0.593411945678
0.558505360638
0.488692190558
0.383972435439
0.261799387799
0.10471975512
-0.0523598775598
-0.226892802759
-0.366519142919
-0.488692190558
-0.575958653158
-0.628318530718
-0.645771823238
-0.610865238198
-0.541052068118
-0.436332312999
-0.296705972839
-0.13962634016
0.0174532925199
0.174532925199
0.314159265359
0.436332312999
0.523598775598
0.575958653158
0.593411945678
0.558505360638
0.488692190558
0.383972435439
0.244346095279
0.10471975512
-0.0698131700798
-0.226892802759
-0.366519142919
-0.488692190558
-0.575958653158
-0.628318530718
-0.628318530718
-0.593411945678
-0.523598775598
-0.418879020479
-0.296705972839
-0.13962634016
0.0174532925199
0.174532925199
0.331612557879
0.436332312999
0.523598775598
0.575958653158
0.593411945678
0.558505360638
0.488692190558
0.366519142919
0.244346095279
0.0872664625997
-0.0698131700798
-0.226892802759
-0.366519142919
-0.488692190558
-0.575958653158
-0.628318530718
-0.628318530718
-0.593411945678
-0.523598775598
-0.418879020479
-0.279252680319
-0.12217304764
0.0349065850399
0.191986217719
0.331612557879
0.453785605519
0.523598775598
0.575958653158
0.575958653158
0.541052068118
0.471238898038
0.366519142919
0.226892802759
0.0698131700798
-0.0872664625997
-0.244346095279
-0.383972435439
-0.488692190558
-0.575958653158
-0.628318530718
-0.628318530718
-0.593411945678
-0.506145483078
-0.401425727959
-0.261799387799
-0.12217304764
0.0523598775598
0.191986217719
0.331612557879
0.453785605519
0.523598775598
0.575958653158
0.575958653158
0.541052068118
0.471238898038
0.349065850399
0.226892802759
0.0698131700798
-0.0872664625997
-0.244346095279
-0.383972435439
-0.488692190558
-0.575958653158
-0.610865238198
-0.628318530718
-0.575958653158
-0.506145483078
-0.401425727959
-0.261799387799
-0.10471975512
0.0523598775598
0.209439510239
0.349065850399
0.453785605519
0.523598775598
0.575958653158
0.575958653158
0.523598775598
0.453785605519
0.349065850399
0.209439510239
0.0523598775598
-0.10471975512
-0.261799387799
-0.383972435439
-0.506145483078
-0.575958653158
-0.610865238198
-0.610865238198
-0.575958653158
-0.488692190558
-0.383972435439
-0.244346095279
-0.0872664625997
0.0698131700798
0.209439510239
0.349065850399
0.453785605519
0.541052068118
0.575958653158
0.558505360638
0.523598775598
0.436332312999
0.331612557879
0.191986217719
0.0349065850399
-0.12217304764
-0.261799387799
-0.401425727959
-0.506145483078
-0.575958653158
-0.610865238198
-0.610865238198
-0.558505360638
-0.488692190558
-0.366519142919
-0.226892802759
-0.0872664625997
0.0698131700798
0.226892802759
0.366519142919
0.471238898038
0.541052068118
0.558505360638
0.558505360638
0.523598775598
0.436332312999
0.314159265359
0.174532925199
0.0349065850399
-0.12217304764
-0.279252680319
-0.401425727959
-0.506145483078
-0.575958653158
-0.610865238198
-0.610865238198
-0.558505360638
-0.471238898038
-0.349065850399
-0.226892802759
-0.0698131700798
0.0872664625997
0.244346095279
0.366519142919
0.471238898038
0.541052068118
0.558505360638
0.558505360638
0.506145483078
0.418879020479
0.296705972839
0.157079632679
0.0174532925199
-0.13962634016
-0.296705972839
-0.418879020479
-0.523598775598
-0.575958653158
-0.610865238198
-0.593411945678
-0.541052068118
-0.453785605519
-0.349065850399
-0.209439510239
-0.0523598775598
0.10471975512
0.244346095279
0.366519142919
0.471238898038
0.541052068118
0.558505360638
0.541052068118
0.488692190558
0.401425727959
0.296705972839
0.157079632679
0
-0.157079632679
-0.296705972839
-0.418879020479
-0.523598775598
-0.575958653158
-0.610865238198
-0.593411945678
-0.541052068118
-0.453785605519
-0.331612557879
-0.191986217719
-0.0349065850399
0.12217304764
0.261799387799
0.383972435439
0.471238898038
0.541052068118
0.558505360638
0.541052068118
и более, но я был ограничен этим сообщением