MATLAB Repetitorium - Einführung: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:MATLAB]]
{| class="wikitable"
|-
| '''Autor:'''  || [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]]
|-
| '''Termin:''' || 26.04.2024
|}
= Einstieg =
= Einstieg =
== Aufgabe 1.1 ==
== Aufgabe 1.1 ==
Zeile 30: Zeile 37:
== Aufgabe 1.2 ==
== Aufgabe 1.2 ==
Wählen Sie unterschiedliche Winkel w zwischen 0 und π. Berechnen Sie für jeden
Wählen Sie unterschiedliche Winkel w zwischen 0 und π. Berechnen Sie für jeden
Winkel die Summe der Quadrate von sin(w) und cos(w).
Winkel die Summe der Quadrate von <code>sin(w)</code> und <code>cos(w)</code>.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
| <strong>Musterlösung&thinsp;</strong>
Zeile 84: Zeile 91:
|}
|}
== Aufgabe 1.4==
== Aufgabe 1.4==
Was erhalten Sie, wenn Sie den Spaltenvektor v = [2;3] mit der Matrix A = [1 0;0 −1] multiplizieren? Was ist das Ergebnis von A * A?
Was erhalten Sie, wenn Sie den Spaltenvektor <code>v = [2;3]</code> mit der Matrix <code>A = [1 0;0 −1]</code> multiplizieren? Was ist das Ergebnis von <code>A * A</code>?
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
| <strong>Musterlösung&thinsp;</strong>
Zeile 100: Zeile 107:
|}
|}
==Aufgabe 1.5==
==Aufgabe 1.5==
Erzeugen Sie einen Zeilenvektor, der als Komponenten nicht Zahlen, sondern Buchstaben enthält. Überprüfen Sie den Typ des Vektors mit der Funktion whos.
Erzeugen Sie einen Zeilenvektor, der als Komponenten nicht Zahlen, sondern Buchstaben enthält. Überprüfen Sie den Typ des Vektors mit der Funktion <code>whos</code>.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp&thinsp;</strong>
|-
| [https://de.mathworks.com/help/matlab/characters-and-strings.html Artikel zum thema String und Char]
|}
 
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
| <strong>Musterlösung&thinsp;</strong>
Zeile 112: Zeile 125:
</source>
</source>
|}
|}
==Aufgabe 1.6==
==Aufgabe 1.6==
Versuchen Sie, durch bewusst falsche Anweisungen Fehlermeldungen zu erzeugen,
# Versuchen Sie, durch bewusst falsche Anweisungen Fehlermeldungen zu erzeugen, um ein Gefühl dafür zu bekommen, wie MATLAB auf Fehler reagiert.
um ein Gefühl dafür zu bekommen, wie MATLAB auf Fehler reagiert.
# Verwenden Sie die Cursor-Tasten, um aus der Command History vorher bereits benutzte Befehle zu wiederholen und zu verändern.
Verwenden Sie die Cursor-Tasten, um aus der Command History vorher bereits
# Schauen Sie sich auch einmal den Workspace-Editor an, mit dem Sie zum Beispiel die Inhalte von Variablen mittels Copy & Paste nach MS-Excel übernehmen können.
benutzte Befehle zu wiederholen und zu verändern.
Schauen Sie sich auch einmal den Workspace-Editor an, mit dem Sie zum Beispiel
die Inhalte von Variablen mittels Copy & Paste nach MS-Excel übernehmen können.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
| <strong>Musterlösung&thinsp;</strong>
Zeile 137: Zeile 148:
----
----
= Symbolisches Rechnen =
= Symbolisches Rechnen =
'''Hinweis:''' Statt * / ^verwenden sie „.* ./ .^(Punktoperator vor Operation anwenden)
'''Hinweis:''' Statt <code>* / ^</code> verwenden Sie <code>.* ./ .^</code> (Punktoperator vor Operation anwenden):
== Aufgabe 2.1 ==
== Aufgabe 2.1 ==
Definieren Sie folgende Funktionen mit Matlab (Befehle: syms)
Definieren Sie folgende Funktionen mit Matlab (Befehle: <code>syms</code>)


<!-- <math></math><br> -->
<!-- <math></math><br> -->
Zeile 159: Zeile 170:


== Aufgabe 2.2 ==
== Aufgabe 2.2 ==
Multiplizieren Sie folgende Ausdrücke aus (Befehle: expand())
Multiplizieren Sie folgende Ausdrücke aus (Befehle: <code>expand()</code>)


<math>(3x-2y)^3</math><br>
<math>(3x-2y)^3</math><br>
Zeile 175: Zeile 186:
|}
|}
== Aufgabe 2.3 ==
== Aufgabe 2.3 ==
Vereinfachen Sie folgende Ausdrücke (Befehle: exp(), log(), simplify())
Vereinfachen Sie folgende Ausdrücke (Befehle: <code>exp(), log(), simplify()</code>)


<math>sin(x)^2+cos(x)^2</math><br>
<math>sin(x)^2+cos(x)^2</math><br>
Zeile 194: Zeile 205:


== Aufgabe 2.4 ==
== Aufgabe 2.4 ==
Verwenden Sie simplify zur Ausführung der Polynomdivision P3/P1.
Verwenden Sie <code>simplify</code> zur Ausführung der Polynomdivision P3/P1.


<math>P_3(x)=x^3-6x^2-x+6=0,\ P_1(x)=x-1</math><br>
<math>P_3(x)=x^3-6x^2-x+6=0,\ P_1(x)=x-1</math><br>
Zeile 211: Zeile 222:


== Aufgabe 2.5 ==
== Aufgabe 2.5 ==
Lösen Sie folgende Gleichungen (Befehl: sqrt(), log10(), solve()).
Lösen Sie folgende Gleichungen (Befehl: <code>sqrt(), log10(), solve()</code>).


'''Hinweis:''' Benutzen Sie „==“ statt „=“
'''Hinweis:''' Benutzen Sie „==“ statt „=“
Zeile 232: Zeile 243:


== Aufgabe 2.6 ==
== Aufgabe 2.6 ==
Berechnen Sie folgende Grenzwerte (Befehle: limit(), inf).
Berechnen Sie folgende Grenzwerte (Befehle: <code>limit(), inf</code>).


<math>^{lim}_{x\rightarrow 0}\frac{2x^2+5x}{3x}</math><br>
<math>^{lim}_{x\rightarrow 0}\frac{2x^2+5x}{3x}</math><br>
Zeile 249: Zeile 260:


== Aufgabe 2.7 ==
== Aufgabe 2.7 ==
Berechnen Sie die erste und zweite Ableitung folgender Funktionen (Befehle: diff()).
Berechnen Sie die erste und zweite Ableitung folgender Funktionen (Befehle: <code>diff()</code>).


<math>x^5\cdot \ln(x)</math><br>
<math>x^5\cdot \ln(x)</math><br>
Zeile 273: Zeile 284:
</source>
</source>
|}
|}
== Aufgabe 2.8 ==
Berechnen Sie das unbestimmte Integral folgender Funktionen (Befehle: <code>int()</code>).
<math>\int\frac{3x^8}{x^3+1}dx</math><br>
<math>\int\frac{e^{2x}}{1+e^x}dx</math><br>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% Aufgabe 2.8:
syms x
int((3.*x.^8)./(x.^3 +1),x);
int(exp(2.*x)./(1+exp(x)),x);
clear x
</source>
|}
== Aufgabe 2.9 ==
Berechnen Sie das bestimmte Integral folgender Funktion (Befehle: <code>int()</code>).
<math>\int^1_0\frac{x}{(1+x^2)^2}dx</math><br>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% Aufgabe 2.9:
syms x y
int(x./((1 + x.^2).^2),x,0,1)
clear x y
</source>
|}
== Aufgabe 2.10 ==
Für die Schnellen: Erkundigen Sie sich über folgende Berechnungen zur Funktionsanalyse bzw. Kurvendiskussion in Matlab (Befehle: <code>diff(), subs(), solve(), vpa()</code>):
# Berechnen von lokalen Extremstellen
# Berechnen von Wendestellen
# Berechnen des y-Achsenabschnittes
Wenden Sie die Berechnungen auf die Aufgaben aus Teil 2.1 an.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">
% Aufgabe 2.10:
syms x y1 y2 y3
y1 = 2.*x.^3 + 12.*x.^2 + 19.*x + 9;
y2 = (-1./58)*(x.^2 - 100.*x -416);
y3 = ((x-1).*(x+5))./((x+1).^2 .* (x-3));
%% y1
y1diff1 = diff(y1);
y1diff2 = diff(y1diff1);
ycrossY1 = subs(y1,0);
ycrossX1 = 0;
max = solve(y1diff1 == 0,x);
extremaX1 = vpa(max);
extremaY1 = subs(y1,extremaX1);
inflection = solve(y1diff2 == 0,x);
inflectionX1 = vpa(inflection);
inflectionY1 = subs(y1,inflectionX1);
subplot(131);
fplot(y1);
hold on;
plot(ycrossX1,ycrossY1,'b*');
hold on;
plot(extremaX1,extremaY1,'r*');
hold on;
plot(inflectionX1,inflectionY1,'g*');
%% y2
y2diff1 = diff(y2);
y2diff2 = diff(y2diff1);
ycrossY2 = subs(y2,0);
ycrossX2 = 0;
max = solve(y2diff1 == 0,x);
extremaX2 = vpa(max);
extremaY2 = subs(y2,extremaX2);
inflection = solve(y2diff2 == 0,x);
inflectionX2 = vpa(inflection);
inflectionY2 = subs(y2,inflectionX2);
subplot(132);
fplot(y2);
hold on;
plot(ycrossX2,ycrossY2,'b*');
hold on;
plot(extremaX2,extremaY2,'r*');
hold on;
plot(inflectionX2,inflectionY2,'g*');
%% y3
y3diff1 = diff(y3);
y3diff2 = diff(y3diff1);
ycrossY3 = subs(y1,0);
ycrossX3 = 0;
max = solve(y3diff1 == 0,x);
extremaX3 = vpa(max);
extremaY3 = subs(y3,extremaX3);
inflection = solve(y3diff2 == 0,x);
inflectionX3 = vpa(inflection);
inflectionY3 = subs(y3,inflectionX3);
subplot(133);
fplot(y3);
hold on;
plot(ycrossX3,ycrossY3,'b*');
hold on;
plot(extremaX3,extremaY3,'r*');
hold on;
plot(inflectionX3,inflectionY3,'g*');
</source>
|}
----
→ Termine [[MATLAB_Repetitorium_-_Einführung|1]] <br>
→ [[MATLAB-Befehle| MATLAB<sup>®</sup> Befehlsübersicht]]<br>
→ zurück zum Hauptartikel: [[MATLAB_Repetitorium|MATLAB Repetitorium]]

Aktuelle Version vom 26. April 2024, 09:13 Uhr

Autor: Prof. Dr.-Ing. Schneider
Termin: 26.04.2024

Einstieg

Aufgabe 1.1

Quadrieren Sie die Zahlen 3, pi, −1 und i mithilfe des Operators „^“ und ziehen Sie aus den Ergebnissen jeweils die Wurzel.

Aufgabe 1.2

Wählen Sie unterschiedliche Winkel w zwischen 0 und π. Berechnen Sie für jeden Winkel die Summe der Quadrate von sin(w) und cos(w).

Aufgabe 1.3

Erzeugen Sie das 1x5-Array sval, das die fünf Sinus-Werte für die Bogenmaß-Winkel 0, π/6, π/4, π/2 und π enthält. Führen Sie die gleichen Rechnungen für die Grad-Winkel 0, 30°, 45°, 90° und 180° durch. Hierzu müssen Sie die Winkel ins Bogenmaß umrechnen, da die MATLAB-Funktionen sin und cos ihre Argumente im Bogenmaß erwarten – zur Erinnerung: π entspricht 180°.

Versuchen Sie es auch einmal mit den Funktionen sind und cosd.

Aufgabe 1.4

Was erhalten Sie, wenn Sie den Spaltenvektor v = [2;3] mit der Matrix A = [1 0;0 −1] multiplizieren? Was ist das Ergebnis von A * A?

Aufgabe 1.5

Erzeugen Sie einen Zeilenvektor, der als Komponenten nicht Zahlen, sondern Buchstaben enthält. Überprüfen Sie den Typ des Vektors mit der Funktion whos.

Aufgabe 1.6

  1. Versuchen Sie, durch bewusst falsche Anweisungen Fehlermeldungen zu erzeugen, um ein Gefühl dafür zu bekommen, wie MATLAB auf Fehler reagiert.
  2. Verwenden Sie die Cursor-Tasten, um aus der Command History vorher bereits benutzte Befehle zu wiederholen und zu verändern.
  3. Schauen Sie sich auch einmal den Workspace-Editor an, mit dem Sie zum Beispiel die Inhalte von Variablen mittels Copy & Paste nach MS-Excel übernehmen können.

Symbolisches Rechnen

Hinweis: Statt * / ^ verwenden Sie .* ./ .^ (Punktoperator vor Operation anwenden):

Aufgabe 2.1

Definieren Sie folgende Funktionen mit Matlab (Befehle: syms)



Aufgabe 2.2

Multiplizieren Sie folgende Ausdrücke aus (Befehle: expand())



Aufgabe 2.3

Vereinfachen Sie folgende Ausdrücke (Befehle: exp(), log(), simplify())




Aufgabe 2.4

Verwenden Sie simplify zur Ausführung der Polynomdivision P3/P1.


Aufgabe 2.5

Lösen Sie folgende Gleichungen (Befehl: sqrt(), log10(), solve()).

Hinweis: Benutzen Sie „==“ statt „=“




Aufgabe 2.6

Berechnen Sie folgende Grenzwerte (Befehle: limit(), inf).



Aufgabe 2.7

Berechnen Sie die erste und zweite Ableitung folgender Funktionen (Befehle: diff()).



Aufgabe 2.8

Berechnen Sie das unbestimmte Integral folgender Funktionen (Befehle: int()).



Aufgabe 2.9

Berechnen Sie das bestimmte Integral folgender Funktion (Befehle: int()).


Aufgabe 2.10

Für die Schnellen: Erkundigen Sie sich über folgende Berechnungen zur Funktionsanalyse bzw. Kurvendiskussion in Matlab (Befehle: diff(), subs(), solve(), vpa()):

  1. Berechnen von lokalen Extremstellen
  2. Berechnen von Wendestellen
  3. Berechnen des y-Achsenabschnittes

Wenden Sie die Berechnungen auf die Aufgaben aus Teil 2.1 an.


→ Termine 1
MATLAB® Befehlsübersicht
→ zurück zum Hauptartikel: MATLAB Repetitorium