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

Rechenzeit und Speicherbedarf

 

Toni88
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 23.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.05.2012, 22:20     Titel: Rechenzeit und Speicherbedarf
  Antworten mit Zitat      
Hey,
habe eine allgemeine aber dennoch wie ich finde komplizierte frage.

Es geht darum welcher Ansatz der beiden Ansätze besser für Rechenzeit und Speicher ist.Begründung wäre natürlich super!

1.
-Man habe eine beliebige n x m Matrix die für jeden Punkt auf einem Gitter einen wert ... speichert
-in der Matrix sind variablen für die Funktion f(...)=z gespeichert
-die Funktion ist für jeden Punkt exakt berechenbar
-daraus irgendwie(wie am besten ? schleifen?)eine Matrix mit den werten z für das Gitter generieren

2
-Man hat eine allgemeine Matrix die die Funktionswerte von z in einem relevanten Gebiet mit gewissen Schrittweiten beschreibt.
-jetzt wird das ganze mit der eingangsmatrix über Interpolation gelöst?ist das besser oder nur unnötig kompliziert?
-daraus irgendwie(wie am besten ? schleifen?)eine Matrix mit den werten z für das Gitter generieren

Wäre für jeden Rat dankbar wenn man das versteht was ich da schreibe Smile
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.05.2012, 09:43     Titel:
  Antworten mit Zitat      
Hallo,

ich zumindest verstehe das nicht.

Was ist eine "allgemeine Matrix"? Wo ist der entscheidende Unterschied zwischen den beiden Ansätzen?

Zudem sollte man auch immer die Größe des Problems (z.B. hier: in welcher Größenordnung sind m und n?) berücksichtigen.

Wenn der Aufwand vertretbar ist, kann man auch mal beides implementieren und vergleichen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 23.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.05.2012, 12:00     Titel:
  Antworten mit Zitat      
danke für deine Antwort

ich versuche es mal anders.

-Die Matrizen sind in etwa so (300x50) bis vlt maximal um es mal genauer zu rechnen 600x100
Der unterschied:
Bei dem einen verfahren wird für jede stelle der Ergebnismatrix interpoliert um an seine Ergebnisse zu komme
Bei dem anderen verfahren wird über eine analytische Gleichung(zb.exp(x)*log(y)...eigentlich nichts wildes) für jedes Element der wert in der Ergebnismatrix berechnet
das ganze soll über schleifen laufen, oder kann man das eleganter lösen?

kurz interpolieren vs. Gleichung lösen Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 26.05.2012, 12:06     Titel:
  Antworten mit Zitat      
Hallo,

wenn du eine Formel hast, wird das wohl schneller sein. Wenn du keine hast oder es einen Aufwand bedeutet, sie zu bekommen: interpolieren.

Und wie gesagt: im Zweifelsfall beides testen.
Die Matrizen sind jedenfalls so oder so nicht so groß, dass ich mir um die Laufzeit größere Sorgen machen würde.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 27.05.2012, 13:02     Titel:
  Antworten mit Zitat      
Hallo Toni88,

Die Interpolation ist zwar mathematisch trivial, computer-technisch aber nicht. So kann es kommen, dass eine handgestricke Methode zur 1D-Interpolation 30 mal schneller als INTERP1 sein kann, wobei ein C-Mex-Funktion auch den Faktor 125 herausschinden kann, siehe http://www.mathworks.com/matlabcent.....eexchange/25463-scaletime. Wenn man das dannoch parallelelisieren würde...
Das Problem bei der Interpolation ist der Speicherzugriff: Falls alle Daten in den Prozessor-Cache passen, geht das rasant. Falls für jeden einzelnen Wert zeitrauben auf das RAM gewartet werden muss, kann eine explizite Berechnung der 600x100 Matrix schon schneller sein.

Gerade bei "exp(x) * log(y)" scheinen die Berechnungen separierbar zu sein, so dass man "exp(x)" gar nicht jedesmal neu berechnen muss. Dies sollte dann unbedingt ausgenutzt werden, siehe "help bsxfun".

Die Interpolation ist natürlich weniger genau. Je nach Problem kann das ein Ausschlußkriterium sein.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Toni88
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 23.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.05.2012, 14:37     Titel:
  Antworten mit Zitat      
hört sich sehr interessant an!

habe es im Moment mit interp2 geschrieben, ist echt die Frage ob das Sinn macht mit der Interpolation, habe das eigentlich nur gemacht weil ich mir einen Zeitgewinn erhoffe(ist genau genug da ich die Schrittweite relativ klein gewählt habe)Es wird halt erstmal am Anfang einmal eine allgemeine Matrix aufgestellt im relevanten Bereich (kann dann auch größer sein als nötig) und dann daraus später interpoliert für jede stelle und iterationsschritt.
Die Matrix muss halt in einem Iterationsverfahren für jeden interationsschritt neu berechnet werden, so um die 60-80 mal werden. Das ganze soll so schnell wie möglich gehen und am liebsten den Speicher schonen, will es bestmöglich machen!
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.