WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

(mehrdimensionale) lineare Interpolation

 

meso
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 23.11.15
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 24.11.2015, 11:25     Titel: (mehrdimensionale) lineare Interpolation
  Antworten mit Zitat      
Hey,

ich beschäftige mich momentan mit dynamischer Programmierung in der Regelungstechnik. Dieser Frage lässt sich aber (hoffentlich) auch ohne Kenntnis der Regelungstechnik beantworten;)


Zu meinem Problem:
Ich habe einen diskreten Zustandsraum (abhängig von 4 Zustandsgrößen (X1,X2,X3,X4)), an dem ich an festen Stützstellen die Güte bestimmt habe. Der Folgezustand (x_k_1) befindet sich nicht exakt auf den Stützstellen, also will ich ihn linear Interpolieren. Ich habe jeweils immer den nächst kleineren Wert und den nächst größeren Wert zum Folgezustand zur Verfügung.

Im 1D bzw. 2D - Fall habe ich dies mit interp1/2 gelöst. Für diesen Fall müsste es mit interpn funktionieren. Leider ist mir nicht ganz klar wie ich den Vektor V aufbauen muss.

Code:

IX1 = [X1(min_X1) X1(max_X1)];
IX2 = [X2(min_X2) X2(max_X2)];
IX3 = [X3(min_X3) X3(max_X3)];
IX4 = [X4(min_X4) X4(max_X4)];

V = [J_opt(min_X4,xk3,xk2,xk1) J_opt(max_X4,xk3,xk2,xk1);J_opt(xk4,min_X3,xk2,xk1) J_opt(xk4,max_X3,xk2,xk1);J_opt(xk4,xk3,min_X2,xk1) J_opt(xk4,xk3,min_X2,xk1);J_opt(xk4,xk3,xk2,min_X1) J_opt(xk4,xk3,xk2,max_X1)];

interpn(IX4,IX3,IX2,IX1,V,x_k_1{uk,xk4,xk3,xk2,xk1})
 


Wenn ich die Doku jedoch richtig verstanden habe, muss eig. size(V)=2 2 2 2 sein. Jedoch weiß ich nicht wie diese Matrix aufgebaut sein muss.

Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.11.2015, 20:47     Titel:
  Antworten mit Zitat      
Hallo,

es ist schwierig für mich zu sagen, wie dein V nun korrekt aussehen muss.

Erstellt werden können mehrdimensionale Matrizen stückweise, z.B. in einer for-Schleife:

Code:
A = zeros(2,2,2,2);
for I = 1:2
for J = 1:2
A(:, :, I, J) = rand(2,2);
end
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
meso
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 23.11.15
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 25.11.2015, 09:50     Titel:
  Antworten mit Zitat      
Erst einmal vielen Dank für deine Antwort!

Die Matrix V muss ja aus einer Kombination von

Code:


J_opt(min_X4,min_X3,min_X2,min_X1)
J_opt(max_X4,min_X3,min_X2,min_X1)
J_opt(min_X4,max_X3,min_X2,min_X1)

% etc...
 


bestehen.

Nur in welcher "Reihenfolge" ist mir nicht klar.

Ohne interpn wäre der Ansatz das totale Differenzial zur linearen Approximation zu bilden...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.11.2015, 21:57     Titel:
  Antworten mit Zitat      
Hallo,

das Naheliegende wäre, dass die Dimensionen in der gleichen Reihenfolge sind wie die Eingabeargumente. Und siehe da, so steht's auch in der Doku:

Zitat:
If X1,X2,...,Xn are grid vectors, then V is an array whose ith dimension is the same length as grid vector Xi, where i= 1,2,...n.


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.