Ich möchte einen Schnittpunkt von zwei Funktionen finden.
Mein Code macht folgendes: Er arbeitet mit einer CSV-Datei, die zu Beginn eingelesen wird. Sie besteht aus 9 Spalten und etwa 150 Zeilen mit diskreten Werten. Danach werden verschiedene Berechnungen, einschließlich Integrationen, durchgeführt.
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
import math as m
import loaddataa as ld
import scipy.integrate as inte
from scipy.signal import find_peaks
import pandas as pd
# Loading values
dataListStride = ld.loadData("../Projektpraktikum Binder/Data/1 Fabienne/Test1/left foot/50cm")
indexStrideData = 2
strideData = dataListStride[indexStrideData]
#%%Calculation of the horizontal acceleration
def horizontal(yAngle, yAcceleration, xAcceleration):
a = ((m.cos(m.radians(yAngle)))*yAcceleration)-((m.sin(m.radians(yAngle)))*xAcceleration)
return a
resultsHorizontal = list()
for i in range (len(strideData)):
strideData_yAngle = strideData.to_numpy()[i, 2]
strideData_xAcceleration = strideData.to_numpy()[i, 4]
strideData_yAcceleration = strideData.to_numpy()[i, 5]
resultsHorizontal.append(horizontal(strideData_yAngle, strideData_yAcceleration, strideData_xAcceleration))
resultsHorizontal.insert(0, 0)
#x-axis "convert" into time: 100 Hertz makes 0.01 seconds
scale_factor = 0.01
x_values = np.arange(len(resultsHorizontal)) * scale_factor
heel_one=pd.Series(strideData.iloc[:,7])
plt.scatter(heel_one.idxmax()*scale_factor,heel_one.max(), color='red')
plt.scatter(heel_one.idxmin()*scale_factor,heel_one.min(), color='blue')
heel_two=pd.Series(strideData.iloc[:,9])
plt.scatter(heel_two.idxmax()*scale_factor,heel_two.max(), color='orange')
plt.scatter(heel_two.idxmin()*scale_factor,heel_two.min(), color='green')
plt.plot(x_values[:-1],strideData.iloc[:,7]) #force heel
plt.plot(x_values[:-1],strideData.iloc[:,9]) #force toe
#plt.plot(x_values, resultsHorizontal)
#%% Integration of horizontal acceleration
velocity = inte.cumtrapz(resultsHorizontal,x_values)
#print ("Die Werte der Geschwindigkeit lauten:" +str(velocity))
plt.plot(x_values[:-1], velocity)
#%% Integration of velocity
s = inte.cumtrapz(velocity, x_values[:-1])
#print ("Die Werte der Geschwindigkeit lauten:" +str(s))
plt.plot(x_values[:-2],s)
Ich möchte den Schnittpunkt der beiden Funktionen wissen wo der Pfeil hinzeigt. Wie kann ich das erreichen?
Meine Idee war folgende:
Code: Alles auswählen
x_values = heel_one[high point_index]
while strideData[x_values,7] > strideData[x_values,9] do
x_values=x_values-1
Könnte mir bitte jemand helfen, den Schnittpunkt der beiden Funktionen zu finden, auf den der rote Pfeil zeigt? Vielen Dank für die Hilfe schon mal im voraus.
Wenn eine Information fehlt, bitte bescheid sagen. Danke!