Matlab: Unterschied zwischen den Versionen

Aus Physik
Zur Navigation springen Zur Suche springen
 
(12 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
MATLAB ist eine kommerzielle mathematische Software der Firma Mathworks zur Lösung diverser mathematischer Probleme und zur grafischen Darstellung der Ergebnisse. Durch die vereinfachte, mathematisch orientierte Syntax der MATLAB-Skriptsprache und die umfangreichen Funktionsbibliotheken für Statistik, Signalverarbeitung, Bildverarbeitung u.v.m. ist die Erstellung entsprechender Programme wesentlich einfacher möglich als z.B. unter C. MATLAB dient im Gegensatz zu Computeralgebrasystemen nicht der symbolischen, sondern primär der zahlenmäßigen Lösung von Problemen.
+
MATLAB ist eine kommerzielle mathematische Software der Firma Mathworks zur Lösung diverser mathematischer Probleme und zur grafischen Darstellung der Ergebnisse. Durch die vereinfachte, mathematisch orientierte Syntax der MATLAB-Skriptsprache und die umfangreichen Funktionsbibliotheken für Statistik, Signalverarbeitung, Bildverarbeitung u.v.m. ist die Erstellung entsprechender Programme wesentlich einfacher möglich als z.B. unter C. MATLAB, welches im Gegensatz zu Computeralgebrasystemen nicht der symbolischen, sondern primär der zahlenmäßigen Lösung von Problemen dient.
   
  +
  +
== Matlab Hilfe ==
  +
  +
Für die Benutzung von Matlab gibt es eine Reihe interessanter Hilfen. Diese setzen sich zusammen aus
  +
[[Matlab_Dokumentation#Matlab_Dokumente_im_HTML-Format|Matlab Dokumenten im HTML-Format]],
  +
aus
  +
[[Matlab_Dokumentation#Matlab_Dokumente_im_PDF-Format|Matlab Dokumenten im PDF-Format]]
  +
und aus den
  +
[[Applikationssoftware_-_Dokumente|Vorlesungsunterlagen]].
  +
  +
Weiters gibt es eine Liste aller Matlab-Funktionen (mit Links zu den entsprechenden Hilfsseiten) in zwei Varianten auch in diesem Wiki:
  +
* [[Matlab - Reference]] (tabellarische Auflistung)
  +
* [[Matlab Referenz mit Details]]
  +
  +
== Matlab Compiler ==
  +
  +
Wir haben am Institut nur 10 garantierte Lizenzen für Matlab - weitere Lizenzen stehen uns nur zur Verfügung, wenn der Lizenzpool der TU Graz nicht durch andere Institute ausgeschöpft wird. Für den massiven Einsatz von Matlab in produktiven Runs ist es daher günstig, die eigenen Programme mit dem Matlab-Compiler zu compilieren.
  +
  +
Compiliert wird durch den Aufruf von ''mcc'' auf der Shell oder durch Anklicken des entsprechenden Menüeintrags in der grafischen Benutzeroberfläche.
  +
  +
  +
=== Verwendung im Batchsystem ===
  +
  +
Zum Einsatz mit unserem Batchsystem [[Condor]] sind einige weitere technische Grundlagen zu erfüllen; allerdings ist diese Funktion derzeit relativ unstabil.
   
 
== Matlab Tips ==
 
== Matlab Tips ==
 
=== Automatisches Speichern der Plots im EPS format ===
 
=== Automatisches Speichern der Plots im EPS format ===
In diesem Beispiel wird der aktuele Plot unter sinus.eps gepeichert. Die Grafik kann ohne Probleme in [[latex]] dokumente eingebunden werden.
+
In diesem Beispiel wird der aktuelle Plot unter sinus.eps gespeichert. Die Grafik kann ohne Probleme in [[latex]] Dokumente eingebunden werden.
   
 
<pre>
 
<pre>
Zeile 28: Zeile 52:
 
</pre>
 
</pre>
   
=== Schliessen aller Plotfenster ===
+
=== Schließen aller Plotfenster ===
Nach dem Ausführen eines Matlab Scripts bleiben die Plotfenster geöffnet, und es kann lästig sein sie einzeln mit dem Mausclick zu beenden. Zum schliessen aller Plotfenster gibt es den Befehl:
+
Nach dem Ausführen eines Matlab Scripts bleiben die Plotfenster geöffnet, und es kann lästig sein sie einzeln mit einem Mausklick zu beenden. Zum Schließen aller Plotfenster gibt es den Befehl:
   
 
close all;
 
close all;
Zeile 41: Zeile 65:
   
 
=== Starten von C/C++ Funktionen aus Matlab ===
 
=== Starten von C/C++ Funktionen aus Matlab ===
Für numerisch aufwendige Berechnungen, bei denen "for" schleifen benutzt werden müssen, sind in C geschriebene programme um ein vielfaches schneller. Es könnte sinnvoll sein die Auswertung und graphische presentation mit Plots in Matlab zu schreiben, und die eigentliche Berechnung als C - Funktion, die vom Matlab script gestartet wird. Hier ist ein Beispielprogramm: [[CausMatlabStarten]] <br>
+
Für numerisch aufwendige Berechnungen, bei denen "for" Schleifen benutzt werden müssen, sind in C geschriebene Programme um ein vielfaches schneller. Es könnte sinnvoll sein die Auswertung und graphische Präsentation mit Plots in Matlab zu schreiben, und die eigentliche Berechnung als C - Funktion, die vom Matlab script gestartet wird,zu speichern. Hier ist ein Beispielprogramm: [[CausMatlabStarten]] <br>
 
Hier noch ein besseres Beispielprojekt: [[TravelingSalesmanProjekt]] <br>
 
Hier noch ein besseres Beispielprojekt: [[TravelingSalesmanProjekt]] <br>
Genaueres ist in der [http://www.mathworks.com/support/tech-notes/1600/1605.html?BB=1 online Matlab- Hilfe] zu finden.
+
Genaueres ist auf der Seite [http://www.mathworks.com/support/tech-notes/1600/1605.html?BB=1 online Matlab- Hilfe] zu finden.
   
 
=== Nichtlineares Fitten mit Berücksichtigung der Messfehler ===
 
=== Nichtlineares Fitten mit Berücksichtigung der Messfehler ===
Fitten bedeutet meistens, dass man viele fehlerbehaftete (ungenaue) Messwerte hat, diese in einem zweidimensionalen Diagramm einträgt, und eine Kurwe so durchlegt, dass sie möglichst gut zu den Messwerten passt. Die Kurwe wird mit der Fitfunktion erzeugt. Die Fitfunktion ist ein Mathematisches Modell, das die Messung erklären soll. Die Fitfunktion wird an die Messdaten angepasst indem ihre Parameter berechnet werden. Eine bessere Erklärung gibt es hier: [http://de.wikipedia.org/wiki/Methode_der_kleinsten_Quadrate Methode_der_kleinsten_Quadrate] <br>
+
Fitten bedeutet meistens, dass man viele fehlerbehaftete (ungenaue) Messwerte hat, diese in einem zweidimensionalen Diagramm einträgt, und eine Kurve so durchlegt, dass sie möglichst gut zu den Messwerten passt. Die Kurve wird mit der Fitfunktion erzeugt. Die Fitfunktion ist ein Mathematisches Modell, das die Messung erklären soll. Die Fitfunktion wird an die Messdaten angepasst indem ihre Parameter berechnet werden. Eine bessere Erklärung gibt es hier: [http://de.wikipedia.org/wiki/Methode_der_kleinsten_Quadrate Methode_der_kleinsten_Quadrate] <br>
Ein universeler Algorithmus für nichtlineares Fitten ist der [http://en.wikipedia.org/wiki/Levenberg-Marquardt_algorithm Levenberg-Marquardt Algorithmus]
+
Ein universeller Algorithmus für nichtlineares Fitten ist der [http://en.wikipedia.org/wiki/Levenberg-Marquardt_algorithm Levenberg-Marquardt Algorithmus]
 
Hier ist eine Implementierung des Algorithmus in Matlab beschrieben: [[Levenberg-Marquardt-mit-Matlab]] <br> Sie ist sehr einfach zu benutzen und dürfte für die Auswertung von Messdaten für Protokolle nützlich sein.
 
Hier ist eine Implementierung des Algorithmus in Matlab beschrieben: [[Levenberg-Marquardt-mit-Matlab]] <br> Sie ist sehr einfach zu benutzen und dürfte für die Auswertung von Messdaten für Protokolle nützlich sein.
In der Impelentierung wird auch das symbolische Rechnen (so wie es Mathematica kann) unter Matlab demonstriert.
+
In der Implementierung wird auch das symbolische Rechnen (so wie es Mathematica kann) unter Matlab demonstriert.
   
 
==Matlab und EMACS==
 
==Matlab und EMACS==
Informationen zum diesem Thema sind unter [[Emacs#EMACS und Matlab]] zu finden.
+
Informationen zum diesem Thema sind unter [[Emacs#EMACS und Matlab]] zu finden.durch legen
   
   
 
--Golubkov 00:58, 14 Jul 2005 (CEST)
 
--Golubkov 00:58, 14 Jul 2005 (CEST)
  +
  +
== Praktische Hinweise ==
  +
Hinweise vor allem für Referenzierung aus MLTutor Beispielen: [[MLTutor - Hints]]
  +
  +
== Test ==
  +
Eine derartige Seite ist in Planung und soll automatisch aus den vorhanden Dokumenten erstellt werden.

Aktuelle Version vom 9. März 2011, 11:43 Uhr

MATLAB ist eine kommerzielle mathematische Software der Firma Mathworks zur Lösung diverser mathematischer Probleme und zur grafischen Darstellung der Ergebnisse. Durch die vereinfachte, mathematisch orientierte Syntax der MATLAB-Skriptsprache und die umfangreichen Funktionsbibliotheken für Statistik, Signalverarbeitung, Bildverarbeitung u.v.m. ist die Erstellung entsprechender Programme wesentlich einfacher möglich als z.B. unter C. MATLAB, welches im Gegensatz zu Computeralgebrasystemen nicht der symbolischen, sondern primär der zahlenmäßigen Lösung von Problemen dient.


Matlab Hilfe

Für die Benutzung von Matlab gibt es eine Reihe interessanter Hilfen. Diese setzen sich zusammen aus Matlab Dokumenten im HTML-Format, aus Matlab Dokumenten im PDF-Format und aus den Vorlesungsunterlagen.

Weiters gibt es eine Liste aller Matlab-Funktionen (mit Links zu den entsprechenden Hilfsseiten) in zwei Varianten auch in diesem Wiki:

Matlab Compiler

Wir haben am Institut nur 10 garantierte Lizenzen für Matlab - weitere Lizenzen stehen uns nur zur Verfügung, wenn der Lizenzpool der TU Graz nicht durch andere Institute ausgeschöpft wird. Für den massiven Einsatz von Matlab in produktiven Runs ist es daher günstig, die eigenen Programme mit dem Matlab-Compiler zu compilieren.

Compiliert wird durch den Aufruf von mcc auf der Shell oder durch Anklicken des entsprechenden Menüeintrags in der grafischen Benutzeroberfläche.


Verwendung im Batchsystem

Zum Einsatz mit unserem Batchsystem Condor sind einige weitere technische Grundlagen zu erfüllen; allerdings ist diese Funktion derzeit relativ unstabil.

Matlab Tips

Automatisches Speichern der Plots im EPS format

In diesem Beispiel wird der aktuelle Plot unter sinus.eps gespeichert. Die Grafik kann ohne Probleme in latex Dokumente eingebunden werden.


t=linspace(0,2*pi);
y=sin(t);

figure(1);
hold on;
	p1=plot(t,y);
	ax1=gca;
	set(ax1,'YLim',[-1.1,1.1]);
	set(ax1,'XLim',[0,2*pi]);
	
	le1=legend(p1,'Sin(t)',1);
	xl1=xlabel('t');
	yl1=ylabel('f(t)');
	grid on;
hold off;

print -deps2 -tiff -r300 sinus

Schließen aller Plotfenster

Nach dem Ausführen eines Matlab Scripts bleiben die Plotfenster geöffnet, und es kann lästig sein sie einzeln mit einem Mausklick zu beenden. Zum Schließen aller Plotfenster gibt es den Befehl:

  close all;

Diese Zeile am besten am Anfang des Matlab scripts einfügen. Auf

   clear all;

sollte auch nicht vergessen werden. ('clear all;' löscht die Variablen vom letzten Scriptdurchlauf.)

Starten von C/C++ Funktionen aus Matlab

Für numerisch aufwendige Berechnungen, bei denen "for" Schleifen benutzt werden müssen, sind in C geschriebene Programme um ein vielfaches schneller. Es könnte sinnvoll sein die Auswertung und graphische Präsentation mit Plots in Matlab zu schreiben, und die eigentliche Berechnung als C - Funktion, die vom Matlab script gestartet wird,zu speichern. Hier ist ein Beispielprogramm: CausMatlabStarten
Hier noch ein besseres Beispielprojekt: TravelingSalesmanProjekt
Genaueres ist auf der Seite online Matlab- Hilfe zu finden.

Nichtlineares Fitten mit Berücksichtigung der Messfehler

Fitten bedeutet meistens, dass man viele fehlerbehaftete (ungenaue) Messwerte hat, diese in einem zweidimensionalen Diagramm einträgt, und eine Kurve so durchlegt, dass sie möglichst gut zu den Messwerten passt. Die Kurve wird mit der Fitfunktion erzeugt. Die Fitfunktion ist ein Mathematisches Modell, das die Messung erklären soll. Die Fitfunktion wird an die Messdaten angepasst indem ihre Parameter berechnet werden. Eine bessere Erklärung gibt es hier: Methode_der_kleinsten_Quadrate
Ein universeller Algorithmus für nichtlineares Fitten ist der Levenberg-Marquardt Algorithmus Hier ist eine Implementierung des Algorithmus in Matlab beschrieben: Levenberg-Marquardt-mit-Matlab
Sie ist sehr einfach zu benutzen und dürfte für die Auswertung von Messdaten für Protokolle nützlich sein. In der Implementierung wird auch das symbolische Rechnen (so wie es Mathematica kann) unter Matlab demonstriert.

Matlab und EMACS

Informationen zum diesem Thema sind unter Emacs#EMACS und Matlab zu finden.durch legen


--Golubkov 00:58, 14 Jul 2005 (CEST)

Praktische Hinweise

Hinweise vor allem für Referenzierung aus MLTutor Beispielen: MLTutor - Hints

Test

Eine derartige Seite ist in Planung und soll automatisch aus den vorhanden Dokumenten erstellt werden.