Schnittpunkt von Funktionen
Verfasst: Mittwoch 8. Juli 2020, 12:12
Hallo,
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.
Im folgenden Diagramm sieht man zwei Funktionen (Diagramm über die 7. Spalte (--> blaue Funktion) der CSV-Datei und einmal über die 9. Spalte (--> orange Funktion)).
Ich möchte den Schnittpunkt der beiden Funktionen wissen wo der Pfeil hinzeigt. Wie kann ich das erreichen?

Meine Idee war folgende:
Ich denke, dass x_values so etwas wie mein Index ist. Bitte korrigiert mich, wenn dies nicht ganz korrekt ist.
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!
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!