2017-03-15 1 views
0

ich einige Daten wie interesting_data =Matlab, wie die Ableitung einer pchip Interpolationsfunktion erhalten, basierend auf einigen diskreten Punkten

-0.5665 -0.5329 -0.2251 0.2251 0.5329 0.5689 

Es ist offensichtlich, gibt es einen Nulldurchgang zwischen dem Index 3 und 4 gefunden: Ich kann diese Funktion verwenden, um den Nulldurchgangspunkt der Pchip-Interpolation zu erhalten.

Also ich glaube, Matlab haben eine Hinterfunktion für die Pchip-Interpolation zwischen [3,4]. Angenommen, das Pchip-Modul erzeugt die Gleichung y = a x^2 + b x + C, x ist innerhalb von [3,4 [oder ähnlichem. Ich hoffe, das Formular zu kennen, dann kann ich die Ableitung an der Nulldurchgangsposition berechnen, in diesem Fall x = 3,5. Gibt es eine Möglichkeit, das zu tun? Oder irgendeine Funktion, um die Ableitung direkt von der versteckten Gleichung zu erzählen?

Antwort

0

Warum nicht nur sehen, wenn das Zeichen kippt. Hier ist Ihr Array und Zeichen:

array =[ -0.5665 -0.5329 -0.2251 0.2251 0.5329 0.5689]; 

sign(array) 
ans = 
    -1 -1 -1  1  1  1 

Wenn das Vorzeichen wechselt, wird er zurückkehren 2 oder -2

diff(sign(array)) 
ans = 
    0  0  2  0  0 

So finden nur die nonzeros

find(abs(diff(sign(array)))) 
ans = 
    3 

Versuchen wir es für eine andere Array

array=randn(1,10) 
array = 
      1.42837429557213   1.40677399588789   0.257616732589725   -0.93068654061524   0.391997711945428   1.53494945223268   -1.03683690895487   0.126547794228052  -0.394102426308772  -0.562889126426436 

diff(sign(array)) 
ans = 
    0  0 -2  2  0 -2  2 -2  0 

find(diff(sign(array))) 
ans = 
    3  4  6  7  8 
+0

Vielen Dank Ozcan. Aber meine Frage betrifft die Ableitung. Angenommen, das Pchip-Modul erzeugt ein Modell wie y = a * x^2 + b * x + C oder etwas ähnliches. Ich hoffe, das Formular zu kennen, dann kann ich die Ableitung an der Nulldurchgangsposition berechnen, in diesem Fall x = 3,5. –

Verwandte Themen