Verwenden der Ableitung der Funktion zum iterativen Zeichnen von Steigungslinien

Ich mache ein Javascript-Diagramm, das die Steigung der Funktion anzeigt, wenn die Maus des Benutzers darüber fährt. Ich habe den iterativen Aspekt und den Ereignis-Listener gehandhabt, aber an diesem Punkt wurde mir klar, dass meine Algebra / mein Kalkül nicht der Aufgabe gewachsen war. Ich arbeite mit dieser Funktion:

j = X 10 + 1

Wenn der Benutzer seine Maus über die Funktion zieht, ändert sich die Steigung, also hänge ich ein Liniensegment an, um die Steigung an jedem Punkt entlang der Funktion darzustellen. Die Zeile akzeptiert 4 Attribute: [ X 1 , j 1 , X 2 , j 2 ] . Grundsätzlich dienen diese Attribute als Endpunkte für das Liniensegment. Mit Javascript ist es einfach genug, die Linie entlang zu bewegen, während der Benutzer den Mauszeiger über die Funktion im Koordinatenraum bewegt, aber die Mathematik hat mich wirklich stecken lassen. Ich habe es geschafft, die Ableitung richtig zu berechnen (hoffe ich):

D j D X = 1 2 X 10

Ich habe auch versucht, ein Bild zu zeichnen, um mir zu helfen, das Problem zu erfassen. Es hat ein wenig geholfen:

Geben Sie hier die Bildbeschreibung ein

Ich benutze eine X -Entfernung von 5 Pixel, die sich von der aktuellen Mausposition in beide Richtungen erstrecken, das gibt uns 5 + 5 = 10 Pixel. Dies liegt daran, dass dieser Wert ungefähr die gewünschte Liniengröße erzeugt. Das hilft mir auch bei der Zuordnung X 1 Und X 2 , aber ich bin mir immer noch nicht sicher, wie ich damit umgehen soll j 1 oder j 2 :

X 1 = Mausposition 5 ; j 1 = ??? X 2 = Mausposition + 5 ; j 2 = ???

Frage

Angenommen, ich habe alle Informationen, die ich von der Ableitung der Funktion benötige, wie bringe ich diese Informationen zum Tragen und löse für die auf j 1 Und j 2 der Endpunkte der Linie?

Wenn ich das Problem richtig formuliert habe, muss ich die Ableitung verwenden, um den Anstieg/Lauf zu finden und nach dem Anstieg zu lösen, vorausgesetzt, mein Lauf ist definiert, aber aus irgendeinem Grund fehlt mir die Intuition, wie man den integriert Algebra und Analysis.

Antworten (1)

Ein Problem, das ich sehen kann, ist, dass Sie bei unterschiedlichen Steigungen unterschiedliche Längen dieser Liniensegmente erhalten: Eine steilere Steigung führt zu einer längeren Linie. Wenn Sie einheitliche Liniensegmentlängen wünschen, würde ich einen anderen Ansatz empfehlen, um Ihre Endpunkte zu erhalten, vielleicht so etwas:

Gegeben

j ( X ) = X 10 + 1 , D j D X = j ' ( X ) = 1 2 X 10 , = gewünschte Leitungslänge, ( X M , j M ) = Mausposition, von der angenommen wird, dass sie sich auf dem Diagramm befindet,
Wir müssen tatsächlich den Schnittpunkt einer Linie mit einem Kreis berechnen. Die Linie wird beschrieben durch j = j M + j ' ( X M ) ( X X M ) , und der Kreis ist derjenige, der zentriert ist { X M , j M } des Radius / 2 , beschrieben von ( X X M ) 2 + ( j j M ) 2 = 2 / 4. Die Symmetrie der Situation sollte es uns ermöglichen, nur einen Schnittpunkt zu finden, aber wir können diesen möglicherweise nicht ausnutzen. In jedem Fall setzen wir eine Gleichung in die andere ein, um Schnittpunkte zu finden:
( X X M ) 2 + ( j j M ) 2 = 2 4 ( X X M ) 2 + [ j ' ( X M ) ( X X M ) ] 2 = 2 4 ( X X M ) 2 ( 1 + ( j ' ( X M ) ) 2 ) = 2 4 ( X X M ) 2 = 2 4 ( 1 + ( j ' ( X M ) ) 2 ) ( X X M ) = ± 2 1 + ( j ' ( X M ) ) 2 X = X M ± 2 1 + ( j ' ( X M ) ) 2 .
Das Plus gibt dir X 1 , sagen, und das Minus gibt Ihnen X 2 . Sie können diese Werte von stecken X in die Gleichung der Zeile oben, um das entsprechende zu finden j Werte:

j 1 , 2 = j M + j ' ( X M ) ( X 1 , 2 X M ) .

Eine kleine Vereinfachung ist möglich, wenn wir den Ausdruck for einsetzen j ' ( X ) :

X = X M ± 2 1 + ( j ' ( X M ) ) 2 X = X M ± 2 1 + 1 4 ( X M 10 ) X = X M ± 2 4 X M 39 4 X M 40 X = X M ± 2 4 X M 40 4 X M 39 .

@AdrianKister Das hilft so sehr, danke für diese tolle Antwort. Aber ich stecke mit der Lösung für y fest, nachdem ich x1 und x2 erhalten habe. Ich denke, Algebra ist mein schwaches Glied. Würde es Ihnen etwas ausmachen, eine Gleichung hinzuzufügen, die nach y gelöst ist?
nämlich, ich habe j 1 = j M + ( 10 + X 1 X M ) ( 10 X 1 + X M ) die streckenweise undefiniert zu sein scheint.
@ArashHowaida: Ich habe die Formel hinzugefügt. Die Punkte sind auf der Linie, also ist das am einfachsten zu verwenden.